public DescendentsRequest(UUID folder, FolderContentsCallback callback) { Folder = folder; Callback = callback; ReceivedResponse = false; Descendents = 0; FolderContents = new List<FolderData>(); ItemContents = new List<ItemData>(); PartialCallback = null; }
/// <summary> /// Request the contents of an inventory folder, <paramref name="callback"/> is fired when all of the contents are retrieved. /// <paramref name="partialCallback"/> is fired as the contents trickle in from the server. /// </summary> /// <param name="folder">The folder to search</param> /// <param name="owner">The folder owners <seealso cref="UUID"/></param> /// <param name="folders">true to return <seealso cref="InventoryManager.InventoryFolder"/>s contained in folder</param> /// <param name="items">true to return <seealso cref="InventoryManager.InventoryItem"/>s containd in folder</param> /// <param name="order">the sort order to return items in</param> /// <param name="callback">The callback to fire when all the contents are received.</param> /// <param name="partialCallback">The callback to fire as the contents are received.</param> /// <seealso cref="InventoryManager.FolderContents"/> public void RequestFolderContents(UUID folder, UUID owner, bool folders, bool items, InventorySortOrder order, FolderContentsCallback callback, PartialContentsCallback partialCallback) { DescendentsRequest request = new DescendentsRequest(folder, callback); request.PartialCallback = partialCallback; lock (_DescendentsRequests) _DescendentsRequests.Add(request); // Send the packet: FetchInventoryDescendentsPacket fetch = new FetchInventoryDescendentsPacket(); fetch.AgentData.AgentID = _Agents.AgentID; fetch.AgentData.SessionID = _Agents.SessionID; fetch.InventoryData.FetchFolders = folders; fetch.InventoryData.FetchItems = items; fetch.InventoryData.FolderID = folder; fetch.InventoryData.OwnerID = owner; fetch.InventoryData.SortOrder = (int)order; _Network.SendPacket(fetch); }