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(::MinecoinCatalogModel::ActiveModelImageTracker&&);
66 MCAPI ~ActiveModelImageTracker();
72 MCAPI
void* $ctor(::MinecoinCatalogModel::ActiveModelImageTracker&&);
85 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ContentCatalogService>> mContentCatalogService;
86 ::ll::TypedStorage<8, 24, ::std::vector<::MinecoinCatalogModel::ActiveModelImageTracker>>
87 mActiveModelImageTrackerList;
88 ::ll::TypedStorage<8, 16, ::std::shared_ptr<bool>> mExistenceTracker;
93 MinecoinCatalogModel();
98 virtual ~MinecoinCatalogModel() =
default;
100 virtual ::OfferCatalogStatus update() ;
102 virtual void fetchAllCoinOffers() ;
108 MCAPI MinecoinCatalogModel(
109 ::Bedrock::NotNullNonOwnerPtr<::FlightingService>
const& flightingService,
110 ::Bedrock::NotNullNonOwnerPtr<::IOfferRepository>
const& offerRepository,
111 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager>
const& userManager,
112 ::Bedrock::NotNullNonOwnerPtr<::DateManager const> dateManager
115 MCAPI
void _addOfferModelFromDocument(::MinecoinDocument
const& document, ::std::string
const& productPrefix);
117 MCAPI
void _fetchKeyArtForActiveOfferModel(::MinecoinCatalogModel::ActiveModelImageTracker& modelFetchImageInfo);
119 MCAPI
void _handleOfferSearchResults(::std::weak_ptr<bool> weakExistence, ::MinecoinSearchResults
const& results);
121 MCAPI
void _onFetchKeyArtForActiveOfferModelFinished(
122 ::std::weak_ptr<bool> weakExistence,
123 ::std::string
const& activeModelProductId,
124 ::Bedrock::Http::Status status,
125 ::Core::Path
const& fullpath
129 _onTreatmentTagsReceived(::std::weak_ptr<bool> weakExistence, ::std::vector<::std::string>
const& treatments);
131 MCAPI
void _updateActiveOfferModelImageTrackerStatus(
132 ::std::string
const& activeModelProcuctId,
133 ::MinecoinCatalogModel::ActiveModelImageTracker::FetchState newFetchState
141 ::Bedrock::NotNullNonOwnerPtr<::FlightingService>
const& flightingService,
142 ::Bedrock::NotNullNonOwnerPtr<::IOfferRepository>
const& offerRepository,
143 ::Bedrock::NotNullNonOwnerPtr<::Social::IUserManager>
const& userManager,
144 ::Bedrock::NotNullNonOwnerPtr<::DateManager const> dateManager
151 MCAPI ::OfferCatalogStatus $update();
153 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:34
Definition MinecoinCatalogModel.h:13
Definition MinecoinDocument.h:5
Definition MinecoinSearchResults.h:5