private void connectionManager_PullMulticastMetadatasEvent(object sender, PullMulticastMetadatasEventArgs e)
        {
            var connectionManager = sender as ConnectionManager;
            if (connectionManager == null) return;

            var packetManager = _packetControlManager[connectionManager.Node];

            if (packetManager.StockMulticastMetadatas.Count > _maxMetadataCount * packetManager.StockMulticastMetadatas.SurvivalTime.TotalMinutes) return;

            Debug.WriteLine(string.Format("ConnectionManager: Pull MulticastMetadatas ({0})", e.MulticastMetadatas.Count()));

            foreach (var metadata in e.MulticastMetadatas.Take(_maxMetadataCount))
            {
                if (_settings.MetadataManager.SetMetadata(metadata))
                {
                    packetManager.StockMulticastMetadatas.Add(metadata.CreateHash(_hashAlgorithm));

                    _pullMetadataCount.Increment();
                }
            }
        }
Exemplo n.º 2
0
        private void connectionManager_PullMulticastMetadatasEvent(object sender, PullMulticastMetadatasEventArgs e)
        {
            var connectionManager = sender as ConnectionManager;
            if (connectionManager == null) return;

            var messageManager = _messagesManager[connectionManager.Node];

            if (messageManager.StockWikiDocumentMetadatas.Count > _maxMetadataCount * messageManager.StockWikiDocumentMetadatas.SurvivalTime.TotalMinutes) return;
            if (messageManager.StockChatMessageMetadatas.Count > _maxMetadataCount * messageManager.StockChatMessageMetadatas.SurvivalTime.TotalMinutes) return;

            Debug.WriteLine(string.Format("ConnectionManager: Pull MulticastMetadatas ({0})",
                e.WikiDocumentMetadatas.Count()
                + e.ChatMessageMetadatas.Count()));

            foreach (var metadata in e.WikiDocumentMetadatas.Take(_maxMetadataCount))
            {
                if (_settings.MetadataManager.SetMetadata(metadata))
                {
                    messageManager.StockWikiDocumentMetadatas.Add(metadata.CreateHash(_hashAlgorithm));

                    _multicastWikiLastAccessTimes[metadata.Tag] = DateTime.UtcNow;
                }

                _pullMetadataCount.Increment();
            }

            foreach (var metadata in e.ChatMessageMetadatas.Take(_maxMetadataCount))
            {
                if (_settings.MetadataManager.SetMetadata(metadata))
                {
                    messageManager.StockChatMessageMetadatas.Add(metadata.CreateHash(_hashAlgorithm));

                    _multicastChatLastAccessTimes[metadata.Tag] = DateTime.UtcNow;
                }

                _pullMetadataCount.Increment();
            }
        }