Example #1
0
        internal void AddReplica(ReplicaId id, IMessage replica, ReplicaOptions options)
        {
            var desc = new Replica(id, replica, options);

            replicas.Add(desc.Id, desc);
            ReplicaAdded?.Invoke(desc);
        }
Example #2
0
        public void AddStaticReplica(ReplicaId id, IMessage replica, StaticReplicaOptions options)
        {
            if (id < 0 || StaticIdCount <= id)
            {
                throw new ArgumentException($"{nameof(id)} must be in range [0,{StaticIdCount}[");
            }

            ReplicaOptions replicaOptions = (ReplicaOptions)options;

            AddReplica(id, replica, replicaOptions);
        }
Example #3
0
        public ReplicaId AddDynamicReplica(IMessage replica, DynamicReplicaOptions options = DynamicReplicaOptions.DefaultMaster)
        {
            ReplicaOptions replicaOptions = (ReplicaOptions)options;

            replicaOptions |= ReplicaOptions.AddOrRemove;
            replicaOptions |= ReplicaOptions.Master;

            ReplicaId id = GetNextDynamicId();

            AddReplica(id, replica, replicaOptions);
            return(id);
        }
Example #4
0
 internal Replica(ReplicaId id, IMessage value, ReplicaOptions options)
 {
     Id      = id;
     Value   = value;
     Options = options;
 }