Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
Callback.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef _CALLBACK_H
7
#define _CALLBACK_H
8
9
#include "
QueryResult.h
"
10
#include "
Threading/Future.h
"
11
12
typedef
Skyfire::Future<QueryResult>
QueryResultFuture
;
13
typedef
Skyfire::Future<PreparedQueryResult>
PreparedQueryResultFuture
;
14
19
#define CALLBACK_STAGE_INVALID uint8(-1)
20
21
template
<
typename
Result,
typename
ParamType,
bool
chain = false>
22
class
QueryCallback
23
{
24
public
:
25
QueryCallback
() :
_param
(),
_stage
(chain ? 0 :
CALLBACK_STAGE_INVALID
) { }
26
28
void
SetFutureResult
(
Skyfire::Future<Result>
value)
29
{
30
_result
= value;
31
}
32
33
Skyfire::Future<Result>
GetFutureResult
()
34
{
35
return
_result
;
36
}
37
38
int
IsReady
()
39
{
40
return
_result
.ready();
41
}
42
43
void
GetResult
(Result& res)
44
{
45
_result
.get(res);
46
}
47
48
void
FreeResult
()
49
{
50
_result
.cancel();
51
}
52
53
void
SetParam
(ParamType value)
54
{
55
_param
= value;
56
}
57
58
ParamType
GetParam
()
59
{
60
return
_param
;
61
}
62
64
void
ResetStage
()
65
{
66
if
(!chain)
67
return
;
68
69
_stage
= 0;
70
}
71
73
void
NextStage
()
74
{
75
if
(!chain)
76
return
;
77
78
++
_stage
;
79
}
80
82
uint8
GetStage
()
83
{
84
return
_stage
;
85
}
86
88
void
Reset
()
89
{
90
SetParam
(NULL);
91
FreeResult
();
92
ResetStage
();
93
}
94
95
private
:
96
Skyfire::Future<Result>
_result
;
97
ParamType
_param
;
98
uint8
_stage
;
99
QueryCallback
(
QueryCallback
const
& right) =
delete
;
100
QueryCallback
&
operator=
(
QueryCallback
const
& right) =
delete
;
101
};
102
103
template
<
typename
Result,
typename
ParamType1,
typename
ParamType2,
bool
chain = false>
104
class
QueryCallback_2
105
{
106
public
:
107
QueryCallback_2
() :
_stage
(chain ? 0 :
CALLBACK_STAGE_INVALID
) { }
108
110
void
SetFutureResult
(
Skyfire::Future<Result>
value)
111
{
112
_result
= value;
113
}
114
115
Skyfire::Future<Result>
GetFutureResult
()
116
{
117
return
_result
;
118
}
119
120
int
IsReady
()
121
{
122
return
_result
.ready();
123
}
124
125
void
GetResult
(Result& res)
126
{
127
_result
.get(res);
128
}
129
130
void
FreeResult
()
131
{
132
_result
.cancel();
133
}
134
135
void
SetFirstParam
(ParamType1 value)
136
{
137
_param_1
= value;
138
}
139
140
void
SetSecondParam
(ParamType2 value)
141
{
142
_param_2
= value;
143
}
144
145
ParamType1
GetFirstParam
()
146
{
147
return
_param_1
;
148
}
149
150
ParamType2
GetSecondParam
()
151
{
152
return
_param_2
;
153
}
154
156
void
ResetStage
()
157
{
158
if
(!chain)
159
return
;
160
161
_stage
= 0;
162
}
163
165
void
NextStage
()
166
{
167
if
(!chain)
168
return
;
169
170
++
_stage
;
171
}
172
174
uint8
GetStage
()
175
{
176
return
_stage
;
177
}
178
180
void
Reset
()
181
{
182
SetFirstParam
(NULL);
183
SetSecondParam
(NULL);
184
FreeResult
();
185
ResetStage
();
186
}
187
188
private
:
189
Skyfire::Future<Result>
_result
;
190
ParamType1
_param_1
;
191
ParamType2
_param_2
;
192
uint8
_stage
;
193
QueryCallback_2
(
QueryCallback_2
const
& right) =
delete
;
194
QueryCallback_2
&
operator=
(
QueryCallback_2
const
& right) =
delete
;
195
};
196
197
#endif
QueryResultFuture
Skyfire::Future< QueryResult > QueryResultFuture
Definition
AdhocStatement.h:12
CALLBACK_STAGE_INVALID
#define CALLBACK_STAGE_INVALID
Definition
Callback.h:19
uint8
std::uint8_t uint8
Definition
Define.h:79
Future.h
PreparedQueryResultFuture
Skyfire::Future< PreparedQueryResult > PreparedQueryResultFuture
Definition
PreparedStatement.h:150
QueryResult.h
QueryCallback_2::GetResult
void GetResult(Result &res)
Definition
Callback.h:125
QueryCallback_2::ResetStage
void ResetStage()
Resets the stage of the callback chain.
Definition
Callback.h:156
QueryCallback_2::SetFutureResult
void SetFutureResult(Skyfire::Future< Result > value)
The parameter of this function should be a resultset returned from either .AsyncQuery or ....
Definition
Callback.h:110
QueryCallback_2::_param_2
ParamType2 _param_2
Definition
Callback.h:191
QueryCallback_2::SetFirstParam
void SetFirstParam(ParamType1 value)
Definition
Callback.h:135
QueryCallback_2::QueryCallback_2
QueryCallback_2()
Definition
Callback.h:107
QueryCallback_2::QueryCallback_2
QueryCallback_2(QueryCallback_2 const &right)=delete
QueryCallback_2::GetSecondParam
ParamType2 GetSecondParam()
Definition
Callback.h:150
QueryCallback_2::NextStage
void NextStage()
Advances the callback chain to the next stage, so upper level code can act on its results accordingly...
Definition
Callback.h:165
QueryCallback_2::_param_1
ParamType1 _param_1
Definition
Callback.h:190
QueryCallback_2::Reset
void Reset()
Resets all underlying variables (param, result and stage).
Definition
Callback.h:180
QueryCallback_2::_stage
uint8 _stage
Definition
Callback.h:192
QueryCallback_2::FreeResult
void FreeResult()
Definition
Callback.h:130
QueryCallback_2::GetFirstParam
ParamType1 GetFirstParam()
Definition
Callback.h:145
QueryCallback_2::operator=
QueryCallback_2 & operator=(QueryCallback_2 const &right)=delete
QueryCallback_2::SetSecondParam
void SetSecondParam(ParamType2 value)
Definition
Callback.h:140
QueryCallback_2::GetStage
uint8 GetStage()
Returns the callback stage (or CALLBACK_STAGE_INVALID if invalid).
Definition
Callback.h:174
QueryCallback_2::GetFutureResult
Skyfire::Future< Result > GetFutureResult()
Definition
Callback.h:115
QueryCallback_2::_result
Skyfire::Future< Result > _result
Definition
Callback.h:189
QueryCallback_2::IsReady
int IsReady()
Definition
Callback.h:120
QueryCallback::GetResult
void GetResult(Result &res)
Definition
Callback.h:43
QueryCallback::IsReady
int IsReady()
Definition
Callback.h:38
QueryCallback::QueryCallback
QueryCallback()
Definition
Callback.h:25
QueryCallback::ResetStage
void ResetStage()
Resets the stage of the callback chain.
Definition
Callback.h:64
QueryCallback::_param
ParamType _param
Definition
Callback.h:97
QueryCallback::GetFutureResult
Skyfire::Future< Result > GetFutureResult()
Definition
Callback.h:33
QueryCallback::GetStage
uint8 GetStage()
Returns the callback stage (or CALLBACK_STAGE_INVALID if invalid).
Definition
Callback.h:82
QueryCallback::_result
Skyfire::Future< Result > _result
Definition
Callback.h:96
QueryCallback::QueryCallback
QueryCallback(QueryCallback const &right)=delete
QueryCallback::_stage
uint8 _stage
Definition
Callback.h:98
QueryCallback::Reset
void Reset()
Resets all underlying variables (param, result and stage).
Definition
Callback.h:88
QueryCallback::SetParam
void SetParam(ParamType value)
Definition
Callback.h:53
QueryCallback::NextStage
void NextStage()
Advances the callback chain to the next stage, so upper level code can act on its results accordingly...
Definition
Callback.h:73
QueryCallback::FreeResult
void FreeResult()
Definition
Callback.h:48
QueryCallback::GetParam
ParamType GetParam()
Definition
Callback.h:58
QueryCallback::operator=
QueryCallback & operator=(QueryCallback const &right)=delete
QueryCallback::SetFutureResult
void SetFutureResult(Skyfire::Future< Result > value)
The parameter of this function should be a resultset returned from either .AsyncQuery or ....
Definition
Callback.h:28
Skyfire::Future
Definition
Future.h:18
src
server
shared
Threading
Callback.h
Generated on
for Project SkyFire Core by
1.17.0