1 #pragma warning disable 1591
4 using System.Runtime.InteropServices;
9 public struct Error : IComparable<Error>
15 get { return MsgGet(this); }
18 public static Error UNHANDLED_EXCEPTION;
20 public static Error NO_ERROR = new Error(0);
21 public static Error EPERM = new Error(1);
22 public static Error ENOENT = new Error(2);
23 public static Error ECANCELED = new Error(125);
25 public Error(int value)
30 static public implicit operator Error(int val)
32 return new Error(val);
35 static public implicit operator int(Error error)
40 public int CompareTo(Error err)
42 return code.CompareTo(err.code);
45 public override string ToString()
47 return "Eina.Error(" + code + ")";
52 UNHANDLED_EXCEPTION = eina_error_msg_register("Unhandled C# exception occurred.");
55 [DllImport(efl.Libs.Eina)] static extern Error eina_error_msg_register(string msg);
56 [DllImport(efl.Libs.Eina)] static extern Error eina_error_get();
57 [DllImport(efl.Libs.Eina)] static extern void eina_error_set(Error error);
58 [DllImport(efl.Libs.Eina)] static extern IntPtr eina_error_msg_get(Error error);
60 public static void Set(Error error)
62 eina_error_set(error);
65 public static Error Get()
67 return eina_error_get();
70 public static String MsgGet(Error error)
72 IntPtr cstr = eina_error_msg_get(error);
73 return Eina.StringConversion.NativeUtf8ToManagedString(cstr);
76 /// <summary>Raises an exception if an unhandled exception occurred before switching
77 /// back to the native code. For example, in an event handler.</summary>
78 public static void RaiseIfUnhandledException()
81 if (e == UNHANDLED_EXCEPTION)
88 public static void Raise(Error e)
92 throw (new Efl.EflException(MsgGet(e)));
96 public static void Clear()
101 public static Error Register(string msg)
103 return eina_error_msg_register(msg);