NativeTypes.FABRIC_REPLICA_INFORMATION CreateNativeReplicaInformation(
            PinCollection pin,
            NativeTypes.FABRIC_REPLICA_ROLE role     = NativeTypes.FABRIC_REPLICA_ROLE.FABRIC_REPLICA_ROLE_NONE,
            NativeTypes.FABRIC_REPLICA_STATUS status = NativeTypes.FABRIC_REPLICA_STATUS.FABRIC_REPLICA_STATUS_UP,
            long catchupCapability = 1,
            long currentProgress   = 2,
            long id = 3,
            string replicatorAddress = "",
            bool mustCatchup         = false
            )
        {
            var ex = new NativeTypes.FABRIC_REPLICA_INFORMATION_EX1[1];

            ex[0].MustCatchup = NativeTypes.ToBOOLEAN(mustCatchup);
            ex[0].Reserved    = IntPtr.Zero;

            return(new NativeTypes.FABRIC_REPLICA_INFORMATION
            {
                CatchUpCapability = catchupCapability,
                CurrentProgress = currentProgress,
                Id = id,
                ReplicatorAddress = pin.AddBlittable(replicatorAddress),
                Role = (NativeTypes.FABRIC_REPLICA_ROLE)role,
                Status = (NativeTypes.FABRIC_REPLICA_STATUS)status,
                Reserved = pin.AddBlittable(ex)
            });
        }
Esempio n. 2
0
        internal void ToNative(PinCollection pin, out NativeTypes.FABRIC_REPLICA_INFORMATION native)
        {
            native.Id                = this.Id;
            native.Role              = (NativeTypes.FABRIC_REPLICA_ROLE) this.Role;
            native.Status            = (NativeTypes.FABRIC_REPLICA_STATUS) this.Status;
            native.ReplicatorAddress = pin.AddBlittable(this.ReplicatorAddress);
            native.CatchUpCapability = this.CatchUpCapability;
            native.CurrentProgress   = this.CurrentProgress;


            var ex1 = new NativeTypes.FABRIC_REPLICA_INFORMATION_EX1[1];

            ex1[0].MustCatchup = NativeTypes.ToBOOLEAN(this.MustCatchup);
            ex1[0].Reserved    = IntPtr.Zero;
            native.Reserved    = pin.AddBlittable(ex1);
        }