HandleXferPacket() public method

Process transfer data received from the client.
public HandleXferPacket ( ulong xferID, uint packetID, byte data ) : bool
xferID ulong
packetID uint
data byte
return bool
コード例 #1
0
        public void HandleXfer(ulong xferID, uint packetID, byte[] data)
        {
            AssetXferUploader foundUploader = null;

            lock (XferUploaders)
            {
                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;
                    }
                }
            }

            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
            {
                m_log.ErrorFormat(
                    "[AGENT ASSET TRANSACTIONS]: Could not find uploader for xfer id {0}, packet id {1}, data length {2}",
                    xferID, packetID, data.Length);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }