예제 #1
0
 public FileInfoCrawler(ITcpListener listener, MMLC mmlc, IntervalInterrupter interrupter)
 {
     _listener = listener;
     _mmlc = mmlc;
     _int = interrupter;
     _listener.RegisterAcceptHandler (typeof (Request), Accepted);
     _int.AddInterruption (StartCrawling);
 }
예제 #2
0
파일: Statistics.cs 프로젝트: kazuki/p2pncs
 public Statistics(AnonymousRouter anonRouter, MMLC mmlc, ITcpListener tcp)
 {
     _sock = anonRouter.KeyBasedRouter.MessagingSocket;
     _tcp = tcp;
     Setup (_sock);
     Setup (anonRouter.KeyBasedRouter);
     Setup (anonRouter);
     Setup (mmlc);
 }
예제 #3
0
파일: Node.cs 프로젝트: kazuki/p2pncs
 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);
 }
예제 #4
0
파일: Statistics.cs 프로젝트: kazuki/p2pncs
 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;
         }
     };
 }