public ulong RequestAssetXfer(string filename, bool deleteOnCompletion, bool useBigPackets, UUID vFileID, AssetType vFileType,
bool fromCache)
{
UUID uuid = UUID.Random();
ulong id = uuid.GetULong();
XferDownload transfer = new XferDownload();
transfer.XferID = id;
transfer.ID = new UUID(id); // Our dictionary tracks transfers with UUIDs, so convert the ulong back
transfer.Filename = filename;
transfer.VFileID = vFileID;
transfer.AssetType = vFileType;
// Add this transfer to the dictionary
lock (Transfers) Transfers[transfer.ID] = transfer;
RequestXferPacket request = new RequestXferPacket();
request.XferID.ID = id;
request.XferID.Filename = Utils.StringToBytes(filename);
request.XferID.FilePath = fromCache ? (byte)4 : (byte)0;
request.XferID.DeleteOnCompletion = deleteOnCompletion;
request.XferID.UseBigPackets = useBigPackets;
request.XferID.VFileID = vFileID;
request.XferID.VFileType = (short)vFileType;
Client.Network.SendPacket(request);
return id;
}