public RaftHost(INetworkModel networkModel, IRaftEventListener raftEventListener, IRaftNodeSettings raftSettings, string Id) : base(networkModel) { this.Id = Id; if (Id == null) { throw new ArgumentException("Id"); } Raft = new RaftNode <string>(raftEventListener, raftSettings, Id); Server = networkModel.CreateServer(Id, startListening: false); }
public RaftNode(IRaftEventListener raftEventListener, IRaftNodeSettings raftSettings, string id) { if (raftEventListener == null) { throw new ArgumentNullException("raftWorld"); } if (id == null) { throw new ArgumentException("id"); } this.Id = id; RaftEventListener = raftEventListener; RaftSettings = raftSettings; PersistedState = new PersistedState <T>(); }
public RaftDiagramDefinition(RaftSoundPlayer raftEventListener, INetworkModel networkModel, SimulationSettings worldSettings) { this.raftEventListener = raftEventListener; this.simulationSettings = worldSettings; // brokers AddModelFor <BrokerViewModel, DiagramNodeBroker>( "Broker", (p) => new BrokerViewModel(string.Format("Br{0}", brokerNo++)) { Location = p }, (vm) => new DiagramNodeBroker() { Location = vm.Location, Name = vm.Name }, (m) => new BrokerViewModel(m.Name) { Location = m.Location } ); // clients AddModelFor <ClientViewModel, DiagramNodeClient>( "NetworkClient", (p) => { string cliendId = (clientNo++).ToString(); RaftClient raftClient = new RaftClient(networkModel, cliendId); return(new ClientViewModel(raftClient) { Location = p }); }, (vm) => new DiagramNodeClient() { Location = vm.Location, Name = vm.Name }, (m) => { RaftClient raftClient = new RaftClient(networkModel, m.Name); return(new ClientViewModel(raftClient) { Location = m.Location }); } ); // servers AddModelFor <ServerViewModel, DiagramNodeServer>( "Server", (p) => { serverNo++; string raftNodeId = serverNo.ToString(); RaftHost serverSoftware = new RaftHost(networkModel, raftEventListener, simulationSettings, raftNodeId); //this looks nasty return(new ServerViewModel(serverSoftware) { Location = p }); }, (vm) => new DiagramNodeServer() { Location = vm.Location, Name = vm.Name }, (m) => { RaftHost serverSoftware = new RaftHost(networkModel, raftEventListener, simulationSettings, m.Name); return(new ServerViewModel(serverSoftware) { Location = m.Location }); } ); }