r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
INetworkServer.hpp
Go to the documentation of this file.
1///
2/// @file INetworkServer.hpp
3/// @brief This file contains the server network interface
4/// @namespace srv
5///
6
7#pragma once
8
9#include <cstdint>
10#include <string>
11#include <vector>
12
14
15namespace srv
16{
17
18 constexpr size_t MAX_CLIENTS = 16;
19 constexpr size_t MAX_IP_LENGTH = 8;
20 constexpr size_t MAX_LEN_RECV_BUFFER = 1024;
21
22 ///
23 /// @interface INetworkServer
24 /// @brief Interface for the server network
25 /// @namespace srv
26 ///
28 {
29 public:
30 virtual ~INetworkServer() = default;
31
32 // Server lifecycle
33 virtual void init(const std::string &host, uint16_t port) = 0;
34 virtual void start() = 0;
35 virtual void stop() = 0;
36 virtual void update() = 0;
37
38 // Client management
39 virtual void sendToClient(std::uint32_t sessionId, const std::vector<std::uint8_t> &data,
40 bool reliable = false) = 0;
41 virtual void sendToAllClients(const std::vector<std::uint8_t> &data, bool reliable = false) = 0;
42 virtual void disconnectClient(std::uint32_t sessionId) = 0;
43
44 // Server information
45 [[nodiscard]] virtual std::size_t getClientCount() const = 0;
46 [[nodiscard]] virtual std::vector<std::uint32_t> getConnectedSessions() const = 0;
47 [[nodiscard]] virtual bool isRunning() const = 0;
48
49 // Configuration
50 virtual void setTickRate(std::uint16_t tickRate) = 0;
51 virtual void setServerCapabilities(std::uint32_t caps) = 0;
52
53 private:
54 }; // class INetworkServer
55} // namespace srv
This file contains the plugin interface.
Interface for the server network.
virtual void setServerCapabilities(std::uint32_t caps)=0
virtual void stop()=0
virtual ~INetworkServer()=default
virtual void setTickRate(std::uint16_t tickRate)=0
virtual void update()=0
virtual bool isRunning() const =0
virtual void sendToClient(std::uint32_t sessionId, const std::vector< std::uint8_t > &data, bool reliable=false)=0
virtual void sendToAllClients(const std::vector< std::uint8_t > &data, bool reliable=false)=0
virtual void disconnectClient(std::uint32_t sessionId)=0
virtual std::vector< std::uint32_t > getConnectedSessions() const =0
virtual void init(const std::string &host, uint16_t port)=0
virtual std::size_t getClientCount() const =0
virtual void start()=0
Interface for plugins.
Definition IPlugin.hpp:38
constexpr size_t MAX_CLIENTS
constexpr size_t MAX_IP_LENGTH
constexpr size_t MAX_LEN_RECV_BUFFER