示例#1
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }
示例#5
0
        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);