コード例 #1
0
        internal static unsafe InvokeQuorumLossDescription CreateFromNative(IntPtr nativeRaw)
        {
            NativeTypes.FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION native = *(NativeTypes.FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION *)nativeRaw;

            Guid operationId = native.OperationId;

            NativeTypes.FABRIC_PARTITION_SELECTOR nativePartitionSelector = *(NativeTypes.FABRIC_PARTITION_SELECTOR *)native.PartitionSelector;

            PartitionSelector partitionSelector =
                PartitionSelector.CreateFromNative(nativePartitionSelector);

            TimeSpan quorumLossDuration = TimeSpan.FromMilliseconds(native.QuorumLossDurationInMilliSeconds);

            return(new InvokeQuorumLossDescription(operationId, partitionSelector, (QuorumLossMode)native.QuorumLossMode, quorumLossDuration));
        }
コード例 #2
0
        internal IntPtr ToNative(PinCollection pinCollection)
        {
            var nativeInvokeQuorumLossDescription = new NativeTypes.FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION();

            nativeInvokeQuorumLossDescription.OperationId = this.OperationId;

            if (this.PartitionSelector != null)
            {
                nativeInvokeQuorumLossDescription.PartitionSelector = this.PartitionSelector.ToNative(pinCollection);
            }

            nativeInvokeQuorumLossDescription.QuorumLossMode = (NativeTypes.FABRIC_QUORUM_LOSS_MODE) this.QuorumLossMode;

            nativeInvokeQuorumLossDescription.QuorumLossDurationInMilliSeconds = Utility.ToMilliseconds(this.QuorumLossDuration, "QuorumLossDuration");

            return(pinCollection.AddBlittable(nativeInvokeQuorumLossDescription));
        }