コード例 #1
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
 public override bool StructSimpleOut(out Dummy.StructSimple simple)
 {
     called         = true;
     simple         = new Dummy.StructSimple();
     simple.Fstring = "Virtual Struct Out";
     return(true);
 }
コード例 #2
0
ファイル: StructHelpers.cs プロジェクト: woodenmen/efl
 internal static void checkZeroedStructSimple(Dummy.StructSimple simple)
 {
     Test.Assert(simple.Fbyte == 0);
     Test.Assert(simple.Fubyte == 0);
     Test.Assert(simple.Fchar == '\0');
     Test.Assert(simple.Fshort == 0);
     Test.Assert(simple.Fushort == 0);
     Test.Assert(simple.Fint == 0);
     Test.Assert(simple.Fuint == 0);
     Test.Assert(simple.Flong == 0);
     Test.Assert(simple.Fulong == 0);
     Test.Assert(simple.Fllong == 0);
     Test.Assert(simple.Fullong == 0);
     Test.Assert(simple.Fint8 == 0);
     Test.Assert(simple.Fuint8 == 0);
     Test.Assert(simple.Fint16 == 0);
     Test.Assert(simple.Fuint16 == 0);
     Test.Assert(simple.Fint32 == 0);
     Test.Assert(simple.Fuint32 == 0);
     Test.Assert(simple.Fint64 == 0);
     Test.Assert(simple.Fuint64 == 0);
     Test.Assert(simple.Fssize == 0);
     Test.Assert(simple.Fsize == 0);
     Test.Assert(simple.Fintptr == IntPtr.Zero);
     Test.Assert(simple.Fptrdiff == 0);
     Test.Assert(simple.Ffloat == 0);
     Test.Assert(simple.Fdouble == 0);
     Test.Assert(simple.Fbool == false);
     Test.Assert(simple.Fenum == Dummy.SampleEnum.V0);
     Test.Assert(simple.Fstring == null);
     Test.Assert(simple.Fmstring == null);
     Test.Assert(simple.Fstringshare == null);
 }
コード例 #3
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
            public override bool StructSimpleIn(Dummy.StructSimple simple)
            {
                called   = true;
                received = simple;

                return(true);
            }
コード例 #4
0
ファイル: StructHelpers.cs プロジェクト: woodenmen/efl
 internal static void checkStructSimple(Dummy.StructSimple simple)
 {
     Test.Assert(simple.Fbyte == (sbyte)-126);
     Test.Assert(simple.Fubyte == (byte)254u);
     Test.Assert(simple.Fchar == '~');
     Test.Assert(simple.Fshort == (short)-32766);
     Test.Assert(simple.Fushort == (ushort)65534u);
     Test.Assert(simple.Fint == -32766);
     Test.Assert(simple.Fuint == 65534u);
     Test.Assert(simple.Flong == -2147483646);
     Test.Assert(simple.Fulong == 4294967294u);
     Test.Assert(simple.Fllong == -9223372036854775806);
     Test.Assert(simple.Fullong == 18446744073709551614u);
     Test.Assert(simple.Fint8 == (sbyte)-126);
     Test.Assert(simple.Fuint8 == (byte)254u);
     Test.Assert(simple.Fint16 == (short)-32766);
     Test.Assert(simple.Fuint16 == (ushort)65534u);
     Test.Assert(simple.Fint32 == -2147483646);
     Test.Assert(simple.Fuint32 == 4294967294u);
     Test.Assert(simple.Fint64 == -9223372036854775806);
     Test.Assert(simple.Fuint64 == 18446744073709551614u);
     Test.Assert(simple.Fssize == -2147483646);
     Test.Assert(simple.Fsize == 4294967294u);
     Test.Assert(simple.Fintptr == (IntPtr)0xFE);
     Test.Assert(simple.Fptrdiff == -2147483646);
     Test.Assert(simple.Ffloat == -16777216.0f);
     Test.Assert(simple.Fdouble == -9007199254740992.0);
     Test.Assert(simple.Fbool == true);
     Test.Assert(simple.Fenum == Dummy.SampleEnum.V2);
     Test.Assert(simple.Fstring == "test/string");
     Test.Assert(simple.Fmstring == "test/mstring");
     Test.Assert(simple.Fstringshare == "test/stringshare");
 }
