LeviLamina
Loading...
Searching...
No Matches
MinecoinCatalogModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
12
13// auto generated forward declare list
14// clang-format off
16class DateManager;
18class IOfferRepository;
19struct MinecoinDocument;
21namespace Bedrock::Http { class Status; }
22namespace Core { class Path; }
23namespace Social { class IUserManager; }
24// clang-format on
25
27public:
28 // MinecoinCatalogModel inner types declare
29 // clang-format off
31 // clang-format on
32
33 // MinecoinCatalogModel inner types define
35 public:
36 // ActiveModelImageTracker inner types define
37 enum class FetchState : uchar {
38 Fetching = 0,
39 FailedAndCanRetry = 1,
40 Failed = 2,
41 Success = 3,
42 };
43
44 public:
45 // member variables
46 // NOLINTBEGIN
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;
53 // NOLINTEND
54
55 public:
56 // prevent constructor by default
57 ActiveModelImageTracker& operator=(ActiveModelImageTracker const&);
58 ActiveModelImageTracker(ActiveModelImageTracker const&);
59 ActiveModelImageTracker();
60
61 public:
62 // member functions
63 // NOLINTBEGIN
64 MCAPI ActiveModelImageTracker(
65 ::std::string const& activeModelProductId,
66 ::CommonImage const& image,
67 ::ImageMetaListDocument const& imageListDoc
68 );
69
70 MCAPI ::MinecoinCatalogModel::ActiveModelImageTracker&
71 operator=(::MinecoinCatalogModel::ActiveModelImageTracker&&);
72
73 MCAPI ~ActiveModelImageTracker();
74 // NOLINTEND
75
76 public:
77 // constructor thunks
78 // NOLINTBEGIN
79 MCAPI void* $ctor(
80 ::std::string const& activeModelProductId,
81 ::CommonImage const& image,
82 ::ImageMetaListDocument const& imageListDoc
83 );
84 // NOLINTEND
85
86 public:
87 // destructor thunk
88 // NOLINTBEGIN
89 MCAPI void $dtor();
90 // NOLINTEND
91 };
92
93public:
94 // member variables
95 // NOLINTBEGIN
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;
100 // NOLINTEND
101
102public:
103 // prevent constructor by default
104 MinecoinCatalogModel();
105
106public:
107 // virtual functions
108 // NOLINTBEGIN
109 virtual ~MinecoinCatalogModel() /*override*/;
110
111 virtual ::OfferCatalogStatus update() /*override*/;
112
113 virtual void fetchAllCoinOffers() /*override*/;
114 // NOLINTEND
115
116public:
117 // member functions
118 // NOLINTBEGIN
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
124 );
125
126 MCAPI void _addOfferModelFromDocument(::MinecoinDocument const& document, ::std::string const& productPrefix);
127
128 MCAPI void _fetchKeyArtForActiveOfferModel(::MinecoinCatalogModel::ActiveModelImageTracker& modelFetchImageInfo);
129
130 MCAPI void _fetctKeyArtForActiveOfferModels();
131
132 MCAPI ::MinecoinCatalogModel::ActiveModelImageTracker*
133 _findActiveModelImageTrackerByProductId(::std::string const& activeModelProductId);
134
135 MCAPI void _handleOfferSearchResults(::std::weak_ptr<bool> weakExistence, ::MinecoinSearchResults const& results);
136
137 MCAPI void _monitorActiveModelImageTrackers();
138
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
144 );
145
146 MCAPI void
147 _onTreatmentTagsReceived(::std::weak_ptr<bool> weakExistence, ::std::vector<::std::string> const& treatments);
148 // NOLINTEND
149
150public:
151 // constructor thunks
152 // NOLINTBEGIN
153 MCAPI void* $ctor(
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
158 );
159 // NOLINTEND
160
161public:
162 // destructor thunk
163 // NOLINTBEGIN
164 MCAPI void $dtor();
165 // NOLINTEND
166
167public:
168 // virtual function thunks
169 // NOLINTBEGIN
170 MCAPI ::OfferCatalogStatus $update();
171
172 MCAPI void $fetchAllCoinOffers();
173 // NOLINTEND
174
175public:
176 // vftables
177 // NOLINTBEGIN
178 MCNAPI static void** $vftable();
179 // NOLINTEND
180};
Definition Status.h:7
Definition ContentCatalogService.h:5
Definition Path.h:12
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