private static unsafe KeyValueStoreItem CreateFromNative(IntPtr nativeItem) { var item = (NativeTypes.FABRIC_KEY_VALUE_STORE_ITEM *)nativeItem; var metadata = KeyValueStoreItemMetadata.CreateFromNative(item->Metadata); var returnValue = new KeyValueStoreItem() { Metadata = metadata, Value = NativeTypes.FromNativeBytes(item->Value, (uint)metadata.ValueSizeInBytes) }; return(returnValue); }
internal static unsafe KeyValueStoreItemMetadata CreateFromNative(IntPtr nativeMetadata) { var metadata = (NativeTypes.FABRIC_KEY_VALUE_STORE_ITEM_METADATA *)nativeMetadata; var returnValue = new KeyValueStoreItemMetadata() { Key = NativeTypes.FromNativeString(metadata->Key), ValueSizeInBytes = metadata->ValueSizeInBytes, LastModifiedUtc = NativeTypes.FromNativeFILETIME(metadata->LastModifiedUtc), SequenceNumber = metadata->SequenceNumber }; if (metadata->Reserved != IntPtr.Zero) { var ex1 = (NativeTypes.FABRIC_KEY_VALUE_STORE_ITEM_METADATA_EX1 *)metadata->Reserved; returnValue.LastModifiedOnPrimaryUtc = NativeTypes.FromNativeFILETIME(ex1->LastModifiedOnPrimaryUtc); } return(returnValue); }