Beispiel #1
0
        private void OnDataVerified(DataVerified data)
        {
            Notifications.Enqueue(new DataVerifiedNotification(data.Hash, data.Bitfield));

            DataMap?.Handle(data);
            DataGet?.Handle(data);
        }
Beispiel #2
0
        private void StartDataStore(string destination, string metaDestination)
        {
            RepositoryHooks hooks = new RepositoryHooks
            {
                OnDataAllocated = OnDataAllocated,
                OnDataVerified  = OnDataVerified,
                OnBlockWritten  = data => DataGet?.Handle(data),
                OnBlockRead     = data => DataShare?.Handle(data),
                OnPieceAccepted = data => DataGet?.Handle(data),
                OnPieceRejected = OnPieceRejected
            };

            DataStore =
                new RepositoryBuilder()
                .WithHash(Hash)
                .WithDestination(destination)
                .WithMetaDestination(metaDestination)
                .WithPipeline(Pipeline)
                .WithFiles(Files)
                .WithMemory(Memory.AsDataStore())
                .WithBufferSize(256 * 1024)
                .Build(hooks);

            DataStore.Start();
        }
Beispiel #3
0
        private void StartCoordinator()
        {
            MetadataHooks metadata = new MetadataHooks
            {
                OnMetadataMeasured      = data => MetaGet?.Handle(data),
                OnMetadataPieceReceived = OnMetadataPieceReceived,
                OnMetadataRequestSent   = OnMetadataRequestSent
            };

            CoordinatorHooks hooks = new CoordinatorHooks
            {
                OnPeerConnected      = OnPeerConnected,
                OnPeerDisconnected   = OnPeerDisconnected,
                OnBitfieldChanged    = OnPeerBitfieldChanged,
                OnStatusChanged      = OnPeerStatusChanged,
                OnBlockReceived      = data => DataGet?.Handle(data),
                OnMessageRequested   = data => Sender?.Send(data.Peer, data.Message),
                OnKeepAliveRequested = data => Sender?.SendKeepAlive(data.Peer)
            };

            Coordinator =
                new CoordinatorBuilder()
                .WithHash(Hash)
                .WithMemory(Memory)
                .WithPipeline(Pipeline)
                .WithPlugin(new MetadataPlugin(metadata))
                .Build(hooks);

            Coordinator.Start();
        }
Beispiel #4
0
        private void OnDataVerified(DataVerified data)
        {
            Notifications.Enqueue(new DataVerifiedNotification(data.Hash, data.Bitfield));

            DataMap?.Handle(data);
            DataGet?.Handle(data);
            DataShare?.Handle(data);

            Coordinator?.Handle(data);
            TrackerGet.Announce(Hash);
        }
Beispiel #5
0
        public async Task <IActionResult> Index(DataGet data)
        {
            if (ModelState.IsValid)
            {
                _databaseContext.Add(data);
                await _databaseContext.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(data));
        }
Beispiel #6
0
        private void StartDataMap()
        {
            OmnibusHooks hooks = new OmnibusHooks
            {
                OnBlockReserved    = data => DataGet?.Handle(data),
                OnPieceReady       = data => DataGet?.Handle(data),
                OnPieceCompleted   = OnPieceCompleted,
                OnThresholdReached = data => DataGet?.Handle(data),
                OnDataCompleted    = OnDataCompleted,
                OnDataChanged      = OnDataChanged
            };

            DataMap =
                new OmnibusBuilder()
                .WithHash(Hash)
                .WithPipeline(Pipeline)
                .WithSchedulerThreshold(160)
                .WithPoolSize(512)
                .Build(hooks);

            DataMap.Start();
        }
Beispiel #7
0
 private void OnPieceRejected(PieceRejected data)
 {
     Notifications.Enqueue(new PieceRejectedNotification(data.Hash, data.Piece));
     DataGet?.Handle(data);
 }
Beispiel #8
0
 private void OnPieceAccepted(PieceAccepted data)
 {
     DataGet?.Handle(data);
 }
Beispiel #9
0
 private void OnBlockWritten(BlockWritten data)
 {
     DataGet?.Handle(data);
 }