Example #1
0
 public DescendentsRequest(UUID folder, FolderContentsCallback callback)
 {
     Folder = folder;
     Callback = callback;
     ReceivedResponse = false;
     Descendents = 0;
     FolderContents = new List<FolderData>();
     ItemContents = new List<ItemData>();
     PartialCallback = null;
 }
Example #2
0
        /// <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);
        }
Example #3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="folder"></param>
 /// <param name="owner"></param>
 /// <param name="folders"></param>
 /// <param name="items"></param>
 /// <param name="order"></param>
 /// <param name="callback"></param>
 public void RequestFolderContents(UUID folder, UUID owner, bool folders, bool items, InventorySortOrder order, FolderContentsCallback callback)
 {
     RequestFolderContents(folder, owner, folders, items, order, callback, null);
 }
Example #4
0
        /// <summary>
        /// Get contents of a folder
        /// </summary>
        /// <param name="folder">The <seealso cref="UUID"/> of the folder to search</param>
        /// <param name="owner">The <seealso cref="UUID"/> of the folders owner</param>
        /// <param name="folders">true to retrieve folders</param>
        /// <param name="items">true to retrieve items</param>
        /// <param name="order">sort order to return results in</param>
        /// <param name="timeout">a TimeSpan representing the amount of time to wait for results</param>
        /// <param name="folderContents">A list of FolderData representing the folders contained in the parent folder.</param>
        /// <param name="itemContents">A list of ItemData representing the items contained in the parent folder.</param>
        /// <returns><code>true</code> if successful, <code>false</code> if timed out</returns>
        /// <seealso cref="InventoryManager.RequestFolderContents"/>
        public bool FolderContents(UUID folder, UUID owner, bool folders, bool items,
            InventorySortOrder order, TimeSpan timeout, out List<ItemData> itemContents, out List<FolderData> folderContents)
        {
            AutoResetEvent lockEvent = new AutoResetEvent(false);
            List<FolderData> _folders = null;
            List<ItemData> _items = null;
            FolderContentsCallback callback = new FolderContentsCallback(
                delegate(UUID folderID, List<ItemData> __items, List<FolderData> __folders)
                {
                    if (folderID == folder)
                    {
                        _folders = __folders;
                        _items = __items;
                        lockEvent.Set();
                    }
                });
            RequestFolderContents(folder, owner, folders, items, order, callback);

            bool success = lockEvent.WaitOne(timeout, false);
            itemContents = _items;
            folderContents = _folders;
            return success;
        }
Example #5
0
 public abstract void RequestFolderContents(UUID userId, UUID folderId, FolderContentsCallback callback);
Example #6
0
 public abstract void RequestFolderContents(UUID userId, UUID folderId, FolderContentsCallback callback);