internal override unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType) { var nativeDeleteOperation = new NativeTypes.FABRIC_DELETE_PROPERTY_OPERATION[1]; nativeDeleteOperation[0].PropertyName = pin.AddBlittable(this.PropertyName); nativeOperationType = NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND.FABRIC_PROPERTY_BATCH_OPERATION_KIND_DELETE; return(pin.AddBlittable(nativeDeleteOperation)); }
internal override unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType) { var nativeCheckExistsOperation = new NativeTypes.FABRIC_CHECK_EXISTS_PROPERTY_OPERATION[1]; nativeCheckExistsOperation[0].PropertyName = pin.AddBlittable(this.PropertyName); nativeCheckExistsOperation[0].ExistenceCheck = NativeTypes.ToBOOLEAN(this.ExistenceCheck); nativeOperationType = NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND.FABRIC_PROPERTY_BATCH_OPERATION_KIND_CHECK_EXISTS; return(pin.AddBlittable(nativeCheckExistsOperation)); }
internal override unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType) { var nativeGetOperation = new NativeTypes.FABRIC_GET_PROPERTY_OPERATION[1]; nativeGetOperation[0].PropertyName = pin.AddBlittable(this.PropertyName); nativeGetOperation[0].IncludeValue = NativeTypes.ToBOOLEAN(this.IncludeValue); nativeOperationType = NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND.FABRIC_PROPERTY_BATCH_OPERATION_KIND_GET; return(pin.AddBlittable(nativeGetOperation)); }
internal override unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType) { var nativeCheckSequenceOperation = new NativeTypes.FABRIC_CHECK_SEQUENCE_PROPERTY_OPERATION[1]; nativeCheckSequenceOperation[0].PropertyName = pin.AddBlittable(this.PropertyName); nativeCheckSequenceOperation[0].SequenceNumber = this.SequenceNumber; nativeOperationType = NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND.FABRIC_PROPERTY_BATCH_OPERATION_KIND_CHECK_SEQUENCE; return(pin.AddBlittable(nativeCheckSequenceOperation)); }
internal override unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType) { Requires.Argument <object>("PropertyValue", this.PropertyValue).NotNull(); var nativePutCustomOperation = new NativeTypes.FABRIC_PUT_CUSTOM_PROPERTY_OPERATION[1]; nativePutCustomOperation[0].PropertyName = pin.AddBlittable(this.PropertyName); switch (this.PropertyType) { case PropertyTypeId.Binary: nativePutCustomOperation[0].PropertyTypeId = NativeTypes.FABRIC_PROPERTY_TYPE_ID.FABRIC_PROPERTY_TYPE_BINARY; // Create FABRIC_OPERATION_DATA_BUFFER from the byte[] var valueAsArray = this.PropertyValue as byte[]; var nativeOperationBuffer = new NativeTypes.FABRIC_OPERATION_DATA_BUFFER[1]; nativeOperationBuffer[0].BufferSize = (uint)valueAsArray.Length; nativeOperationBuffer[0].Buffer = pin.AddBlittable(valueAsArray); nativePutCustomOperation[0].PropertyValue = pin.AddBlittable(nativeOperationBuffer); break; case PropertyTypeId.Double: nativePutCustomOperation[0].PropertyTypeId = NativeTypes.FABRIC_PROPERTY_TYPE_ID.FABRIC_PROPERTY_TYPE_DOUBLE; var valueAsDouble = new double[1]; valueAsDouble[0] = (double)this.PropertyValue; nativePutCustomOperation[0].PropertyValue = pin.AddBlittable(valueAsDouble); break; case PropertyTypeId.Guid: nativePutCustomOperation[0].PropertyTypeId = NativeTypes.FABRIC_PROPERTY_TYPE_ID.FABRIC_PROPERTY_TYPE_GUID; nativePutCustomOperation[0].PropertyValue = pin.AddBlittable((Guid)this.PropertyValue); break; case PropertyTypeId.Int64: nativePutCustomOperation[0].PropertyTypeId = NativeTypes.FABRIC_PROPERTY_TYPE_ID.FABRIC_PROPERTY_TYPE_INT64; var valueAsLong = new long[1]; valueAsLong[0] = (long)this.PropertyValue; nativePutCustomOperation[0].PropertyValue = pin.AddBlittable(valueAsLong); break; case PropertyTypeId.String: nativePutCustomOperation[0].PropertyTypeId = NativeTypes.FABRIC_PROPERTY_TYPE_ID.FABRIC_PROPERTY_TYPE_WSTRING; nativePutCustomOperation[0].PropertyValue = pin.AddBlittable((string)this.PropertyValue); break; default: throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, StringResources.Error_TypeNotSupported_Formatted, this.PropertyType)); } nativePutCustomOperation[0].PropertyCustomTypeId = pin.AddBlittable(this.CustomTypeId); nativeOperationType = NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND.FABRIC_PROPERTY_BATCH_OPERATION_KIND_PUT_CUSTOM; return(pin.AddBlittable(nativePutCustomOperation)); }
internal abstract unsafe IntPtr ToNative(PinCollection pin, out NativeTypes.FABRIC_PROPERTY_BATCH_OPERATION_KIND nativeOperationType);