public static void func_pointer_marshalling() { var obj = new Dummy.TestObject(); bool called = false; Eina.Strbuf buf = new Eina.Strbuf(); string argument = "Some String"; Eina.Value v = new Eina.Value(Eina.ValueType.String); v.Set(argument); string reference = new string(argument.ToCharArray().Reverse().ToArray()); obj.CallFormatCb(buf, v, (Eina.Strbuf ibuf, Eina.Value val) => { called = true; string str = null; val.Get(out str); buf.Append(new string(str.ToCharArray().Reverse().ToArray())); }); Test.Assert(called, "Callback was not called"); Test.AssertEquals(reference, buf.Steal()); v.Dispose(); buf.Dispose(); obj.Dispose(); }
public static void test_tostring() { Eina.Strbuf buf = new Eina.Strbuf(); buf.Append("Hello"); buf.Append(' '); buf.Append("World!"); Test.AssertEquals("Hello World!", buf.ToString()); }
public static void test_steal() { Eina.Strbuf buf = new Eina.Strbuf(); buf.Append("Here's"); buf.Append(' '); buf.Append("Johnny!"); Test.AssertEquals("Here's Jonnny!".Length, buf.Length); Test.AssertEquals("Here's Johnny!", buf.Steal()); }
public static void test_eolian() { var obj = new Dummy.TestObject(); Eina.Strbuf buf = new Eina.Strbuf(); obj.AppendToStrbuf(buf, "Appended"); obj.AppendToStrbuf(buf, " to buf"); Test.AssertEquals("Appended to buf", buf.Steal()); }
internal static void Cb(IntPtr cb_data, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Efl.Eo.StrbufKeepOwnershipMarshaler))] Eina.Strbuf str, Eina.ValueNative value) { GCHandle handle = GCHandle.FromIntPtr(cb_data); FormatFuncCb cb = (FormatFuncCb)handle.Target; try { cb(str, value); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } }
public static void test_virtual_eolian() { Appender obj = new Appender(); Eina.Strbuf buf = new Eina.Strbuf(); obj.CallAppendToStrbuf(buf, "Is"); obj.CallAppendToStrbuf(buf, " this"); obj.CallAppendToStrbuf(buf, " virtual?"); Test.Assert(obj.called); Test.AssertEquals("Is this virtual?", buf.Steal()); }
public override void AppendToStrbuf(Eina.Strbuf buf, string str) { Eina.Log.Error("Virtual wrapper called"); called = true; buf.Append(str); }
internal void ManagedCb(Eina.Strbuf str, Eina.Value value) { _cb(_cb_data, str, value); Eina.Error.RaiseIfUnhandledException(); }