public void HandleXfer(ulong xferID, uint packetID, byte[] data) { AssetXferUploader foundUploader = null; try { XferUploaders.ForEach(delegate(AssetXferUploader uploader) { // m_log.DebugFormat( // "[AGENT ASSETS TRANSACTIONS]: In HandleXfer, inspect xfer upload with xfer id {0}", // uploader.XferID); if (uploader.XferID == xferID) { throw new ThreadedClasses.ReturnValueException <AssetXferUploader>(uploader); } }); foundUploader = null; } catch (ThreadedClasses.ReturnValueException <AssetXferUploader> e) { foundUploader = e.Value; } if (foundUploader != null) { // m_log.DebugFormat( // "[AGENT ASSETS TRANSACTIONS]: Found xfer uploader for xfer id {0}, packet id {1}, data length {2}", // xferID, packetID, data.Length); foundUploader.HandleXferPacket(xferID, packetID, data); } else { // Check if the xfer is a terrain xfer IEstateModule estateModule = m_Scene.RequestModuleInterface <IEstateModule>(); if (estateModule != null) { if (estateModule.IsTerrainXfer(xferID)) { return; } } m_log.ErrorFormat( "[AGENT ASSET TRANSACTIONS]: Could not find uploader for xfer id {0}, packet id {1}, data length {2}", xferID, packetID, data.Length); } }
public void HandleXfer(ulong xferID, uint packetID, byte[] data) { AssetXferUploader foundUploader = null; m_UploaderRwLock.AcquireReaderLock(-1); try { foreach (AssetXferUploader uploader in XferUploaders.Values) { // m_log.DebugFormat( // "[AGENT ASSETS TRANSACTIONS]: In HandleXfer, inspect xfer upload with xfer id {0}", // uploader.XferID); if (uploader.XferID == xferID) { foundUploader = uploader; break; } } } finally { m_UploaderRwLock.ReleaseReaderLock(); } if (foundUploader != null) { // m_log.DebugFormat( // "[AGENT ASSETS TRANSACTIONS]: Found xfer uploader for xfer id {0}, packet id {1}, data length {2}", // xferID, packetID, data.Length); foundUploader.HandleXferPacket(xferID, packetID, data); } else { // Check if the xfer is a terrain xfer IEstateModule estateModule = m_Scene.RequestModuleInterface <IEstateModule>(); if (estateModule != null) { if (estateModule.IsTerrainXfer(xferID)) { return; } } m_log.ErrorFormat( "[AGENT ASSET TRANSACTIONS]: Could not find uploader for xfer id {0}, packet id {1}, data length {2}", xferID, packetID, data.Length); } }