32#include <condition_variable>
117 void AddPacket(
int streamid,
int type,
int len,
const char *content);
151 bool SendNetMessage(
int type,
unsigned int streamid,
int len,
char* content);
154 void CouldNotConnect(std::string
const & msg,
bool close_socket =
true);
Central state/object manager and communications hub.
#define CHARACTER_ANIM_NAME_LEN
bool GetUserPeerOpts(int uid, BitMask_t &result)
std::deque< NetSendPacket > m_send_packet_buffer
Ogre::ColourValue GetPlayerColor(int color_num)
bool FindUserInfo(std::string const &username, RoRnet::UserInfo &result)
void AddLocalStream(RoRnet::StreamRegister *reg, int size)
int ReceiveMessage(RoRnet::Header *head, char *content, int bufferlen)
std::string UserAuthToStringLong(RoRnet::UserInfo const &user)
std::string GetUsername()
std::thread m_connect_thread
void RemovePeerOptions(PeerOptionsRequest *rq)
void CouldNotConnect(std::string const &msg, bool close_socket=true)
bool GetAnyUserInfo(int uid, RoRnet::UserInfo &result)
Also considers local client.
bool SendMessageRaw(char *buffer, int msgsize)
std::vector< BitMask_t > GetAllUsersPeerOpts()
std::vector< RoRnet::UserInfo > m_disconnected_users
std::atomic< int > m_net_quality
void BroadcastChatMsg(const char *msg)
std::vector< NetRecvPacket > GetIncomingStreamData()
std::mutex m_send_packetqueue_mutex
bool GetDisconnectedUserInfo(int uid, RoRnet::UserInfo &result)
std::string UserAuthToStringShort(RoRnet::UserInfo const &user)
std::atomic< bool > m_shutdown
std::vector< NetRecvPacket > m_recv_packet_buffer
bool StartConnecting()
Launches connecting on background.
void SetNetQuality(int quality)
bool SendNetMessage(int type, unsigned int streamid, int len, char *content)
std::thread m_send_thread
void AddPacket(int streamid, int type, int len, const char *content)
RoRnet::ServerInfo m_server_settings
std::thread m_recv_thread
RoRnet::UserInfo GetLocalUserData()
std::mutex m_recv_packetqueue_mutex
void PushNetMessage(MsgType type, std::string const &message)
std::vector< BitMask_t > m_users_peeropts
See RoRnet::PeerOptions.
RoRnet::UserInfo m_userdata
std::mutex m_userdata_mutex
Ogre::String GetTerrainName()
void QueueStreamData(RoRnet::Header &header, char *buffer, size_t buffer_len)
void WhisperChatMsg(RoRnet::UserInfo const &user, const char *msg)
bool GetUserInfo(int uid, RoRnet::UserInfo &result)
std::vector< RoRnet::UserInfo > GetUserInfos()
std::vector< RoRnet::UserInfo > m_users
std::string m_status_message
void AddPeerOptions(PeerOptionsRequest *rq)
std::condition_variable m_send_packet_available_cv
MsgType
Global gameplay message loop, see struct Message in GameContext.h.
#define RORNET_MAX_MESSAGE_LENGTH
maximum size of a RoR message. 8192 bytes = 8 kibibytes
char anim_name[CHARACTER_ANIM_NAME_LEN]
char buffer[RORNET_MAX_MESSAGE_LENGTH]
char buffer[RORNET_MAX_MESSAGE_LENGTH]
Payload of MSG_NET_{ADD/REMOVE}_PEEROPTIONS_REQUESTED.
int por_uid
RoRnet unique user ID.
BitMask_t por_peeropts
See RoRnet::PeerOptions.
< Sent from the client to server and vice versa, to broadcast a new stream