internal IntPtr ToNative(PinCollection pinCollection) { var nativeChaosEventsDescription = new NativeTypes.FABRIC_CHAOS_EVENTS_SEGMENT_DESCRIPTION(); nativeChaosEventsDescription.Filter = this.Filter.ToNative(pinCollection); nativeChaosEventsDescription.PagingDescription = this.ToNativePagingDescription(pinCollection); var clientType = new NativeTypes.FABRIC_CHAOS_CLIENT_TYPE { ClientType = pinCollection.AddObject(ChaosConstants.ManagedClientTypeName) }; nativeChaosEventsDescription.Reserved = pinCollection.AddBlittable(clientType); return(pinCollection.AddBlittable(nativeChaosEventsDescription)); }
internal static unsafe ChaosEventsDescription CreateFromNative(IntPtr nativeRaw) { NativeTypes.FABRIC_CHAOS_EVENTS_SEGMENT_DESCRIPTION native = *(NativeTypes.FABRIC_CHAOS_EVENTS_SEGMENT_DESCRIPTION *)nativeRaw; var filter = ChaosEventsSegmentFilter.FromNative(native.Filter); NativeTypes.FABRIC_QUERY_PAGING_DESCRIPTION nativePagingDescription = *(NativeTypes.FABRIC_QUERY_PAGING_DESCRIPTION *)native.PagingDescription; var continuationToken = NativeTypes.FromNativeString(nativePagingDescription.ContinuationToken); var maxResults = (long)nativePagingDescription.MaxResults; var description = new ChaosEventsDescription(filter, continuationToken, maxResults); if (native.Reserved != IntPtr.Zero) { var clientType = *((NativeTypes.FABRIC_CHAOS_CLIENT_TYPE *)native.Reserved); if (clientType.ClientType != IntPtr.Zero) { description.ClientType = NativeTypes.FromNativeString(clientType.ClientType); } } return(description); }