Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
IXmppClient.h
Go to the documentation of this file.
1/* Copyright (C) 2021 Wildfire Games.
2 * This file is part of 0 A.D.
3 *
4 * 0 A.D. is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * 0 A.D. is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef IXMPPCLIENT_H
19#define IXMPPCLIENT_H
20
22
23class ScriptRequest;
24
26{
27public:
28 static IXmppClient* create(const ScriptInterface* scriptInterface, const std::string& sUsername, const std::string& sPassword, const std::string& sRoom, const std::string& sNick, const int historyRequestSize = 0, bool regOpt = false);
29 virtual ~IXmppClient() {}
30
31 virtual void connect() = 0;
32 virtual void disconnect() = 0;
33 virtual bool isConnected() = 0;
34 virtual void recv() = 0;
35 virtual void SendIqGetBoardList() = 0;
36 virtual void SendIqGetProfile(const std::string& player) = 0;
37 virtual void SendIqGameReport(const ScriptRequest& rq, JS::HandleValue data) = 0;
38 virtual void SendIqRegisterGame(const ScriptRequest& rq, JS::HandleValue data) = 0;
39 virtual void SendIqGetConnectionData(const std::string& jid, const std::string& password, const std::string& clientSalt, bool localIP) = 0;
40 virtual void SendIqUnregisterGame() = 0;
41 virtual void SendIqChangeStateGame(const std::string& nbp, const std::string& players) = 0;
42 virtual void SendIqLobbyAuth(const std::string& to, const std::string& token) = 0;
43 virtual void SetNick(const std::string& nick) = 0;
44 virtual std::string GetNick() const = 0;
45 virtual std::string GetJID() const = 0;
46 virtual void kick(const std::string& nick, const std::string& reason) = 0;
47 virtual void ban(const std::string& nick, const std::string& reason) = 0;
48 virtual void SetPresence(const std::string& presence) = 0;
49 virtual const char* GetPresence(const std::string& nickname) = 0;
50 virtual const char* GetRole(const std::string& nickname) = 0;
51 virtual std::wstring GetRating(const std::string& nickname) = 0;
52 virtual const std::wstring& GetSubject() = 0;
53 virtual JS::Value GUIGetPlayerList(const ScriptRequest& rq) = 0;
54 virtual JS::Value GUIGetGameList(const ScriptRequest& rq) = 0;
55 virtual JS::Value GUIGetBoardList(const ScriptRequest& rq) = 0;
56 virtual JS::Value GUIGetProfile(const ScriptRequest& rq) = 0;
57
58 virtual JS::Value GuiPollNewMessages(const ScriptInterface& guiInterface) = 0;
59 virtual JS::Value GuiPollHistoricMessages(const ScriptInterface& guiInterface) = 0;
60 virtual bool GuiPollHasPlayerListUpdate() = 0;
61
62 virtual void SendMUCMessage(const std::string& message) = 0;
63 virtual void SendStunEndpointToHost(const std::string& ip, u16 port, const std::string& hostJID) = 0;
64};
65
67extern bool g_rankedGame;
68
69#endif // XMPPCLIENT_H
IXmppClient * g_XmppClient
Definition: Globals.cpp:22
bool g_rankedGame
Definition: Globals.cpp:23
Definition: IXmppClient.h:26
virtual JS::Value GUIGetPlayerList(const ScriptRequest &rq)=0
virtual void ban(const std::string &nick, const std::string &reason)=0
virtual void SendIqLobbyAuth(const std::string &to, const std::string &token)=0
virtual void connect()=0
virtual void SendIqGameReport(const ScriptRequest &rq, JS::HandleValue data)=0
virtual void SendMUCMessage(const std::string &message)=0
virtual void SetPresence(const std::string &presence)=0
virtual JS::Value GuiPollNewMessages(const ScriptInterface &guiInterface)=0
virtual bool isConnected()=0
virtual std::wstring GetRating(const std::string &nickname)=0
virtual void SendIqGetConnectionData(const std::string &jid, const std::string &password, const std::string &clientSalt, bool localIP)=0
virtual void SendStunEndpointToHost(const std::string &ip, u16 port, const std::string &hostJID)=0
virtual const char * GetRole(const std::string &nickname)=0
virtual void SendIqChangeStateGame(const std::string &nbp, const std::string &players)=0
virtual const char * GetPresence(const std::string &nickname)=0
virtual const std::wstring & GetSubject()=0
virtual JS::Value GUIGetProfile(const ScriptRequest &rq)=0
virtual void recv()=0
virtual std::string GetJID() const =0
virtual JS::Value GUIGetGameList(const ScriptRequest &rq)=0
virtual void disconnect()=0
virtual bool GuiPollHasPlayerListUpdate()=0
virtual void SetNick(const std::string &nick)=0
virtual void SendIqGetBoardList()=0
virtual void SendIqGetProfile(const std::string &player)=0
static IXmppClient * create(const ScriptInterface *scriptInterface, const std::string &sUsername, const std::string &sPassword, const std::string &sRoom, const std::string &sNick, const int historyRequestSize=0, bool regOpt=false)
Definition: XmppClient.cpp:62
virtual JS::Value GuiPollHistoricMessages(const ScriptInterface &guiInterface)=0
virtual ~IXmppClient()
Definition: IXmppClient.h:29
virtual void SendIqRegisterGame(const ScriptRequest &rq, JS::HandleValue data)=0
virtual void SendIqUnregisterGame()=0
virtual JS::Value GUIGetBoardList(const ScriptRequest &rq)=0
virtual std::string GetNick() const =0
virtual void kick(const std::string &nick, const std::string &reason)=0
Abstraction around a SpiderMonkey JS::Realm.
Definition: ScriptInterface.h:72
Spidermonkey maintains some 'local' state via the JSContext* object.
Definition: ScriptRequest.h:60
uint16_t u16
Definition: types.h:38