コード例 #5
0
ファイル: Structs.cs プロジェクト: walac/efl
            /*
             * public override Dummy.StructSimple StructSimplePtrOut(out Dummy.StructSimple simple) {
             *  called = true;
             *  // No way to explicitly define the ownership of the parameter.
             *  simple = new Dummy.StructSimple();
             *  simple.Fstring = "Virtual Struct Ptr Out";
             *  return simple;
             * }
             *
             * public override Dummy.StructSimple StructSimplePtrOutOwn(out Dummy.StructSimple simple) {
             *  called = true;
             *  // No way to explicitly define the ownership of the parameter.
             *  simple = new Dummy.StructSimple();
             *  simple.Fstring = "Virtual Struct Ptr Out Own";
             *  return simple;
             * }
             */

            public override Dummy.StructSimple StructSimpleReturn()
            {
                called = true;
                var simple = new Dummy.StructSimple(fstring: "Virtual Struct Return");

                return(simple);
            }
コード例 #6
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
 public override Dummy.StructSimple StructSimplePtrOutOwn(out Dummy.StructSimple simple)
 {
     called = true;
     // No way to explicitly define the ownership of the parameter.
     simple         = new Dummy.StructSimple();
     simple.Fstring = "Virtual Struct Ptr Out Own";
     return(simple);
 }
コード例 #7
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        public static void simple_ptr_return_own_virtual()
        {
            StructReturner t = new StructReturner();

            Dummy.StructSimple simple = t.CallStructSimplePtrReturnOwn();
            Test.Assert(t.called, "override was not called");
            Test.AssertEquals("Virtual Struct Ptr Return Own", simple.Fstring);
        }
コード例 #8
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
            public override Dummy.StructSimple StructSimplePtrReturnOwn()
            {
                called = true;
                var simple = new Dummy.StructSimple();

                simple.Fstring = "Virtual Struct Ptr Return Own";
                return(simple);
            }
コード例 #9
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        public static void simple_ptr_out_own()
        {
            Dummy.StructSimple simple;
            var t = new Dummy.TestObject();

            Dummy.StructSimple result = t.StructSimplePtrOutOwn(out simple);
            Test.AssertEquals(result.Fint, simple.Fint);
            Test.AssertEquals(simple.Fstring, "Ptr Out Own");
        }
コード例 #10
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        public static void simple_out()
        {
            var  simple = new Dummy.StructSimple();
            var  t      = new Dummy.TestObject();
            bool r      = t.StructSimpleOut(out simple);

            Test.Assert(r, "Function returned false");
            checkStructSimple(simple);
        }
コード例 #11
0
ファイル: Structs.cs プロジェクト: walac/efl
        /*
         * public static void simple_ptr_out_virtual()
         * {
         *  StructReturner t = new StructReturner();
         *  Dummy.StructSimple simple;
         *  t.CallStructSimplePtrOut(out simple);
         *  Test.Assert(t.called, "override was not called");
         *  Test.AssertEquals("Virtual Struct Ptr Out", simple.Fstring);
         * }
         *
         * public static void simple_ptr_out_own_virtual()
         * {
         *  StructReturner t = new StructReturner();
         *  Dummy.StructSimple simple;
         *  t.CallStructSimplePtrOutOwn(out simple);
         *  Test.Assert(t.called, "override was not called");
         *  Test.AssertEquals("Virtual Struct Ptr Out Own", simple.Fstring);
         * }
         */

        public static void simple_return_virtual()
        {
            StructReturner t = new StructReturner();

            Dummy.StructSimple simple = t.CallStructSimpleReturn();
            Test.Assert(t.called, "override was not called");
            Test.AssertEquals("Virtual Struct Return", simple.Fstring);
            t.Dispose();
        }
