summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorymodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorymodel.h')
-rw-r--r--indra/newview/llinventorymodel.h38
1 files changed, 30 insertions, 8 deletions
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 8dc3c1605f..da10528c9d 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -118,6 +118,7 @@ public:
public:
fetchInventoryResponder(const LLSD& request_sd) : mRequestSD(request_sd) {};
void result(const LLSD& content);
+
void error(U32 status, const std::string& reason);
public:
@@ -180,7 +181,6 @@ public:
cat_array_t& categories,
item_array_t& items,
BOOL include_trash);
-
void collectDescendentsIf(const LLUUID& id,
cat_array_t& categories,
item_array_t& items,
@@ -191,8 +191,9 @@ public:
// Assumes item_id is itself not a linked item.
void collectLinkedItems(const LLUUID& item_id,
item_array_t& items);
-
- // This method will return false if this inventory model is in an usabel state.
+ // Updates all linked objects pointing to this id.
+ void updateLinkedObjects(const LLUUID& object_id);
+
// The inventory model usage is sensitive to the initial construction of the
// model.
bool isInventoryUsable();
@@ -204,7 +205,7 @@ public:
// Calling this method with an inventory item will either change
// an existing item with a matching item_id, or will add the item
// to the current inventory. Returns the change mask generated by
- // the update. No notifcation will be sent to observers. This
+ // the update. No notification will be sent to observers. This
// method will only generate network traffic if the item had to be
// reparented.
// *NOTE: In usage, you will want to perform cache accounting
@@ -231,7 +232,7 @@ public:
// delete a particular inventory object by ID. This will purge one
// object from the internal data structures maintaining a
- // cosistent internal state. No cache accounting, observer
+ // consistent internal state. No cache accounting, observer
// notification, or server update is performed. Purges linked items.
void deleteObject(const LLUUID& id);
@@ -240,12 +241,12 @@ public:
void purgeObject(const LLUUID& id);
void purgeLinkedObjects(const LLUUID& id);
- // This is a method which collects the descendents of the id
+ // This is a method which collects the descendants of the id
// provided. If the category is not found, no action is
// taken. This method goes through the long winded process of
// removing server representation of folders and items while doing
// cache accounting in a fairly efficient manner. This method does
- // not notify observers (though maybe it shouldd...)
+ // not notify observers (though maybe it should...)
void purgeDescendentsOf(const LLUUID& id);
// This method optimally removes the referenced categories and
@@ -392,6 +393,22 @@ public:
static bool isEverythingFetched();
static void backgroundFetch(void*); // background fetch idle function
static void incrBulkFetch(S16 fetching) { sBulkFetchCount+=fetching; if (sBulkFetchCount<0) sBulkFetchCount=0; }
+
+
+ // Data about the agent's root folder and root library folder
+ // are stored here, rather than in LLAgent where it used to be, because
+ // gInventory is a singleton and represents the agent's inventory.
+ // The "library" is actually the inventory of a special agent,
+ // usually Alexandria Linden.
+ LLUUID getRootFolderID() const;
+ LLUUID getLibraryOwnerID() const;
+ LLUUID getLibraryRootFolderID() const;
+
+ // These are set during login with data from the server
+ void setRootFolderID(const LLUUID& id);
+ void setLibraryOwnerID(const LLUUID& id);
+ void setLibraryRootFolderID(const LLUUID& id);
+
protected:
// Internal methods which add inventory and make sure that all of
@@ -444,7 +461,7 @@ protected:
item_array_t* getUnlockedItemArray(const LLUUID& id);
protected:
- // Varaibles used to track what has changed since the last notify.
+ // Variables used to track what has changed since the last notify.
U32 mModifyMask;
typedef std::set<LLUUID> changed_items_t;
changed_items_t mChangedItemIDs;
@@ -475,6 +492,11 @@ protected:
typedef std::set<LLInventoryObserver*> observer_list_t;
observer_list_t mObservers;
+ // Agent inventory folder information.
+ LLUUID mRootFolderID;
+ LLUUID mLibraryRootFolderID;
+ LLUUID mLibraryOwnerID;
+
// completing the fetch once per session should be sufficient
static BOOL sBackgroundFetchActive;
static BOOL sTimelyFetchPending;