internal static void CopyIn(ref OpenSplice.Gapi.gapi_subscriberListener from, IntPtr to, int offset) { DataReaderListenerMarshaler.CopyIn(ref from.dataReader, to, offset_dataReader); // set on_data_on_readers field BaseMarshaler.Write(to, offset + offset_on_data_on_readers, MarshalHelper.GetIntPtrForDelegate(from.on_data_on_readers)); }
internal static void CleanupIn(ref v_sharePolicyI_s to) { if (to.v.name != IntPtr.Zero) { BaseMarshaler.ReleaseString(ref to.v.name); } }
internal static void CopyOut(IntPtr from, ref TInterface[] to, int offset) { // Get _length field int length = BaseMarshaler.ReadInt32(from, offset + offset__length); // Initialize managed array to the correct size. // Initialize managed array to the correct size. if (to == null || to.Length != length) { to = new TInterface[length]; } if (length > 0) { // Read the buffer pointer containing the sequence content IntPtr arrayPtr = BaseMarshaler.ReadIntPtr(from, offset + offset__buffer); for (int index = 0; index < length; index++) { // Loop through the string pointers, deallocating each IntPtr GapiPtr = BaseMarshaler.ReadIntPtr(arrayPtr, Size * index); to[index] = (TInterface)(T)SacsSuperClass.fromUserData(GapiPtr); } } }
internal static void CopyIn(TInterface[] from, IntPtr to, int offset) { Int32 length = 0; // guard against null if (from != null) { // Determine the Length of the array. length = (Int32)from.Length; } // Set _max field. BaseMarshaler.Write(to, offset + offset__maximum, length); // Set _length field BaseMarshaler.Write(to, offset + offset__length, length); // Allocate a buffer containing the sequence content starting at element 0 up til the full Length of the array. IntPtr arrayPtr = OpenSplice.Gapi.GenericAllocRelease.Alloc(Size * length); //IntPtr arrayPtr = Marshal.AllocHGlobal(Size * length); for (int index = 0; index < length; index++) { T objectType = (T)from[index]; BaseMarshaler.Write(arrayPtr, Size * index, objectType == null ? IntPtr.Zero : objectType.GapiPeer); } // _buffer field: set the pointer to the appropriate location. BaseMarshaler.Write(to, offset + offset__buffer, arrayPtr); // Set _release field BaseMarshaler.Write(to, offset + offset__release, (byte)1); }
internal static void CopyOut(IntPtr from, ref InstanceHandle[] to, int offset) { // Get _length field int length = BaseMarshaler.ReadInt32(from, offset + offset__length); // Initialize managed array to the correct size. // Initialize managed array to the correct size. if (to == null || to.Length != length) { to = new InstanceHandle[length]; } if (length > 0) { // Read the buffer pointer containing the sequence content IntPtr arrayPtr = BaseMarshaler.ReadIntPtr(from, offset + offset__buffer); for (int index = 0; index < length; index++) { // Loop through the string pointers, deallocating each long handle = BaseMarshaler.ReadInt64(arrayPtr, Size * index); to[index] = handle; } } }
internal static void CopyIn(byte[] from, IntPtr to, int offset) { Int32 length = 0; // guard against null if (from != null) { // Determine the Length of the array. length = (Int32)from.Length; } // Set _max field. BaseMarshaler.Write(to, offset + offset__maximum, length); // Set _length field BaseMarshaler.Write(to, offset + offset__length, length); IntPtr bufPtr = IntPtr.Zero; if (length > 0) { // Allocate a buffer containing the sequence content starting at element 0 up til the full Length of the array. bufPtr = OpenSplice.Gapi.GenericAllocRelease.Alloc(Size * length); Marshal.Copy(from, 0, bufPtr, length); } // _buffer field: set the pointer to the appropriate location. BaseMarshaler.Write(to, offset + offset__buffer, bufPtr); // Set _release field BaseMarshaler.Write(to, offset + offset__release, (byte)1); }
internal static void CopyOut(IntPtr from, ref QosPolicyCount[] to, int offset) { // Get _length field int length = BaseMarshaler.ReadInt32(from, offset + offset__length); // Initialize managed array to the correct size. if (to == null || to.Length != length) { to = new DDS.QosPolicyCount[length]; } if (length > 0) { // Read the buffer pointer containing the sequence content IntPtr arrayPtr = BaseMarshaler.ReadIntPtr(from, offset + offset__buffer); for (int index = 0; index < length; index++) { // Loop through the string pointers, deallocating each to[index].PolicyId = (QosPolicyId)ReadInt32( arrayPtr, (bufSize * index) + offset_policy_id); to[index].Count = ReadInt32( arrayPtr, (bufSize * index) + offset_count); } } }
internal static void CleanupIn(IntPtr nativePtr, int offset) { // Read the buffer pointer containing the sequence content and de-allocate it. IntPtr arrayPtr = BaseMarshaler.ReadIntPtr(nativePtr, offset + offset__buffer); OpenSplice.Gapi.GenericAllocRelease.Free(arrayPtr); BaseMarshaler.Write(nativePtr, offset + offset__buffer, IntPtr.Zero); }
internal static void CopyIn(ref OpenSplice.Gapi.gapi_topicListener from, IntPtr to, int offset) { // Set listener_data field // Marshal.WriteIntPtr(to, offset + offset_listener_data, from.listener_data); BaseMarshaler.Write(to, offset + offset_listener_data, IntPtr.Zero); // Set on_inconsistent_topic field BaseMarshaler.Write(to, offset + offset_on_inconsistent_topic, MarshalHelper.GetIntPtrForDelegate(from.on_inconsistent_topic)); }
internal static void CopyOut(v_sharePolicyI_s from, ref ShareQosPolicy to) { if (to == null) { to = new ShareQosPolicy(); } to.Name = BaseMarshaler.ReadString(from.v.name); to.Enable = from.v.enable; }
internal static void CopyIn(ref OpenSplice.Gapi.gapi_publisherDataWriterListener from, IntPtr to, int offset) { // Set listener_data field // Marshal.WriteIntPtr(to, offset + offset_listener_data, from.listener_data); BaseMarshaler.Write(to, offset + offset_listener_data, IntPtr.Zero); // Set callback fields BaseMarshaler.Write(to, offset + offset_on_offered_deadline_missed, MarshalHelper.GetIntPtrForDelegate(from.on_offered_deadline_missed)); BaseMarshaler.Write(to, offset + offset_on_offered_incompatible_qos, MarshalHelper.GetIntPtrForDelegate(from.on_offered_incompatible_qos)); BaseMarshaler.Write(to, offset + offset_on_liveliness_lost, MarshalHelper.GetIntPtrForDelegate(from.on_liveliness_lost)); BaseMarshaler.Write(to, offset + offset_on_publication_match, MarshalHelper.GetIntPtrForDelegate(from.on_publication_match)); }
internal static void CopyIn(ref OpenSplice.Gapi.gapi_dataReaderListener from, IntPtr to, int offset) { // Set listener_data field // Marshal.WriteIntPtr(to, offset + offset_listener_data, from.listener_data); BaseMarshaler.Write(to, offset + offset_listener_data, IntPtr.Zero); // Set callback fields BaseMarshaler.Write(to, offset + offset_on_requested_deadline_missed, MarshalHelper.GetIntPtrForDelegate(from.on_requested_deadline_missed)); BaseMarshaler.Write(to, offset + offset_on_requested_incompatible_qos, MarshalHelper.GetIntPtrForDelegate(from.on_requested_incompatible_qos)); BaseMarshaler.Write(to, offset + offset_on_sample_rejected, MarshalHelper.GetIntPtrForDelegate(from.on_sample_rejected)); BaseMarshaler.Write(to, offset + offset_on_liveliness_changed, MarshalHelper.GetIntPtrForDelegate(from.on_liveliness_changed)); BaseMarshaler.Write(to, offset + offset_on_data_available, MarshalHelper.GetIntPtrForDelegate(from.on_data_available)); BaseMarshaler.Write(to, offset + offset_on_subscription_match, MarshalHelper.GetIntPtrForDelegate(from.on_subscription_match)); BaseMarshaler.Write(to, offset + offset_on_sample_lost, MarshalHelper.GetIntPtrForDelegate(from.on_sample_lost)); }
internal static DDS.ReturnCode CopyIn(ShareQosPolicy from, ref v_sharePolicyI_s to) { DDS.ReturnCode result = DDS.ReturnCode.Ok; if (from != null && (from.Enable == false || from.Name != null)) { BaseMarshaler.WriteString(ref to.v.name, from.Name); to.v.enable = from.Enable; } else { result = DDS.ReturnCode.BadParameter; ReportStack.Report(result, "ShareQosPolicy attribute may not contain a null pointer."); } return(result); }
internal static DDS.ReturnCode CopyIn(QosPolicyCount[] from, IntPtr to, int offset) { int index = 0; Int32 length = 0; IntPtr arrayPtr = IntPtr.Zero; DDS.ReturnCode result = DDS.ReturnCode.Ok; // guard against null if (from != null) { // Determine the Length of the array. length = (Int32)from.Length; } // Set _max field. BaseMarshaler.Write(to, offset + offset__maximum, length); // Set _length field. BaseMarshaler.Write(to, offset + offset__length, length); if (length > 0) { // Allocate a buffer containing the sequence content starting at element 0 // up til the full Length of the array. arrayPtr = Gapi.GenericAllocRelease.Alloc(bufSize * length); for (index = 0; index < length && result == DDS.ReturnCode.Ok; index++) { Write(arrayPtr, bufSize * index + offset_policy_id, (int)from[index].PolicyId); Write(arrayPtr, bufSize * index + offset_count, from[index].Count); } } // Set _length field with the amount of elements that are copied. BaseMarshaler.Write(to, offset + offset__length, index); // _buffer field: set the pointer to the appropriate location. BaseMarshaler.Write(to, offset + offset__buffer, arrayPtr); // Set _release field BaseMarshaler.Write(to, offset + offset__release, (byte)1); return(result); }
public static void CopyIn(ref Gapi.gapi_domainParticipantListener from, IntPtr to, int offset) { // Set listener_data field BaseMarshaler.Write(to, offset + offset_listener_data, IntPtr.Zero); // Set callback fields BaseMarshaler.Write(to, offset + offset_on_inconsistent_topic, MarshalHelper.GetIntPtrForDelegate(from.on_inconsistent_topic)); BaseMarshaler.Write(to, offset + offset_on_offered_deadline_missed, MarshalHelper.GetIntPtrForDelegate(from.on_offered_deadline_missed)); BaseMarshaler.Write(to, offset + offset_on_offered_incompatible_qos, MarshalHelper.GetIntPtrForDelegate(from.on_offered_incompatible_qos)); BaseMarshaler.Write(to, offset + offset_on_liveliness_lost, MarshalHelper.GetIntPtrForDelegate(from.on_liveliness_lost)); BaseMarshaler.Write(to, offset + offset_on_publication_match, MarshalHelper.GetIntPtrForDelegate(from.on_publication_match)); BaseMarshaler.Write(to, offset + offset_on_requested_deadline_missed, MarshalHelper.GetIntPtrForDelegate(from.on_requested_deadline_missed)); BaseMarshaler.Write(to, offset + offset_on_requested_incompatible_qos, MarshalHelper.GetIntPtrForDelegate(from.on_requested_incompatible_qos)); BaseMarshaler.Write(to, offset + offset_on_sample_rejected, MarshalHelper.GetIntPtrForDelegate(from.on_sample_rejected)); BaseMarshaler.Write(to, offset + offset_on_liveliness_changed, MarshalHelper.GetIntPtrForDelegate(from.on_liveliness_changed)); BaseMarshaler.Write(to, offset + offset_on_data_available, MarshalHelper.GetIntPtrForDelegate(from.on_data_available)); BaseMarshaler.Write(to, offset + offset_on_subscription_match, MarshalHelper.GetIntPtrForDelegate(from.on_subscription_match)); BaseMarshaler.Write(to, offset + offset_on_sample_lost, MarshalHelper.GetIntPtrForDelegate(from.on_sample_lost)); BaseMarshaler.Write(to, offset + offset_on_data_on_readers, MarshalHelper.GetIntPtrForDelegate(from.on_data_on_readers)); }
internal static void CleanupIn(IntPtr nativePtr, int offset) { // Set _max field. int length = BaseMarshaler.ReadInt32(nativePtr, offset + offset__length); // Read the buffer pointer containing the sequence content IntPtr arrayPtr = BaseMarshaler.ReadIntPtr(nativePtr, offset + offset__buffer); for (int index = 0; index < length; index++) { // Loop through the string pointers, deallocating each IntPtr stringPtr = BaseMarshaler.ReadIntPtr(arrayPtr, Size * index); //OpenSplice.Gapi.GenericAllocRelease.Free(stringPtr); Marshal.FreeHGlobal(stringPtr); BaseMarshaler.Write(arrayPtr, Size * index, IntPtr.Zero); } // free array OpenSplice.Gapi.GenericAllocRelease.Free(arrayPtr); BaseMarshaler.Write(nativePtr, offset + offset__buffer, IntPtr.Zero); }