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(::MinecoinCatalogModel::ActiveModelImageTracker&&);
65
66 MCAPI ~ActiveModelImageTracker();
67 // NOLINTEND
68
69 public:
70 // constructor thunks
71 // NOLINTBEGIN
72 MCAPI void* $ctor(::MinecoinCatalogModel::ActiveModelImageTracker&&);
73 // NOLINTEND
74
75 public:
76 // destructor thunk
77 // NOLINTBEGIN
78 MCAPI void $dtor();
79 // NOLINTEND
80 };
81
82public:
83 // member variables
84 // NOLINTBEGIN
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;
89 // NOLINTEND
90
91public:
92 // prevent constructor by default
93 MinecoinCatalogModel();
94
95public:
96 // virtual functions
97 // NOLINTBEGIN
98 virtual ~MinecoinCatalogModel() /*override*/ = default;
99
100 virtual ::OfferCatalogStatus update() /*override*/;
101
102 virtual void fetchAllCoinOffers() /*override*/;
103 // NOLINTEND
104
105public:
106 // member functions
107 // NOLINTBEGIN
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
113 );
114
115 MCAPI void _addOfferModelFromDocument(::MinecoinDocument const& document, ::std::string const& productPrefix);
116
117 MCAPI void _fetchKeyArtForActiveOfferModel(::MinecoinCatalogModel::ActiveModelImageTracker& modelFetchImageInfo);
118
119 MCAPI void _handleOfferSearchResults(::std::weak_ptr<bool> weakExistence, ::MinecoinSearchResults const& results);
120
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
126 );
127
128 MCAPI void
129 _onTreatmentTagsReceived(::std::weak_ptr<bool> weakExistence, ::std::vector<::std::string> const& treatments);
130
131 MCAPI void _updateActiveOfferModelImageTrackerStatus(
132 ::std::string const& activeModelProcuctId,
133 ::MinecoinCatalogModel::ActiveModelImageTracker::FetchState newFetchState
134 );
135 // NOLINTEND
136
137public:
138 // constructor thunks
139 // NOLINTBEGIN
140 MCAPI void* $ctor(
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
145 );
146 // NOLINTEND
147
148public:
149 // virtual function thunks
150 // NOLINTBEGIN
151 MCAPI ::OfferCatalogStatus $update();
152
153 MCAPI void $fetchAllCoinOffers();
154 // NOLINTEND
155
156public:
157 // vftables
158 // NOLINTBEGIN
159 MCNAPI static void** $vftable();
160 // NOLINTEND
161};
Definition Status.h:7
Definition ContentCatalogService.h:5
Definition Path.h:17
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