aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Threading/Callback.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Threading/Callback.h')
-rw-r--r--src/server/shared/Threading/Callback.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/server/shared/Threading/Callback.h b/src/server/shared/Threading/Callback.h
index 66d21ee64b2..d7fd9781daf 100644
--- a/src/server/shared/Threading/Callback.h
+++ b/src/server/shared/Threading/Callback.h
@@ -76,4 +76,61 @@ class QueryCallback
ParamType param;
};
+template <typename ParamType1, typename ParamType2>
+class QueryCallback_2
+{
+ public:
+ QueryCallback_2() {}
+
+ void SetFutureResult(QueryResultFuture value)
+ {
+ result = value;
+ }
+
+ QueryResultFuture GetFutureResult()
+ {
+ return result;
+ }
+
+ int IsReady()
+ {
+ return result.ready();
+ }
+
+ void GetResult(QueryResult_AutoPtr& res)
+ {
+ result.get(res);
+ }
+
+ void FreeResult()
+ {
+ result.cancel();
+ }
+
+ void SetFirstParam(ParamType1 value)
+ {
+ param_1 = value;
+ }
+
+ void SetSecondParam(ParamType2 value)
+ {
+ param_2 = value;
+ }
+
+ ParamType1 GetFirstParam()
+ {
+ return param_1;
+ }
+
+ ParamType2 GetSecondParam()
+ {
+ return param_2;
+ }
+
+ private:
+ QueryResultFuture result;
+ ParamType1 param_1;
+ ParamType2 param_2;
+};
+
#endif \ No newline at end of file