diff options
Diffstat (limited to 'indra/newview/llmarketplacefunctions.h')
-rwxr-xr-x | indra/newview/llmarketplacefunctions.h | 57 |
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 |