-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCallbackManager.h
More file actions
39 lines (33 loc) · 1.45 KB
/
CallbackManager.h
File metadata and controls
39 lines (33 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef CALLBACKMANAGER_H
#define CALLBACKMANAGER_H
#pragma once
#include <map>
typedef bool (S_CALLTYPE *_Steam_BGetCallback)(HSteamPipe hSteamPipe, CallbackMsg_t *pCallbackMsg);
typedef void (S_CALLTYPE *_Steam_FreeLastCallback)(HSteamPipe hSteamPipe);
typedef bool (S_CALLTYPE *_Steam_GetAPICallResult)(HSteamPipe hSteamPipe, SteamAPICall_t hSteamAPICall, void* pCallback, int cubCallback, int iCallbackExpected, bool* pbFailed);
class CCallbackMgr
{
public:
_Steam_BGetCallback oSteam_BGetCallback;
_Steam_FreeLastCallback oSteam_FreeLastCallback;
_Steam_GetAPICallResult oSteam_GetAPICallResult;
HSteamUser HSteamUserCurrent;
int ManualDispatchCallback;
int ManualDispatchCallbackSize;
bool bIsRunningCallbacks;
std::multimap<int, CCallbackBase*> MapCallbacks;
std::map<SteamAPICall_t, CCallbackBase*> MapAPICalls;
std::map<SteamAPICall_t, BYTE*> MapAPIBuffer;
public:
CCallbackMgr();
~CCallbackMgr();
void Unload();
void RunCallbacks(HSteamPipe hSteamPipe, bool bGameServerCallbacks);
void RunCallbacksTryCatch(HSteamPipe hSteamPipe, bool bGameServerCallbacks);
void RunCallResult(HSteamPipe hSteamPipe, SteamAPICall_t APICall, CCallbackBase* pCallback);
void RegisterCallback(CCallbackBase *pCallback, int iCallback);
void RegisterCallResult(CCallbackBase *pCallback, SteamAPICall_t APICall);
void UnregisterCallback(CCallbackBase* pCallback);
void UnregisterCallResult(CCallbackBase *pCallback, SteamAPICall_t APICall);
};
#endif // CALLBACKMANAGER_H