#include <Lobby2Server.h>
Classes | |
struct | ConfigurationProperties |
Server configuration properties, to customize how the server runs specific commands. More... | |
Public Member Functions | |
virtual bool | ConnectToDB (const char *conninfo, int numWorkerThreads)=0 |
Connect to the database numWorkerThreads times using the connection string. | |
void | SendMsg (Lobby2Message *msg, const DataStructures::List< SystemAddress > &recipients) |
Lobby2Message encapsulates a user command, containing both input and output data. | |
void | ExecuteCommand (Lobby2ServerCommand *command) |
Add a command, which contains a message and other data such as who send the message. | |
void | AddAdminAddress (SystemAddress addr) |
If Lobby2Message::RequiresAdmin() returns true, the message can only be processed from a remote system if the sender's system address is first added(). | |
bool | HasAdminAddress (const DataStructures::List< SystemAddress > &addresses) |
If AddAdminAddress() was previously called with addr then this returns true. | |
void | RemoveAdminAddress (SystemAddress addr) |
Removes a system address previously added with AddAdminAddress(). | |
void | ClearAdminAddresses (void) |
Removes all system addresses previously added with AddAdminAddress(). | |
void | AddRankingAddress (SystemAddress addr) |
If Lobby2Message::RequiresRankingPermission() returns true, then the system that sent the command must be registered with AddRankingAddress(). | |
bool | HasRankingAddress (const DataStructures::List< SystemAddress > &addresses) |
void | RemoveRankingAddress (SystemAddress addr) |
void | ClearRankingAddresses (void) |
Clears all addresses added with AddRankingAddress(). | |
void | SetRoomsPlugin (RoomsPlugin *rp) |
To use RoomsPlugin and Lobby2Server together, register RoomsPlugin with this funcrtion. | |
void | SetRoomsPluginAddress (SystemAddress address) |
This is similar to SetRoomsPlugin(), except the plugin is on another system. | |
void | SetConfigurationProperties (ConfigurationProperties c) |
Set the desired configuration properties. This is read during runtime from threads. | |
const ConfigurationProperties * | GetConfigurationProperties (void) const |
Get the previously set configuration properties. | |
void | SetPresence (const RakNet::Lobby2Presence &presence, RakNet::RakString userHandle) |
void | GetPresence (RakNet::Lobby2Presence &presence, RakNet::RakString userHandle) |
Protected Member Functions | |
void | Update (void) |
Update is called every time a packet is checked for . | |
PluginReceiveResult | OnReceive (Packet *packet) |
void | OnClosedConnection (const SystemAddress &systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason) |
This is a plugin which will take incoming messages via Lobby2Client_PC::SendMsg(), process them, and send back the same messages with output and a result code Unlike the first implementation of the lobby server, this is a thin plugin that mostly just sends messages to threads and sends back the results.
void RakNet::Lobby2Server::AddAdminAddress | ( | SystemAddress | addr | ) |
If Lobby2Message::RequiresAdmin() returns true, the message can only be processed from a remote system if the sender's system address is first added().
This is useful if you want to administrate the server remotely
void RakNet::Lobby2Server::AddRankingAddress | ( | SystemAddress | addr | ) |
If Lobby2Message::RequiresRankingPermission() returns true, then the system that sent the command must be registered with AddRankingAddress().
[in] | addr | Address to allow |
virtual bool RakNet::Lobby2Server::ConnectToDB | ( | const char * | conninfo, | |
int | numWorkerThreads | |||
) | [pure virtual] |
Connect to the database numWorkerThreads times using the connection string.
[in] | conninfo | See the postgre docs |
Implemented in RakNet::Lobby2Server_PGSQL.
void RakNet::Lobby2Server::ExecuteCommand | ( | Lobby2ServerCommand * | command | ) |
Add a command, which contains a message and other data such as who send the message.
The command will be processed according to its implemented virtual functions. Most likely it will be processed in a thread to run database commands
void RakNet::Lobby2Server::GetPresence | ( | RakNet::Lobby2Presence & | presence, | |
RakNet::RakString | userHandle | |||
) |
Get the presence of a logged in user, by handle
[out] | presence | Presence info of requested user |
[in] | userHandle | Handle of the user |
bool RakNet::Lobby2Server::HasRankingAddress | ( | const DataStructures::List< SystemAddress > & | addresses | ) |
Returns if an address was previously added with AddRankingAddress()
[in] | addr | Address to check |
void RakNet::Lobby2Server::OnClosedConnection | ( | const SystemAddress & | systemAddress, | |
RakNetGUID | rakNetGUID, | |||
PI2_LostConnectionReason | lostConnectionReason | |||
) | [protected, virtual] |
Called when a connection is dropped because the user called RakPeer::CloseConnection() for a particular system
[in] | systemAddress | The system whose connection was closed |
[in] | rakNetGuid | The guid of the specified system |
[in] | lostConnectionReason | How the connection was closed: manually, connection lost, or notification of disconnection |
Reimplemented from RakNet::PluginInterface2.
PluginReceiveResult RakNet::Lobby2Server::OnReceive | ( | Packet * | packet | ) | [protected, virtual] |
OnReceive is called for every packet.
[in] | packet | the packet that is being returned to the user |
Reimplemented from RakNet::PluginInterface2.
void RakNet::Lobby2Server::RemoveRankingAddress | ( | SystemAddress | addr | ) |
Removes an addressed added with AddRankingAddress()
[in] | addr | Address to check |
void RakNet::Lobby2Server::SendMsg | ( | Lobby2Message * | msg, | |
const DataStructures::List< SystemAddress > & | recipients | |||
) |
Lobby2Message encapsulates a user command, containing both input and output data.
This will serialize and transmit that command
void RakNet::Lobby2Server::SetPresence | ( | const RakNet::Lobby2Presence & | presence, | |
RakNet::RakString | userHandle | |||
) |
Set the presence of a logged in user
[in] | presence | Presence info of this user |
void RakNet::Lobby2Server::SetRoomsPlugin | ( | RoomsPlugin * | rp | ) |
To use RoomsPlugin and Lobby2Server together, register RoomsPlugin with this funcrtion.
The rooms plugin does not automatically handle users logging in and logging off, or renaming users. You can have Lobby2Server manage this for you by calling SetRoomsPlugin() with a pointer to the rooms plugin, if it is on the local system. This will call RoomsPlugin::LoginRoomsParticipant() and RoomsPlugin::LogoffRoomsParticipant() as the messages L2MID_Client_Login and L2MID_Client_Logoff arrive This will use the pointer to RoomsPlugin directly. Setting this will disable SetRoomsPluginAddress()
void RakNet::Lobby2Server::SetRoomsPluginAddress | ( | SystemAddress | address | ) |
This is similar to SetRoomsPlugin(), except the plugin is on another system.
This will set the system address of that system to send the login and logoff commands to. For this function to work, you must first call RoomsPlugin::AddLoginServerAddress() so that RoomsPlugin will accept the incoming login and logoff messages.