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; }
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)); }
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 }
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); } } }
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()); } }