Example #1
0
        /// <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);
        }
Example #2
0
 /// <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));
 }
Example #3
0
        private void StartServer(IMeepoServer server)
        {
            clientManager.Setup(x => x.Listen());

            server.StartServer(CancellationToken.None);
        }