diff options
author | Merov Linden <merov@lindenlab.com> | 2014-03-07 13:56:21 -0800 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2014-03-07 13:56:21 -0800 |
commit | 0006840325fd88aea3c7514ca5d93f42659e4037 (patch) | |
tree | 002d8aff6776172435b4d9c68c4e6892096ebc3c /indra/newview/llmarketplacefunctions.h | |
parent | 93da0cea6294c354614cd2c4e7b4a49b7e08cd6f (diff) |
DD-2 : Implement LLMarketplaceTuple and LLMarketplaceData
Diffstat (limited to 'indra/newview/llmarketplacefunctions.h')
-rwxr-xr-x | indra/newview/llmarketplacefunctions.h | 54 |
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 |