/// <summary> /// Constructor. /// </summary> /// <param name="listenerAddress">Address you want to expose</param> /// <param name="serverAddresses">List of server addresses to connect to</param> /// <param name="config">Custom MeepoNode configuration</param> public MeepoNode(TcpAddress listenerAddress, IEnumerable <TcpAddress> serverAddresses, MeepoConfig config) { if (serverAddresses == null) { throw new ArgumentNullException(nameof(serverAddresses)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } if (config.Logger == null) { throw new ArgumentNullException(nameof(config)); } var clientManagerProvider = new ClientManagerProvider(config, listenerAddress, serverAddresses, OnMessageReceived); server = new MeepoServer(clientManagerProvider, config); stateMachine = new MeepoStateMachine(config.Logger); }
/// <summary> /// Test constructor /// </summary> /// <param name="stateMachine">State machine</param> /// <param name="server">Meepo server instance</param> internal MeepoNode(MeepoStateMachine stateMachine, IMeepoServer server) { this.stateMachine = stateMachine ?? throw new ArgumentNullException(nameof(stateMachine)); this.server = server ?? throw new ArgumentNullException(nameof(server)); }
private void StartServer(IMeepoServer server) { clientManager.Setup(x => x.Listen()); server.StartServer(CancellationToken.None); }