Main Page | Modules | Class List | File List | Class Members | File Members

GSClientClass.h

00001 #ifndef _GSCLIENCLASS_H_
00002 #define _GSCLIENCLASS_H_
00003 
00004 #include "GSErrors.h"
00005 #include "GSLoginCB.h"
00006 #include "GSFriendsCB.h"
00007 #include "GSLobbyCB.h"
00008 #include "GSPersistentCB.h"
00009 #include "GSLadderQueryCB.h"
00010 #include "GSRemoteAlgorithmCB.h"
00011 #include "LadderDefines.h"
00012 #include "RemoteAlgorithmDefines.h"
00013 
00014 class CGLClientLIB;
00015 
00016 class clGLClient : public clLoginCallbacks, public clFriendsCallbacks,
00017                    public clLobbyCallbacks, public clPersistentCallbacks,
00018                    public clLadderQueryCallbacks
00019 {
00020         public:
00021                 clGLClient();
00022                 virtual ~clGLClient();
00023 
00024                 GSbool GL_AddRouterPing(GSint lID, GSchar *szIPAddress, GSint lPort);
00025                 GSbool GL_GetFirstPing(GSint *plID);
00026                 GSbool GL_ClearRouterPing();
00027 
00028                 //Login Messages
00029                 GSbool Login_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800);
00030                 GSbool LoginSend_Connect(const GSchar* szAddress, GSushort lPort);
00031                 GSbool LoginSend_Disconnect();
00032                 GSbool LoginSend_LoginRouter(const GSchar* szAlias, const GSchar* szPassword, 
00033                         const GSchar* szVersion, GSbool bPublicIP = GS_TRUE);
00034                 GSbool LoginSend_LoginWaitModule(const GSchar* szAlias);
00035                 GSbool LoginSend_JoinWaitModule();
00036                 GSbool LoginSend_PlayerInfo(const GSchar* szAlias);
00037                 GSbool LoginSend_Sleep();
00038                 GSbool LoginSend_WakeUp();
00039                 GSbool LoginSend_ModifyAccount(const GSchar* szPassword, const GSchar* szFirstName,
00040                                                                  const GSchar* szLastName, const GSchar* szEmail, const GSchar* szCountry);
00041                 GSbool LoginSend_CreateAccount(const GSchar* szVersion, const GSchar* szNickName, const GSchar* szPassword, const GSchar* szFirstName,
00042                                                                 const GSchar* szLastName, const GSchar* szEmail, const GSchar* szCountry);
00043                 GSbool LoginSend_RequestMOTD(const GSchar *szLanguage);
00044 
00045                 //Friends Messages
00046                 GSbool Friends_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800);
00047                 GSbool FriendsSend_Connect();
00048                 GSbool FriendsSend_Disconnect();
00049                 GSbool FriendsSend_Login(GSint lStatus = 0, GSint lMood = 0);
00050                 GSbool FriendsSend_AddFriend(const GSchar* szFriend, const GSchar* szGroup, GSint lOptions);
00051                 GSbool FriendsSend_DelFriend (const GSchar* szFriend);
00052                 GSbool FriendsSend_FriendList();
00053         
00054         GSRESULT FriendsSend_IgnorePlayer( const GSchar * szPlayer );
00055         GSRESULT FriendsSend_UnignorePlayer( const GSchar * szPlayer);
00056         GSRESULT FriendsSend_ListIgnoredPlayers();
00057         
00058                 GSbool FriendsSend_PagePlayer(const GSchar* pszAlias, const GSchar* szMessage);
00059                 GSbool FriendsSend_PeerPlayer(const GSchar* pszAlias, GSvoid *p_Buffer, GSuint uiLength);
00060                 GSbool FriendsSend_StatusChange(GSint lStatus, GSint lMood);
00061                 GSbool FriendsSend_ChangeFriend(const GSchar* szFriend, const GSchar* szGroup, GSint lOptions);
00062                 GSbool FriendsSend_SearchPlayer(const GSchar* pszAlias, const GSchar* pszSurName, const GSchar* pszFirstName, const GSchar* pszCountry, const GSchar* pszEmail, GSint lSex, const GSchar* pszGame);
00063                 GSbool FriendsSend_GetPlayerScores(const GSchar* pszAlias);
00064 
00065                 //Lobby messages
00066                 GSbool Lobby_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800);
00067                 GSbool LobbySend_Connect();
00068                 GSbool LobbySend_Login(const GSchar* szGames, GSbool bPublicIP = GS_TRUE, GSushort usPlayerStatus = 0 );
00069                 GSbool LobbySend_Disconnect(GSint iLobbyServerID);
00070                 GSbool LobbySend_DisconnectAll();
00071 
00072                 GSbool LobbySend_CreateRoom(GSint iParentGroupID, GSint iLobbyServerID, const GSchar *szRoomName,
00073                         const GSchar *szGames, GSushort usRoomType, GSushort usMaxPlayers, GSushort usMaxVisitors,
00074                         const GSvoid *vpData, GSint iSize, const GSvoid* vpAltGroupInfo, GSint iAltGroupInfoSize,
00075                         const GSchar *szPassword, const GSchar *szGameVersion, const GSchar *szGSVersion);
00076 
00077                 GSbool LobbySend_JoinLobby(GSint iGroupID, GSint iLobbyServerID,
00078                         const GSchar *szPassword, GSint iConfig = 0);
00079                 GSbool LobbySend_JoinRoom(GSint iGroupID, GSint iLobbyServerID, const GSchar *szPassword,
00080                         GSbool bVisitor, const GSchar *szVersion, GSint iConfig = 0);
00081                 GSbool LobbySend_LeaveGroup(GSint iGroupID, GSint iLobbyServerID);
00082 
00083                 GSbool LobbySend_GetGroupInfo(GSint iGroupID, GSint iLobbyServerID, GSint iconfig);
00084                 GSbool LobbySend_GetAlternateGroupInfo(GSint iGroupID, GSint iLobbyServerID );
00085 
00086                 GSbool LobbySend_InitMatchResults(GSuint uiMatchID);
00087                 GSbool LobbySend_SetMatchResult(GSchar *szAlias, GSuint uiFieldID, GSint iFieldValue);
00088                 GSbool LobbySend_SubmitMatchResult(GSint iGroupID, GSint iLobbyServerID);
00089                 GSbool LobbySend_ClearMatchResult();
00090                 
00091                 GSbool LobbySend_StartMatch(GSint iGroupID, GSint iLobbyServerID, GSuint uiMode = 0 );
00092         GSbool LobbySend_MatchFinish(GSint iGroupID, GSint iLobbyServerID);
00093                 GSbool LobbySend_PlayerMatchStarted(GSint iGroupID, GSint iLobbyServerID);
00094                 GSbool LobbySend_PlayerMatchFinished(GSint iGroupID, GSint iLobbyServerID);
00095 
00096                 GSbool LobbySend_NewMaster(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias);
00097                 GSbool LobbySend_PlayerKick(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias, GSchar *szReason);
00098                 GSbool LobbySend_GetParentGroupID(GSint iGroupID, GSint iLobbyServerID);
00099                 GSbool LobbySend_UpdateRoomConfig(GSint iGroupID, GSint iLobbyServerID, GSbyte bDedicatedServer,
00100                                                         GSbyte bOpen, GSbyte bScore_Submission, GSint iMaxPlayers,
00101                                                         GSint iMaxVisitors, const GSchar* szPassword, const GSvoid* vpData, 
00102                                                         GSint iSize, const GSvoid* vpAltGroupInfo, GSint iGroupInfoSize );
00103 
00104                 GSbool LobbySend_GameStart(GSint iGroupID, GSint iLobbyServerID);
00105                 GSbool LobbySend_GameReady(GSint iGroupID, GSint iLobbyServerID, GSvoid* vpGameData, GSint iSize,
00106                                         GSushort usPort = 0, GSchar *szIPAddress = 0);
00107                 GSbool LobbySend_GameFinish(GSint iGroupID, GSint iLobbyServerID);
00108                 GSbool LobbySend_GameConnected(GSint iGroupID, GSint iLobbyServerID);
00109 
00110                 GSbool LobbySend_UpdateGameInfo(GSint iGroupID, GSint iLobbyServerID, GSvoid* vpGameData, GSint iSize,
00111                                                                          GSushort usPort = 0, GSchar *szIPAddress = 0);
00112                 GSbool LobbySend_PlayerBan(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias, GSchar *szReason);
00113                 GSbool LobbySend_PlayerUnBan(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias);
00114                 GSbool LobbySend_GetPlayerBannedList(GSint iGroupID, GSint iLobbyServerID);
00115                 GSbool LobbySend_SetPlayerInfo(GSvoid *vpPlayerData, GSint iPlayerDataSize);
00116                 GSbool LobbySend_GetPlayerGroups(GSchar *szAlias);
00117                 GSbool LobbySend_ChangeRequestedLobbies(const GSchar* szGames);
00118                 
00119                 GSbool PS_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800);
00120                 GSbool PSSend_Login();
00121                 GSbool PSSend_Disconnect();
00122                 GSuint PSSend_GetPrivateData(const GSchar *szGame, GSint iEventID,
00123                         GSint iRecordID);
00124                 GSuint PSSend_SetPrivateData(const GSchar *szGame, GSint iEventID,
00125                         GSint iRecordID, const GSvoid *vpData, GSint iSize);
00126                 GSuint PSSend_GetPublicData(const GSchar *szGame, GSint iEventID,
00127                         GSint iRecordID, const GSchar *szPlayerAlias = 0);
00128                 GSuint PSSend_SetPublicData(const GSchar *szGame, GSint iEventID,
00129                         GSint iRecordID, const GSvoid *vpData, GSint iSize);
00130 
00131         GSbool LadderQuery_Initialize(GSchar *szLocale);
00132                 GSbool LadderQuery_Uninitialize();
00133                 GSbool LadderQuery_Engine(GSuint uiMaxPostingDelay = 500,GSuint uiMaxsOperationalDelay = 800);
00134                 GSuint LadderQuery_SendRequest();
00135                 
00136                 GSbool LadderQuery_CreateRequest(GSchar *szGameName, GSuint uiEvent = 0, GSuint uiMode = 0);
00137                 GSbool LadderQuery_RequestPivotUser(const GSchar *pszEntry, GSuint uiNumberOfEntries);
00138                 GSbool LadderQuery_RequestPivotRow(GSuint  uiEntry, GSuint uiNumberOfEntries);
00139                 GSbool LadderQuery_RequestSet(const GSchar *pszEntries[], GSuint uiNumberOfEntries);
00140                 GSbool LadderQuery_RequestOrderedList(GSuint uiFirstEntry, GSuint uiNumberOfEntries);
00141                 
00142                 GSbool LadderQuery_AddSortConstraint(const GSchar *pszField, GSbool bSortDirection);
00143                 GSbool LadderQuery_AddFilterConstraint(const LADDER_FILTER *pLadderFilter[], GSuint uiListOfFilters);
00144                 GSbool LadderQuery_AddDisplayConstraint(const GSchar *pszFields[], GSuint uiNumberOfFields);
00145                 
00146                 GSbool LadderQuery_GetResultSearchCount(GSuint uiRequestID, GSuint & uiCount);
00147                 GSbool LadderQuery_GetResultEntryCount(GSuint uiRequestID, GSuint & uiCount);
00148                 GSbool LadderQuery_GetResultFieldCaption(GSuint uiRequestID, const GSchar *pszField, GSchar * pszCaption);
00149                 GSbool LadderQuery_StartResultEntryEnumeration(GSuint uiRequestID, GSuint uiStartEntry);
00150                 GSbool LadderQuery_NextResultEntry(GSuint uiRequestID);
00151                 GSbool LadderQuery_GetCurrentEntryField(GSuint uiRequestID, const GSchar *pszField, GSint & iValue);
00152                 GSbool LadderQuery_GetCurrentEntryFieldAsString(GSuint uiRequestID, const GSchar *pszField, GSchar * pszValue);
00153                 GSvoid LadderQuery_ReleaseResult(GSuint uiRequestID);   
00154 
00155         GSRESULT RemoteAlgorithm_Initialise(const GSchar * szGameName);
00156         GSRESULT RemoteAlgorithm_Uninitialise();
00157         GSRESULT RemoteAlgorithm_Engine(GSuint uiMaxPostingDelay = 500,
00158                                         GSuint uiMaxsOperationalDelay = 800);
00159         GSRESULT RemoteAlgorithm_Execute(GSuint uiAlgoId,
00160                                          RAE_VALUE * pInput, GSuint uiNumInput,
00161                                          RemoteAlgorithm_OutputCB fOutput,
00162                                          GSvoid * pData, GSuint & uiRequest);
00163         
00164                 private:
00165                         CGLClientLIB *m_pClientLIB;
00166 
00167 };
00168 
00169 #endif //_GSCLIENCLASS_H_

Ubi.com GameService SDK - ©UbiSoft Entertainment 2002
GameService development team