r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
INetworkClient.hpp
Go to the documentation of this file.
1///
2/// @file INetworkClient.hpp
3/// @brief This file contains the client network interface
4/// @namespace eng
5///
6
7#pragma once
8
9#include <cstdint>
10#include <string>
11#include <vector>
12
14
15namespace eng
16{
17
18 ///
19 /// @brief Connection state enumeration
20 ///
21 enum class ConnectionState
22 {
27 };
28
29 ///
30 /// @interface INetworkClient
31 /// @brief Interface for the client network
32 /// @namespace eng
33 ///
35 {
36 public:
37 virtual ~INetworkClient() = default;
38
39 // Connection management
40 virtual void connect(const std::string &host, uint16_t port) = 0;
41 virtual void disconnect() = 0;
42
43 // Packet handling
44 virtual void update() = 0;
45
46 virtual void sendToServer(const std::vector<std::uint8_t> &data, bool reliable = false) = 0;
47
48 // Connection status
49 [[nodiscard]] virtual bool isConnected() const = 0;
50 [[nodiscard]] virtual ConnectionState getConnectionState() const = 0;
51 [[nodiscard]] virtual std::uint32_t getSessionId() const = 0;
52 [[nodiscard]] virtual std::uint16_t getServerTickRate() const = 0;
53 [[nodiscard]] virtual std::uint32_t getLatency() const = 0;
54
55 // Client configuration
56 virtual void setPlayerName(const std::string &playerName) = 0;
57 virtual void setClientCapabilities(std::uint32_t caps) = 0;
58
59 private:
60 }; // class INetworkClient
61} // namespace eng
This file contains the plugin interface.
Interface for the client network.
virtual void setPlayerName(const std::string &playerName)=0
virtual void sendToServer(const std::vector< std::uint8_t > &data, bool reliable=false)=0
virtual ~INetworkClient()=default
virtual std::uint16_t getServerTickRate() const =0
virtual void connect(const std::string &host, uint16_t port)=0
virtual void disconnect()=0
virtual ConnectionState getConnectionState() const =0
virtual std::uint32_t getLatency() const =0
virtual std::uint32_t getSessionId() const =0
virtual void update()=0
virtual bool isConnected() const =0
virtual void setClientCapabilities(std::uint32_t caps)=0
Interface for plugins.
Definition IPlugin.hpp:38
ConnectionState
Connection state enumeration.