using System; using System.Collections.Generic; using System.Threading; namespace libsecondlife.InventorySystem { public class DownloadRequest_Folder { public LLUUID FolderID; public int Expected = int.MaxValue; public int Received = 0; public int LastReceivedAtTick = 0; public bool FetchFolders = true; public bool FetchItems = true; public Queue ChildFolders = new Queue(); public DownloadRequest_Folder ParentRequest = null; public bool WaitOnChildren = true; /// /// Do we want to recursively download this folder? /// public bool Recurse = true; public ManualResetEvent RequestComplete = new ManualResetEvent(false); public DownloadRequest_Folder(LLUUID folderID, bool recurse, bool fetchFolders, bool fetchItems) { FolderID = folderID; Recurse = recurse; FetchFolders = fetchFolders; FetchItems = fetchItems; LastReceivedAtTick = Environment.TickCount; } /// /// Used to track the download of a folder /// /// /// /// /// /// The parent folder of this request /// True to wait to signal completed, until the child queue is empty public DownloadRequest_Folder(LLUUID folderID, bool recurse, bool fetchFolders, bool fetchItems, DownloadRequest_Folder parent, bool waitOnChildren) { FolderID = folderID; Recurse = recurse; FetchFolders = fetchFolders; FetchItems = fetchItems; LastReceivedAtTick = Environment.TickCount; ParentRequest = parent; WaitOnChildren = waitOnChildren; } } public class DownloadRequest_EventArgs : EventArgs { public DownloadRequest_Folder DownloadRequest; } }