summaryrefslogtreecommitdiff
path: root/indra/newview/llmarketplacefunctions.h
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2014-03-07 13:56:21 -0800
committerMerov Linden <merov@lindenlab.com>2014-03-07 13:56:21 -0800
commit0006840325fd88aea3c7514ca5d93f42659e4037 (patch)
tree002d8aff6776172435b4d9c68c4e6892096ebc3c /indra/newview/llmarketplacefunctions.h
parent93da0cea6294c354614cd2c4e7b4a49b7e08cd6f (diff)
DD-2 : Implement LLMarketplaceTuple and LLMarketplaceData
Diffstat (limited to 'indra/newview/llmarketplacefunctions.h')
-rwxr-xr-xindra/newview/llmarketplacefunctions.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index abe60890a3..c3cde740a2 100755
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
@@ -109,6 +109,60 @@ 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
+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;
+};
+// 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();
+
+ // Access Marketplace Data : methods return 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 : methods return true is function succeeded, 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