private void UpdateCatchUpReplicaSetConfigurationHelper(ReplicaSetConfiguration current, ReplicaSetConfiguration previous)
        {
            using (var pin = new PinCollection())
            {
                NativeTypes.FABRIC_REPLICA_SET_CONFIGURATION nativeCurrentConfiguration;
                current.ToNative(pin, out nativeCurrentConfiguration);

                NativeTypes.FABRIC_REPLICA_SET_CONFIGURATION nativePreviousConfiguration;
                if (previous != null)
                {
                    previous.ToNative(pin, out nativePreviousConfiguration);
                }

                IntPtr cc = IntPtr.Zero;
                IntPtr pc = IntPtr.Zero;

                unsafe
                {
                    cc = (IntPtr)(&nativeCurrentConfiguration);
                    if (previous != null)
                    {
                        pc = (IntPtr)(&nativePreviousConfiguration);
                    }
                }

                this.PrimaryReplicator.UpdateCatchUpReplicaSetConfiguration(cc, pc);
            }
        }
Пример #2
0
        private void UpdateCatchUpReplicaSetConfigurationHelper(IntPtr nativeCurrentConfiguration, IntPtr nativePreviousConfiguration)
        {
            ReplicaSetConfiguration currentConfiguration  = ReplicaSetConfiguration.FromNative(nativeCurrentConfiguration);
            ReplicaSetConfiguration previousConfiguration = ReplicaSetConfiguration.FromNative(nativePreviousConfiguration);

            this.replicator.UpdateCatchUpReplicaSetConfiguration(currentConfiguration, previousConfiguration);
        }
        private void UpdateCurrentReplicaSetConfigurationHelper(ReplicaSetConfiguration current)
        {
            using (var pin = new PinCollection())
            {
                NativeTypes.FABRIC_REPLICA_SET_CONFIGURATION nativeCurrentConfiguration;
                current.ToNative(pin, out nativeCurrentConfiguration);

                IntPtr cc = IntPtr.Zero;

                unsafe
                {
                    cc = (IntPtr)(&nativeCurrentConfiguration);
                }

                this.PrimaryReplicator.UpdateCurrentReplicaSetConfiguration(cc);
            }
        }
Пример #4
0
        internal static unsafe ReplicaSetConfiguration FromNative(IntPtr replicaSetIntPtr)
        {
            var nativeConfiguration = (NativeTypes.FABRIC_REPLICA_SET_CONFIGURATION *)replicaSetIntPtr;

            if (nativeConfiguration == null)
            {
                return(null);
            }

            var configuration = new ReplicaSetConfiguration();

            configuration.WriteQuorum = (long)nativeConfiguration->WriteQuorum;

            configuration.Replicas = new List <ReplicaInformation>();
            IntPtr replicas    = nativeConfiguration->Replicas;
            var    nativeInfos = (NativeTypes.FABRIC_REPLICA_INFORMATION *)replicas;

            for (int i = 0; i < nativeConfiguration->ReplicaCount; i++)
            {
                configuration.Replicas.Add(ReplicaInformation.FromNative((IntPtr)(&nativeInfos[i])));
            }

            return(configuration);
        }
Пример #5
0
        private void UpdateCurrentReplicaSetConfigurationHelper(IntPtr nativeCurrentConfiguration)
        {
            ReplicaSetConfiguration currentConfiguration = ReplicaSetConfiguration.FromNative(nativeCurrentConfiguration);

            this.replicator.UpdateCurrentReplicaSetConfiguration(currentConfiguration);
        }
 void IPrimaryReplicator.UpdateCurrentReplicaSetConfiguration(ReplicaSetConfiguration currentConfiguration)
 {
     Utility.WrapNativeSyncInvoke(() => this.UpdateCurrentReplicaSetConfigurationHelper(currentConfiguration), "FabricReplicator.UpdateCurrentReplicaSetConfiguration");
 }
Пример #7
0
        /// <summary>This supports the Service Fabric infrastructure and is not meant to be used directly from your code.</summary>
        /// <param name="currentConfiguration">
        /// <para>This supports the Service Fabric infrastructure and is not meant to be used directly from your code.</para>
        /// </param>
        /// <remarks>
        /// <para>This supports the Service Fabric infrastructure and is not meant to be used directly from your code.</para>
        /// </remarks>

        void IPrimaryReplicator.UpdateCurrentReplicaSetConfiguration(ReplicaSetConfiguration currentConfiguration)
        {
            this.internalReplicator.UpdateCurrentReplicaSetConfiguration(currentConfiguration);
        }
Пример #8
0
 /// <summary>This supports the Service Fabric infrastructure and is not meant to be used directly from your code.</summary>
 /// <param name="currentConfiguration">
 /// <para>For Internal Use Only.</para>
 /// </param>
 /// <param name="previousConfiguration">
 /// <para>For Internal Use Only.</para>
 /// </param>
 void IPrimaryReplicator.UpdateCatchUpReplicaSetConfiguration(ReplicaSetConfiguration currentConfiguration, ReplicaSetConfiguration previousConfiguration)
 {
     this.internalReplicator.UpdateCatchUpReplicaSetConfiguration(currentConfiguration, previousConfiguration);
 }