internal ReplicationStreamWriter(ReplicationSystem system, ReplicationStreamWriterOptions options = null)
        {
            this.system  = system;
            this.options = options ?? ReplicationStreamWriterOptions.Default;

            if (this.options.AllowAddOrRemove)
            {
                this.system.ReplicaAdded   += System_ReplicaAdded;
                this.system.ReplicaRemoved += System_ReplicaRemoved;
                foreach (var replica in this.system.Replicas)
                {
                    System_ReplicaAdded(replica);
                }
            }

            if (this.options.AllowRemoteCall)
            {
                this.system.RemoteCall += System_RemoteCall;
                foreach (var call in this.system.QueuedRemoteCalls)
                {
                    System_RemoteCall(call.Item1, call.Item2);
                }
            }

            if (this.options.AllowUpdatedOnly)
            {
                this.system.ReplicaUpdated += System_ReplicaUpdated;
            }
        }
Exemplo n.º 2
0
 public static void WriteTo(this IReplicationStreamWriter master, ReplicationSystem system)
 {
     master.WriteTo(system.DefaultStreamReader);
 }
Exemplo n.º 3
0
 internal ReplicationStreamReader(ReplicationSystem system)
 {
     this.system = system;
 }