Pyrogenesis  trunk
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 
23 class ScriptRequest;
24 
26 {
27 public:
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 
67 extern bool g_rankedGame;
68 
69 #endif // XMPPCLIENT_H
virtual void SendIqChangeStateGame(const std::string &nbp, const std::string &players)=0
virtual JS::Value GUIGetGameList(const ScriptRequest &rq)=0
virtual void SendIqGetBoardList()=0
virtual bool GuiPollHasPlayerListUpdate()=0
virtual JS::Value GUIGetPlayerList(const ScriptRequest &rq)=0
uint16_t u16
Definition: types.h:38
virtual void kick(const std::string &nick, const std::string &reason)=0
virtual JS::Value GUIGetProfile(const ScriptRequest &rq)=0
virtual void recv()=0
IXmppClient * g_XmppClient
Definition: Globals.cpp:22
virtual const char * GetRole(const std::string &nickname)=0
virtual std::wstring GetRating(const std::string &nickname)=0
virtual bool isConnected()=0
Definition: IXmppClient.h:25
virtual const std::wstring & GetSubject()=0
virtual void SetPresence(const std::string &presence)=0
virtual void SendIqGetConnectionData(const std::string &jid, const std::string &password, const std::string &clientSalt, bool localIP)=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 GUIGetBoardList(const ScriptRequest &rq)=0
virtual void connect()=0
Config::Value_type Value
Definition: json_spirit_value.h:182
virtual void SendIqGameReport(const ScriptRequest &rq, JS::HandleValue data)=0
virtual void disconnect()=0
virtual void ban(const std::string &nick, const std::string &reason)=0
virtual std::string GetNick() const =0
virtual void SendStunEndpointToHost(const std::string &ip, u16 port, const std::string &hostJID)=0
virtual ~IXmppClient()
Definition: IXmppClient.h:29
virtual std::string GetJID() const =0
virtual void SendIqUnregisterGame()=0
virtual void SendIqLobbyAuth(const std::string &to, const std::string &token)=0
virtual void SendIqRegisterGame(const ScriptRequest &rq, JS::HandleValue data)=0
virtual JS::Value GuiPollNewMessages(const ScriptInterface &guiInterface)=0
virtual void SendIqGetProfile(const std::string &player)=0
bool g_rankedGame
Definition: Globals.cpp:23
virtual JS::Value GuiPollHistoricMessages(const ScriptInterface &guiInterface)=0
virtual void SetNick(const std::string &nick)=0
Abstraction around a SpiderMonkey JS::Realm.
Definition: ScriptInterface.h:71
Spidermonkey maintains some &#39;local&#39; state via the JSContext* object.
Definition: ScriptRequest.h:59
virtual const char * GetPresence(const std::string &nickname)=0
virtual void SendMUCMessage(const std::string &message)=0