public virtual void Start() { Logger.Info($"Starting"); //initialize peer collection PeerCollection = new PeerCollection <TP>(Logger, Serializer, Config); Logger.Debug($"Peer collection initialized as {PeerCollection.GetType()}"); //initialize packers // Serializer.InitializeDefaultSerializers(8, $"Simple{this.GetType()}Buffer"); Logger.Debug($"Serializer factory initialized as {Serializer.GetType()}"); //initialize listener foreach (var port in Config.ListenPorts) { var peerListener = new TL(); peerListener.Initialize(Logger, PeerCollection, Serializer, Config, TaskSchedulerFactory, port, SocketFactory, RequestSender, _protectionManager); PeerListeners.Add(peerListener); Logger.Info($"PeerListener initialized as {peerListener.GetType()} on port {port}"); } //call child sub logic OnStart(); //start listening and processing messages Listen(); // checking GC influence TaskScheduler.ScheduleOnInterval(TrackMetrics, 1000, 1000); }
public virtual void Initialize(IShamanLogger logger, IPeerCollection <T> peerCollection, ISerializer serializer, IApplicationConfig config, ITaskSchedulerFactory taskSchedulerFactory, ushort port, ISocketFactory socketFactory, IRequestSender requestSender, IProtectionManager protectionManager) { _logger = logger; PeerCollection = peerCollection; Serializer = serializer; Config = config; _taskSchedulerFactory = taskSchedulerFactory; TaskScheduler = _taskSchedulerFactory.GetTaskScheduler(); _port = port; _socketFactory = socketFactory; RequestSender = requestSender; _protectionManager = protectionManager; }