public FileInfoCrawler(ITcpListener listener, MMLC mmlc, IntervalInterrupter interrupter) { _listener = listener; _mmlc = mmlc; _int = interrupter; _listener.RegisterAcceptHandler (typeof (Request), Accepted); _int.AddInterruption (StartCrawling); }
public Statistics(AnonymousRouter anonRouter, MMLC mmlc, ITcpListener tcp) { _sock = anonRouter.KeyBasedRouter.MessagingSocket; _tcp = tcp; Setup (_sock); Setup (anonRouter.KeyBasedRouter); Setup (anonRouter); Setup (mmlc); }
public Node(Interrupters ints, IDatagramEventSocket bindedDgramSock, ITcpListener tcpListener, string db_path, ushort bindUdpPort, ushort bindTcpPort) { _udpPort = bindUdpPort; _tcpPort = bindTcpPort; _ints = ints; _dgramSock = bindedDgramSock; _tcpListener = tcpListener; _rtoAlgo = new RFC2988BasedRTOCalculator (TimeSpan.FromSeconds (1), TimeSpan.FromMilliseconds (100), 50, false); _messagingSock = new MessagingSocket (_dgramSock, true, SymmetricKey.NoneKey, p2pncs.Serializer.Instance, null, ints.MessagingInt, _rtoAlgo, DefaultMessagingRetry, DefaultMessagingRetryBufferSize, DefaultMessagingDuplicationCheckBufferSize); _kbrPrivateKey = ECKeyPair.Create (DefaultAlgorithm.ECDomainName); _kbr = new SimpleIterativeRouter2 (Key.Create (_kbrPrivateKey), bindTcpPort, _messagingSock, new SimpleRoutingAlgorithm (), p2pncs.Serializer.Instance, true); _portChecker = new PortOpenChecker (_kbr); _localHT = new OnMemoryLocalHashTable (_kbr, ints.DHTInt); IMassKeyDelivererLocalStore mkdLocalStore = _localHT as IMassKeyDelivererLocalStore; _dht = new SimpleDHT (_kbr, _messagingSock, _localHT); _anonymous = new AnonymousRouter (_dht, _kbrPrivateKey, ints.AnonymousInt); ints.KBRStabilizeInt.AddInterruption (Stabilize); _mkd = new MassKeyDeliverer (_dht, mkdLocalStore, ints.MassKeyDeliverTimerInt); _mmlc = new MMLC (_anonymous, _dht, mkdLocalStore, db_path, ints.StreamSocketTimeoutInt, ints.DFSRePutTimerInt); _crawler = new FileInfoCrawler (_tcpListener, _mmlc, _ints.CrawlingTimer); _statistics = new Statistics ((AnonymousRouter)_anonymous, _mmlc, _tcpListener); }
void Setup(MMLC mmlc) { mmlc.MergeStatisticsNotice += delegate (object sender, StatisticsNoticeEventArgs args) { switch (args.Type) { case StatisticsNoticeType.Success: Interlocked.Increment (ref _mmlcSuccess); break; case StatisticsNoticeType.Failure: Interlocked.Increment (ref _mmlcFailures); break; } }; }