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);
        }
Ejemplo n.º 2
0
 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;
 }