예제 #1
0
파일: ValueTypes.cs 프로젝트: ETLang/Gluon
 public StructMemberTest(bool _Boolean, double _Primitive, IntPtr _PrimitivePtr, string _String, BlittableStruct _BlittableSt, ComplexStruct _ComplexSt, DummyClass _Object, NamedDelegate _NamedDelegate, Func <double, double> _GenericDelegate)
 {
     Boolean         = _Boolean;
     Primitive       = _Primitive;
     PrimitivePtr    = _PrimitivePtr;
     String          = _String;
     BlittableSt     = _BlittableSt;
     ComplexSt       = _ComplexSt;
     Object          = _Object;
     NamedDelegate   = _NamedDelegate;
     GenericDelegate = _GenericDelegate;
 }
예제 #2
0
        public NamedDelegate NamedDelegates(NamedDelegate inTest, out NamedDelegate outTest, ref NamedDelegate refTest)
        {
            Check();
            var    inTest_abi = D_BD6C0A4E.Unwrap(inTest);
            IntPtr outTest_abi_fn; IntPtr outTest_abi_ctx;
            var    refTest_abi = D_BD6C0A4E.Unwrap(refTest);
            IntPtr ___ret_abi_fn; IntPtr ___ret_abi_ctx;

            Native.Throw(_vt.NamedDelegates(IPtr, inTest_abi.Fn, inTest_abi.Ctx, out outTest_abi_fn, out outTest_abi_ctx, ref refTest_abi.Fn, ref refTest_abi.Ctx, out ___ret_abi_fn, out ___ret_abi_ctx));
            outTest = D_BD6C0A4E.Wrap(outTest_abi_fn, outTest_abi_ctx);
            refTest = D_BD6C0A4E.Wrap(refTest_abi.Fn, refTest_abi.Ctx);
            return(D_BD6C0A4E.Wrap(___ret_abi_fn, ___ret_abi_ctx));
        }
예제 #3
0
        public static void Initialize()
        {
            NamedDelegate namedDelegate = new NamedDelegate();

            namedDelegate.Name       = "GlobalContent/Textures/enemyTextures.png";
            namedDelegate.LoadMethod = LoadGlobalContent_Textures_enemyTextures_png;
            LoadMethodList.Add(namedDelegate);

                        #if WINDOWS_8
            System.Threading.Tasks.Task.Run((System.Action)AsyncInitialize);
                        #else
            ThreadStart threadStart = new ThreadStart(AsyncInitialize);
            Thread      thread      = new Thread(threadStart);
            thread.Name = "GlobalContent Async load";
            thread.Start();
                        #endif
        }
예제 #4
0
 static void RequestContentLoad(string contentName)
 {
     lock (LoadMethodList)
     {
         int index = -1;
         for (int i = 0; i < LoadMethodList.Count; i++)
         {
             if (LoadMethodList[i].Name == contentName)
             {
                 index = i;
                 break;
             }
         }
         if (index != -1)
         {
             NamedDelegate delegateToShuffle = LoadMethodList[index];
             LoadMethodList.RemoveAt(index);
             LoadMethodList.Insert(0, delegateToShuffle);
         }
     }
 }
