Ejemplo n.º 1
0
        internal unsafe IntPtr ToNativePagingDescription(PinCollection pinCollection)
        {
            var nativeDescription = new NativeTypes.FABRIC_QUERY_PAGING_DESCRIPTION();

            if (this.ContinuationToken != null)
            {
                nativeDescription.ContinuationToken = pinCollection.AddObject(this.ContinuationToken);
            }

            if (this.MaxResults.HasValue)
            {
                nativeDescription.MaxResults = (long)this.MaxResults.Value;
            }

            nativeDescription.Reserved = IntPtr.Zero;
            return(pinCollection.AddBlittable(nativeDescription));
        }
Ejemplo n.º 2
0
        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);
        }