!I integrate from //ce/main...
[CRYENGINE.git] / Code / CryPlugins / CryLobby / Module / CrySignIn.h
blob08a8f4ddbc125aed86beca1e66657d6d09672fc8
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 // -------------------------------------------------------------------------
4 // File name: CrySignIn.h
5 // Version: v1.00
6 // Created: 09/11/2011 by Paul Mikell.
7 // Description: CCrySignIn class definition
8 // -------------------------------------------------------------------------
9 // History:
11 ////////////////////////////////////////////////////////////////////////////
13 #ifndef __CRYSIGNIN_H__
15 #define __CRYSIGNIN_H__
17 #if _MSC_VER > 1000
18 #pragma once
19 #endif
21 #include "CryLobby.h"
22 #include <CryLobby/ICrySignIn.h>
24 #define MAX_SIGNIN_PARAMS 10
25 #define MAX_SIGNIN_TASKS 4
27 class CCrySignIn : public CMultiThreadRefCount, public ICrySignIn
29 public:
31 virtual ~CCrySignIn();
33 // ICrySignIn
34 virtual void CancelTask(CryLobbyTaskID lTaskID);
35 // ~ICrySignIn
37 // CWorkQueue::CClassJob*< ..., class U >::U
38 virtual bool IsDead() const { return false; }
39 // ~CWorkQueue::CClassJob*< ..., class U >::U
41 virtual ECryLobbyError Initialise();
42 virtual ECryLobbyError Terminate();
43 virtual void Tick(CTimeValue tv);
45 protected:
47 enum ETask
49 eT_Invalid = -1,
50 eT_SignInUser,
51 eT_SignOutUser,
52 eT_CreateUser,
53 eT_CreateAndSignInUser,
54 eT_GetUserCredentials
57 struct STask
59 CryLobbyTaskID lTaskID;
60 ECryLobbyError error;
61 uint32 startedTask;
62 uint32 subTask;
63 void* pCb;
64 void* pCbArg;
65 TMemHdl paramsMem[MAX_SIGNIN_PARAMS];
66 uint32 paramsNum[MAX_SIGNIN_PARAMS];
67 bool used;
68 bool running;
69 bool cancelled;
72 struct SCrySignInTaskID {};
73 typedef CryLobbyID<SCrySignInTaskID, MAX_SIGNIN_TASKS> CrySignInTaskID;
74 typedef CryLobbyIDArray<STask*, CrySignInTaskID, MAX_SIGNIN_TASKS> CrySignInTaskPtrArray;
76 CCrySignIn(CCryLobby* pLobby, CCryLobbyService* pService);
78 virtual void StartTaskRunning(CrySignInTaskID siTaskID);
79 virtual void StopTaskRunning(CrySignInTaskID siTaskID);
80 virtual void EndTask(CrySignInTaskID siTaskID);
82 ECryLobbyError StartTask(uint32 eTask, CrySignInTaskID* pSITaskID, CryLobbyTaskID* pLTaskID, void* pCb, void* pCbArg);
84 virtual void FreeTask(CrySignInTaskID siTaskID);
85 ECryLobbyError CreateTaskParamMem(CrySignInTaskID siTaskID, uint32 param, const void* pParamData, size_t paramDataSize);
86 void UpdateTaskError(CrySignInTaskID siTaskID, ECryLobbyError error);
87 virtual void CreateTask(CrySignInTaskID siTaskID, uint32 eTask, CryLobbyTaskID lTaskID, void* pCb, void* pCbArg);
89 CrySignInTaskPtrArray m_pTask;
90 CCryLobby* m_pLobby;
91 CCryLobbyService* m_pService;
93 private:
95 virtual void ClearTask(CrySignInTaskID siTaskID);
98 #endif //__CRYSIGNIN_H__