summaryrefslogtreecommitdiff
path: root/indra/newview/llmarketplacefunctions.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llmarketplacefunctions.h')
-rwxr-xr-xindra/newview/llmarketplacefunctions.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index abe60890a3..00840c6e23 100755
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
@@ -109,6 +109,63 @@ private:
};
+// Classes handling the data coming from and going to the Marketplace DB:
+// * implement the Marketplace API (TBD)
+// * cache the current Marketplace data (tuples)
+// * provide methods to get Marketplace data on any inventory item
+// * signal marketplace updates to inventory
+class LLMarketplaceData;
+
+// A Marketplace item is known by its tuple
+class LLMarketplaceTuple
+{
+public:
+ friend class LLMarketplaceData;
+
+ LLMarketplaceTuple();
+ LLMarketplaceTuple(const LLUUID& folder_id);
+ LLMarketplaceTuple(const LLUUID& folder_id, std::string listing_id, const LLUUID& version_id, bool is_listed = false);
+
+private:
+ // Representation of a marketplace item in the Marketplace DB (well, what we know of it...)
+ LLUUID mFolderListingId;
+ std::string mListingId;
+ LLUUID mActiveVersionFolderId;
+ bool mIsActive;
+};
+// Note: the folder UUID is used as a key to this map. It could therefore be taken off the object themselves
+typedef std::map<LLUUID, LLMarketplaceTuple> marketplace_items_list_t;
+
+// There's one and only one possible set of Marketplace data per agent and per session
+class LLMarketplaceData
+ : public LLSingleton<LLMarketplaceData>
+{
+public:
+ LLMarketplaceData();
+
+ bool isEmpty() { return (mMarketplaceItems.size() == 0); }
+
+ // Access Marketplace Data : each method returns a default value if the folder_id can't be found
+ bool getActivationState(const LLUUID& folder_id);
+ std::string getListingID(const LLUUID& folder_id);
+ LLUUID getVersionFolderID(const LLUUID& folder_id);
+
+ bool isListed(const LLUUID& folder_id); // returns true if folder_id is in the items map
+
+ // Modify Marketplace Data : each method returns true if the function succeeds, false if error
+ bool setListingID(const LLUUID& folder_id, std::string listing_id);
+ bool setVersionFolderID(const LLUUID& folder_id, const LLUUID& version_id);
+ bool setActivation(const LLUUID& folder_id, bool activate);
+
+ // Merov : DD Development : methods to populate the items list with something usefull using
+ // inventory IDs and some pseudo random code so we can play with the UI...
+ void addTestItem(const LLUUID& folder_id);
+ void addTestItem(const LLUUID& folder_id, const LLUUID& version_id);
+
+private:
+ marketplace_items_list_t mMarketplaceItems;
+};
+
#endif // LL_LLMARKETPLACEFUNCTIONS_H