OpenMetaverse.AssetManager.ConfirmXferPacketHandler C# (CSharp) Method

ConfirmXferPacketHandler() protected method

Process an incoming packet and raise the appropriate events
protected ConfirmXferPacketHandler ( object sender, OpenMetaverse.PacketReceivedEventArgs e ) : void
sender object The sender
e OpenMetaverse.PacketReceivedEventArgs The EventArgs object containing the packet data
return void
        protected void ConfirmXferPacketHandler(object sender, PacketReceivedEventArgs e)
        {
            ConfirmXferPacketPacket confirm = (ConfirmXferPacketPacket)e.Packet;

            // Building a new UUID every time an ACK is received for an upload is a horrible
            // thing, but this whole Xfer system is horrible
            UUID transferID = new UUID(confirm.XferID.ID);
            Transfer transfer;
            AssetUpload upload = null;

            if (Transfers.TryGetValue(transferID, out transfer))
            {
                upload = (AssetUpload)transfer;

                //Client.DebugLog(String.Format("ACK for upload {0} of asset type {1} ({2}/{3})",
                //    upload.AssetID.ToString(), upload.Type, upload.Transferred, upload.Size));

                try { OnUploadProgress(new AssetUploadEventArgs(upload)); }
                catch (Exception ex) { Logger.Log(ex.Message, Helpers.LogLevel.Error, Client, ex); }

                if (upload.Transferred < upload.Size)
                    SendNextUploadPacket(upload);
            }
        }