internal FabricReplicator(
     NativeRuntime.IFabricReplicator nativeReplicator,
     NativeRuntime.IFabricStateReplicator nativeStateReplicator,
     NativeRuntime.IOperationDataFactory operationDataFactory)
     : this(nativeReplicator)
 {
     this.stateReplicator = FabricReplicator.CreateStateReplicator(nativeStateReplicator, operationDataFactory);
 }
        private FabricReplicatorEx CreateFabricReplicatorHelperEx(IAtomicGroupStateProviderEx stateProvider, ReplicatorSettings replicatorSettings)
        {
            Requires.Argument <IAtomicGroupStateProviderEx>("stateProvider", stateProvider).NotNull();

            // Initialize replicator
            if (replicatorSettings == null)
            {
                AppTrace.TraceSource.WriteNoise("StatefulServicePartitionEx.CreateFabricReplicatorEx", "Using default replicator settings");
            }
            else
            {
                AppTrace.TraceSource.WriteNoise("StatefulServicePartitionEx.CreateFabricReplicatorEx", "{0}", replicatorSettings);
            }

            NativeRuntime.IFabricReplicator nativeReplicator;
            NativeRuntime.IFabricAtomicGroupStateReplicatorEx nativeStateReplicator;

            AppTrace.TraceSource.WriteNoise("StatefulServicePartitionEx.CreateFabricReplicatorEx", "Creating state provider borker");
            AtomicGroupStateProviderExBroker stateProviderBroker = new AtomicGroupStateProviderExBroker(stateProvider);

            using (var pin = new PinCollection())
            {
                unsafe
                {
                    IntPtr replicatorSettingsNative = IntPtr.Zero;
                    IntPtr logSettingsNative        = IntPtr.Zero;

                    if (replicatorSettings != null)
                    {
                        replicatorSettingsNative = replicatorSettings.ToNative(pin);
                    }

                    nativeStateReplicator = this.nativePartition.CreateReplicatorEx(
                        stateProviderBroker,
                        replicatorSettingsNative,
                        logSettingsNative,
                        out nativeReplicator);
                }
            }

            NativeRuntime.IOperationDataFactory nativeOperationDataFactory = (NativeRuntime.IOperationDataFactory)nativeReplicator;
            if (nativeStateReplicator == null || nativeReplicator == null || nativeOperationDataFactory == null)
            {
                AppTrace.TraceSource.WriteError("StatefulServicePartitionEx.Create", "Native replicators could not be initialized.");
                throw new InvalidOperationException(StringResources.Error_StatefulServicePartition_Native_Replicator_Init_Failed);
            }

            stateProviderBroker.OperationDataFactory = new OperationDataFactoryWrapper(nativeOperationDataFactory);

            return(new FabricReplicatorEx(nativeReplicator, nativeStateReplicator, nativeOperationDataFactory));
        }
        private static StateReplicator CreateStateReplicator(
            NativeRuntime.IFabricStateReplicator nativeStateReplicator,
            NativeRuntime.IOperationDataFactory nativeOperationDataFactory)
        {
            Requires.Argument("nativeOperationDataFactory", nativeOperationDataFactory).NotNull();
            NativeRuntime.IFabricAtomicGroupStateReplicator nativeAtomicGroupStateReplicator = nativeStateReplicator as NativeRuntime.IFabricAtomicGroupStateReplicator;

            if (nativeAtomicGroupStateReplicator != null)
            {
                return(new AtomicGroupStateReplicator(nativeAtomicGroupStateReplicator, nativeStateReplicator, nativeOperationDataFactory));
            }
            else
            {
                return(new StateReplicator(nativeStateReplicator, nativeOperationDataFactory));
            }
        }
        public AtomicGroupStateReplicator(NativeRuntime.IFabricAtomicGroupStateReplicator nativeAtomicGroupStateReplicator, NativeRuntime.IFabricStateReplicator nativeStateReplicator, NativeRuntime.IOperationDataFactory nativeOperationDataFactory)
            : base(nativeStateReplicator, nativeOperationDataFactory)
        {
            Requires.Argument("nativeAtomicGroupStateReplicator", nativeAtomicGroupStateReplicator).NotNull();

            this.nativeAtomicGroupStateReplicator = nativeAtomicGroupStateReplicator;
        }
        public StateReplicator(NativeRuntime.IFabricStateReplicator nativeStateReplicator, NativeRuntime.IOperationDataFactory nativeOperationDataFactory)
        {
            Requires.Argument("nativeStateReplicator", nativeStateReplicator).NotNull();
            Requires.Argument("nativeOperationDataFactory", nativeOperationDataFactory).NotNull();

            // This is either the V1 replicator or the service groups atomic group replicator
            this.nativeStateReplicator       = nativeStateReplicator as NativeRuntime.IFabricStateReplicator2;
            this.replicatorUsingOperationEx1 = nativeStateReplicator as NativeRuntime.IFabricInternalManagedReplicator;

            this.operationDataFactory = new OperationDataFactoryWrapper(nativeOperationDataFactory);
        }
        public OperationDataFactoryWrapper(NativeRuntime.IOperationDataFactory operationDataFactory)
        {
            Requires.Argument("operationDataFactory", operationDataFactory).NotNull();

            this.operationDataFactory = operationDataFactory;
        }
Exemple #7
0
        internal FabricReplicatorEx(NativeRuntime.IFabricReplicator nativeReplicator, NativeRuntime.IFabricAtomicGroupStateReplicatorEx nativeStateReplicator, NativeRuntime.IOperationDataFactory operationDataFactory)
        {
            this.internalReplicator = new InternalFabricReplicator(nativeReplicator);

            this.nativeStateReplicator = nativeStateReplicator;

            this.stateReplicator = FabricReplicatorEx.CreateStateReplicator(this.nativeStateReplicator, operationDataFactory);
        }
Exemple #8
0
        private static AtomicGroupStateReplicatorEx CreateStateReplicator(NativeRuntime.IFabricAtomicGroupStateReplicatorEx nativeStateReplicator, NativeRuntime.IOperationDataFactory nativeOperationDataFactory)
        {
            Requires.Argument("nativeOperationDataFactory", nativeOperationDataFactory).NotNull();

            return(new AtomicGroupStateReplicatorEx(nativeStateReplicator, nativeOperationDataFactory));
        }
Exemple #9
0
        public AtomicGroupStateReplicatorEx(NativeRuntime.IFabricAtomicGroupStateReplicatorEx nativeStateReplicator, NativeRuntime.IOperationDataFactory nativeOperationDataFactory)
        {
            Requires.Argument("nativeStateReplicator", nativeStateReplicator).NotNull();
            Requires.Argument("nativeOperationDataFactory", nativeOperationDataFactory).NotNull();

            this.nativeStateReplicator = nativeStateReplicator;

            this.operationDataFactory = new OperationDataFactoryWrapper(nativeOperationDataFactory);
        }