public static object[] ToObjectArray(Tag[] tags) { object[] objArray = new object[tags.Length]; for (int i = 0; i < tags.Length; i++) { objArray[i] = NXObjectManager.Get(tags[i]); } return(objArray); }
public static object ToObject(Variant v) { switch ((v.type & ~VariantType.Array)) { case VariantType.Int: if ((v.type & VariantType.Array) == VariantType.Int) { return(v.val.i); } return(ToIntArray(v.array_length, v.val.ptr)); case VariantType.Double: if ((v.type & VariantType.Array) == VariantType.Int) { return(v.val.d); } return(ToDoubleArray(v.array_length, v.val.ptr)); case VariantType.Logical: if ((v.type & VariantType.Array) == VariantType.Int) { return(v.val.l != 0); } return(ToBoolArray(v.array_length, v.val.ptr)); case VariantType.String: if ((v.type & VariantType.Array) == VariantType.Int) { return(ToStringFromUTF8(v.val.ptr)); } return(ToStringArrayFromUTF8(v.array_length, v.val.ptr)); case VariantType.Tag: if ((v.type & VariantType.Array) == VariantType.Int) { return(NXObjectManager.Get((Tag)v.val.i)); } return(ToObjectArray(typeof(object), v.array_length, v.val.ptr)); case VariantType.Empty: if ((v.type & VariantType.Array) != VariantType.Int) { throw new ArgumentException("array of Variant.Empty not allowed"); } return(null); case VariantType.Variant: if ((v.type & VariantType.Array) == VariantType.Int) { throw new ArgumentException("VariantType.Variant only valid for arrays"); } return(ToObjectArray(v.array_length, v.val.ptr)); } throw new ArgumentException("bad Variant object"); }
protected static void StaticInitialize() { int status = JAM_SESSION_initialize(); if (status != 0) { throw NXException.Create(status); } InitLicense(); if (objectManager == null) { objectManager = new NXObjectManager(); } }
public static unsafe Array ToObjectArray(Type elemType, int count, IntPtr tags) { uint *numPtr = (uint *)tags.ToPointer(); Array array = Array.CreateInstance(elemType, count); for (int i = 0; i < count; i++) { if (numPtr[i] != 0) { array.SetValue(NXObjectManager.Get(*((Tag *)(numPtr + i))), i); } } SM_free(tags); return(array); }