예제 #5
0
파일: Program.cs 프로젝트: ETLang/Gluon
        static void Main(string[] args)
        {
            var unitTest = new ConversionUnitTest();

            {
                string title = "Primitives";
                bool   x     = false;
                int    refx  = 98;
                PrintSend(title, x, refx);
                var ret = unitTest.Primitives(x, out char outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "Strings";
                var    x     = "Hello C++";
                var    refx  = "Have A String";
                PrintSend(title, x, refx);
                var ret = unitTest.Strings(x, out string outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "SimpleStructs";
                var    x     = new BlittableStruct(1, 3, 3, 7);
                var    refx  = new BlittableStruct(8, 8, 8, 8);
                PrintSend(title, x, refx);
                var ret = unitTest.SimpleStructs(x, out BlittableStruct outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "Objects";
                var    x     = new DummyClass()
                {
                    Nugget = "DummyC#In"
                };
                var refx = new DummyClass()
                {
                    Nugget = "DummyC#Ref"
                };
                PrintSend(title, x, refx);
                var ret = unitTest.Objects(x, out DummyClass outx, ref refx);
                PrintRecv(title, outx, refx, ret);
                refx.Dispose();
                x.Dispose();
            }

            {
                string        title = "NamedDelegates";
                NamedDelegate x     = (a, b) => a.Length + b.Length;
                NamedDelegate refx  = (a, b) => (int)a[0] * (int)b[0];
                PrintSend(title, x, refx);
                var ret = unitTest.NamedDelegates(x, out NamedDelegate outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "ComplexStructs";
                var    x     = new ComplexStruct("ComplexC#In", new BlittableStruct(5, 4, 6, 3), new DummyClass()
                {
                    Nugget = "WelcomeNugget"
                }, (u, v) => u | v);
                var refx = new ComplexStruct("ComplexC#Ref", new BlittableStruct(9, 0, 0, 9), new DummyClass()
                {
                    Nugget = "RefNugget"
                }, (u, v) => u * u * v);
                PrintSend(title, x, refx);
                var ret = unitTest.ComplexStructs(x, out ComplexStruct outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "PrimitiveArrays";
                var    x     = new bool[] { true, false, false, true, false, true };
                var    refx  = new int[] { 10, 100, 1000, 10000 };
                PrintSend(title, x, refx);
                var ret = unitTest.PrimitiveArrays(x, out char[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "StringArrays";
                var    x     = new string[] { "The", "Quick", "Brown", "Fox" };
                var    refx  = new string[] { "Some", "Strings" };
                PrintSend(title, x, refx);
                var ret = unitTest.StringArrays(x, out string[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "SimpleStructArrays";
                var    x     = new BlittableStruct[] { new BlittableStruct(1001, 1002, 1003, 1004), new BlittableStruct(2001, 2002, 2003, 2004), new BlittableStruct(3001, 3002, 3003, 3004) };
                var    refx  = new BlittableStruct[] { new BlittableStruct(-1, -2, -3, -4), new BlittableStruct(-5, -6, -7, -8) };
                PrintSend(title, x, refx);
                var ret = unitTest.SimpleStructArrays(x, out BlittableStruct[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "ComplexStructArrays";
                var    x     = new ComplexStruct[]
                {
                    new ComplexStruct("ComplexArrC#[0]", new BlittableStruct(-1, 0, 1, 0), new DummyClass()
                    {
                        Nugget = "ComplexArrNugget[0]"
                    }, (a, b) => a * a * b * b),
                    new ComplexStruct("ComplexArrC#[1]", new BlittableStruct(4, 3, 2, 1), new DummyClass()
                    {
                        Nugget = "ComplexArrNugget[1]"
                    }, (a, b) => b * b - a * a)
                };
                var refx = new ComplexStruct[]
                {
                    new ComplexStruct("ComplexArrRefC#[0]", new BlittableStruct(11, 12, 13, 14), new DummyClass()
                    {
                        Nugget = "ComplexArrRefNugget[0]"
                    }, (a, b) => a - b)
                };
                PrintSend(title, x, refx);
                var ret = unitTest.ComplexStructArrays(x, out ComplexStruct[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "ObjectArrays";
                var    x     = new DummyClass[]
                {
                    new DummyClass()
                    {
                        Nugget = "Arr0"
                    },
                    new DummyClass()
                    {
                        Nugget = "Arr1"
                    },
                    null,
                    new DummyClass()
                    {
                        Nugget = "Arr3"
                    }
                };
                var refx = new DummyClass[]
                {
                    null,
                    null
                };
                PrintSend(title, x, refx);
                var ret = unitTest.ObjectArrays(x, out DummyClass[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                string title = "NamedDelegateArrays";
                var    x     = new NamedDelegate[]
                {
                    (a, b) => a.Length * b.Length,
                    (a, b) => a.Length + (int)b[0],
                };
                var refx = new NamedDelegate[]
                {
                    (a, b) => (int)a[0] * (int)b[0]
                };
                PrintSend(title, x, refx);
                var ret = unitTest.NamedDelegateArrays(x, out NamedDelegate[] outx, ref refx);
                PrintRecv(title, outx, refx, ret);
            }

            {
                try
                {
                    Func <char[], string> refx = null;
                    //unitTest.GenericDelegates(null, out var outx, ref refx);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Caught Exception : " + e.GetType().Name);
                }
            }

            var test = new ITestClass();

            Console.WriteLine(string.Format("RO Property = {0}", test.ReadOnlyProperty));
            Console.WriteLine(string.Format("Property = {0}", test.Property));
            test.Property = 17;
            Console.WriteLine(string.Format("Property = {0}", test.Property));


            try
            {
                Console.WriteLine("Testing AccessDeniedException...");
                unitTest.ExCheckAccessDenied();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (AccessViolationException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }

            try
            {
                Console.WriteLine("Testing ArgumentException...");
                unitTest.ExCheckArgument();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }

            try
            {
                Console.WriteLine("Testing ArgumentNullException...");
                unitTest.ExCheckArgumentNull();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }

            try
            {
                Console.WriteLine("Testing Generic Exceptions...");
                unitTest.ExCheckGeneric();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("Testing Generic STD Exceptions...");
                unitTest.ExCheckGenericStd();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            try
            {
                Console.WriteLine("Testing InvalidOperationException...");
                unitTest.ExCheckInvalidOperation();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (InvalidOperationException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }

            try
            {
                Console.WriteLine("Testing NotImplementedException...");
                unitTest.ExCheckNotImplemented();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (NotImplementedException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }

            try
            {
                Console.WriteLine("Testing NullReferenceException...");
                unitTest.ExCheckNullReference();
                Console.WriteLine("Error: No Exception Thrown!");
            }
            catch (NullReferenceException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: Improper exception: ");
                Console.WriteLine(e.ToString());
            }
        }