コード例 #12
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        public static void parameter_initialization()
        {
            var simple = new Dummy.StructSimple(0x1, 0x2, (char)0x3, 0x4, 0x5);

            Test.AssertEquals(0x1, simple.Fbyte);
            Test.AssertEquals(0x2, simple.Fubyte);
            Test.AssertEquals(0x3, simple.Fchar);
            Test.AssertEquals(0x4, simple.Fshort);
            Test.AssertEquals(0x5, simple.Fushort);
            Test.AssertEquals(0, simple.Fint);
        }
コード例 #13
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        public static void simple_ptr_in_own()
        {
            var simple   = structSimpleWithValues();
            int original = simple.Fint;

            simple.Fmstring = "Struct Ptr In Own";
            var t = new Dummy.TestObject();

            Dummy.StructSimple result = t.StructSimplePtrInOwn(ref simple);
            Test.AssertEquals(-original, result.Fint);
            Test.AssertEquals("nwO nI rtP tcurtS", result.Fmstring);
        }
コード例 #14
0
        public static void event_with_struct_payload()
        {
            var obj = new Dummy.TestObject();

            Dummy.StructSimple received_struct = default(Dummy.StructSimple);

            obj.EvtWithStructEvent += (object sender, Dummy.TestObjectEvtWithStructEventArgs e) => {
                received_struct = e.Arg;
            };

            Dummy.StructSimple sent_struct = new Dummy.StructSimple(fstring: "Struct Event");

            obj.EmitEventWithStruct(sent_struct);

            Test.AssertEquals(sent_struct.Fstring, received_struct.Fstring);
            obj.Dispose();
        }
コード例 #15
0
        // Auxiliary function //

        internal static Dummy.StructSimple structSimpleWithValues()
        {
            var simple = new Dummy.StructSimple();

            simple.Fbyte        = (sbyte)-126;
            simple.Fubyte       = (byte)254u;
            simple.Fchar        = '~';
            simple.Fshort       = (short)-32766;
            simple.Fushort      = (ushort)65534u;
            simple.Fint         = -32766;
            simple.Fuint        = 65534u;
            simple.Flong        = -2147483646;
            simple.Fulong       = 4294967294u;
            simple.Fllong       = -9223372036854775806;
            simple.Fullong      = 18446744073709551614u;
            simple.Fint8        = (sbyte)-126;
            simple.Fuint8       = (byte)254u;
            simple.Fint16       = (short)-32766;
            simple.Fuint16      = (ushort)65534u;
            simple.Fint32       = -2147483646;
            simple.Fuint32      = 4294967294u;
            simple.Fint64       = -9223372036854775806;
            simple.Fuint64      = 18446744073709551614u;
            simple.Fssize       = -2147483646;
            simple.Fsize        = 4294967294u;
            simple.Fintptr      = (IntPtr)0xFE;
            simple.Fptrdiff     = -2147483646;
            simple.Ffloat       = -16777216.0f;
            simple.Fdouble      = -9007199254740992.0;
            simple.Fbool        = true;
            simple.Fvoid_ptr    = (IntPtr)0xFE;
            simple.Fenum        = Dummy.SampleEnum.V2;
            simple.Fstring      = "test/string";
            simple.Fmstring     = "test/mstring";
            simple.Fstringshare = "test/stringshare";

            return(simple);
        }
コード例 #16
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
 public StructReturner() : base(null)
 {
     called   = false;
     received = default(Dummy.StructSimple);
 }
コード例 #17
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
 public override Dummy.StructSimple StructSimplePtrInOwn(ref Dummy.StructSimple simple)
 {
     called   = true;
     received = simple;
     return(received);
 }
コード例 #18
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
 public override bool StructSimplePtrIn(ref Dummy.StructSimple simple)
 {
     called         = true;
     simple.Fstring = "Virtual Struct Ptr In";
     return(true);
 }
コード例 #19
0
ファイル: Structs.cs プロジェクト: zmike/efl-tmp
        // Test cases //

        // Default initialization (C# side)

        private static void simple_default_instantiation()
        {
            var simple = new Dummy.StructSimple();

            checkZeroedStructSimple(simple);
        }