3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/models/OfferCatalogModelBase.h"
7#include "mc/client/gui/screens/models/OfferCatalogStatus.h"
8#include "mc/client/services/catalog/CommonImage.h"
9#include "mc/client/services/catalog/ImageMetaListDocument.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/util/RetryDelay.h"
18class IOfferRepository;
21namespace Bedrock::Http {
class Status; }
22namespace Core {
class Path; }
37 enum class FetchState : uchar {
39 FailedAndCanRetry = 1,
47 ::ll::TypedStorage<4, 20, ::RetryDelay> mRetryDelay;
48 ::ll::TypedStorage<8, 32, ::std::string> mActiveModelProductId;
49 ::ll::TypedStorage<8, 192, ::CommonImage> mImage;
50 ::ll::TypedStorage<8, 24, ::ImageMetaListDocument> mImageListDoc;
51 ::ll::TypedStorage<1, 1, ::MinecoinCatalogModel::ActiveModelImageTracker::FetchState> mFetchState;
52 ::ll::TypedStorage<4, 4, uint> mRefetchCount;
57 ActiveModelImageTracker& operator=(ActiveModelImageTracker
const&);
58 ActiveModelImageTracker(ActiveModelImageTracker
const&);
59 ActiveModelImageTracker();
64 MCAPI ActiveModelImageTracker(
65 ::std::string
const& activeModelProductId,
66 ::CommonImage
const& image,
67 ::ImageMetaListDocument
const& imageListDoc
70 MCAPI ::MinecoinCatalogModel::ActiveModelImageTracker&
71 operator=(::MinecoinCatalogModel::ActiveModelImageTracker&&);
73 MCAPI ~ActiveModelImageTracker();
80 ::std::string
const& activeModelProductId,
81 ::CommonImage
const& image,
82 ::ImageMetaListDocument
const& imageListDoc
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContentCatalogService>> mContentCatalogService;
97 ::ll::TypedStorage<8, 24, ::std::vector<::MinecoinCatalogModel::ActiveModelImageTracker>>
98 mActiveModelImageTrackerList;
99 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistenceTracker;
104 MinecoinCatalogModel();
109 virtual ~MinecoinCatalogModel() ;
111 virtual ::OfferCatalogStatus update() ;
113 virtual void fetchAllCoinOffers() ;
119 MCAPI MinecoinCatalogModel(
120 ::Bedrock::NotNullNonOwnerPtr<::FlightingService>
const& flightingService,
121 ::Bedrock::NotNullNonOwnerPtr<::IOfferRepository>
const& offerRepository,
122 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager>
const& userManager,
123 ::Bedrock::NotNullNonOwnerPtr<::DateManager const> dateManager
126 MCAPI
void _addOfferModelFromDocument(::MinecoinDocument
const& document, ::std::string
const& productPrefix);
128 MCAPI
void _fetchKeyArtForActiveOfferModel(::MinecoinCatalogModel::ActiveModelImageTracker& modelFetchImageInfo);
130 MCAPI
void _fetctKeyArtForActiveOfferModels();
132 MCAPI ::MinecoinCatalogModel::ActiveModelImageTracker*
133 _findActiveModelImageTrackerByProductId(::std::string
const& activeModelProductId);
135 MCAPI
void _handleOfferSearchResults(::std::weak_ptr<bool> weakExistence, ::MinecoinSearchResults
const& results);
137 MCAPI
void _monitorActiveModelImageTrackers();
139 MCAPI
void _onFetchKeyArtForActiveOfferModelFinished(
140 ::std::weak_ptr<bool> weakExistence,
141 ::std::string
const& activeModelProductId,
142 ::Bedrock::Http::Status status,
143 ::Core::Path
const& fullpath
147 _onTreatmentTagsReceived(::std::weak_ptr<bool> weakExistence, ::std::vector<::std::string>
const& treatments);
154 ::Bedrock::NotNullNonOwnerPtr<::FlightingService>
const& flightingService,
155 ::Bedrock::NotNullNonOwnerPtr<::IOfferRepository>
const& offerRepository,
156 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager>
const& userManager,
157 ::Bedrock::NotNullNonOwnerPtr<::DateManager const> dateManager
170 MCAPI ::OfferCatalogStatus $update();
172 MCAPI
void $fetchAllCoinOffers();
Definition ContentCatalogService.h:5
Definition DateManager.h:14
Definition FlightingService.h:5
Definition MinecoinCatalogModel.h:5
static MCAPI void ** $vftable()
Definition OfferCatalogModelBase.h:5
Definition IUserManager.h:7
Definition MinecoinCatalogModel.h:13
Definition MinecoinDocument.h:5
Definition MinecoinSearchResults.h:5