Fission FSN
Loading...
Searching...
No Matches
fsIReview.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsIReview.h
4*
5* Purpose: Interface for store review prompts
6*
7*********************************************************************/
8
9#ifndef fsIReviewhdr
10#define fsIReviewhdr
11
12#if defined fsReview
13
14#include <memory>
15
16#include <fsCore/fsBaseTypes.h>
17
18
19class fsIReview
20{
21public:
22
23 typedef void (*TReviewCallback)();
24
25 void rateMe();
26
27 void declineToRate();
28 void rateLater();
29 void rated();
30
31 void declineToRateCallbackRegister(TReviewCallback pHandler, void* const pCaller);
32 void ratedCallbackRegister(TReviewCallback pHandler, void* const pCaller);
33 void rateLaterCallbackRegister(TReviewCallback pHandler, void* const pCaller);
34
35 static std::unique_ptr<fsIReview> create();
36
37 virtual ~fsIReview() = default;
38
39protected:
40
41 fsIReview() = default;
42 virtual void rateMeDo() = 0;
43
44private:
45
46 struct SReviewCallback
47 {
48 SReviewCallback() :
49 mHandler(nullptr),
50 mContext(nullptr)
51 {
52 }
53
54 TReviewCallback mHandler;
55 void* mContext;
56 };
57
58 static void callbackInvoke(const SReviewCallback& pCallback);
59
60 SReviewCallback mDeclineToRateCallback;
61 SReviewCallback mRatedCallback;
62 SReviewCallback mRateLaterCallback;
63};
64
65#endif
66#endif
void create()
Definition fsN3d.cpp:9