Elaztek Developer Hub
Blamite Game Engine - blam!  00406.12.10.23.1457.blamite
The core library for the Blamite Game Engine.
network_manager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "types.h"
4 
5 namespace discord {
6 
7 class NetworkManager final {
8 public:
9  ~NetworkManager() = default;
10 
14  void GetPeerId(NetworkPeerId* peerId);
18  Result Flush();
22  Result OpenPeer(NetworkPeerId peerId, char const* routeData);
26  Result UpdatePeer(NetworkPeerId peerId, char const* routeData);
34  Result OpenChannel(NetworkPeerId peerId, NetworkChannelId channelId, bool reliable);
43  NetworkChannelId channelId,
44  std::uint8_t* data,
45  std::uint32_t dataLength);
46 
49 
50 private:
51  friend class Core;
52 
53  NetworkManager() = default;
54  NetworkManager(NetworkManager const& rhs) = delete;
55  NetworkManager& operator=(NetworkManager const& rhs) = delete;
56  NetworkManager(NetworkManager&& rhs) = delete;
57  NetworkManager& operator=(NetworkManager&& rhs) = delete;
58 
59  IDiscordNetworkManager* internal_;
60  static IDiscordNetworkEvents events_;
61 };
62 
63 } // namespace discord
discord
Definition: achievement_manager.cpp:12
discord::Core::NetworkManager
discord::NetworkManager & NetworkManager()
Definition: core.cpp:128
discord::NetworkManager::SendMessage
Result SendMessage(NetworkPeerId peerId, NetworkChannelId channelId, std::uint8_t *data, std::uint32_t dataLength)
Send a message to a connected peer over an opened message channel.
Definition: network_manager.cpp:93
discord::NetworkEvents::OnRouteUpdate
static void DISCORD_CALLBACK OnRouteUpdate(void *callbackData, char const *routeData)
Definition: network_manager.cpp:31
network_manager.h
discord::NetworkManager::OnMessage
Event< NetworkPeerId, NetworkChannelId, std::uint8_t *, std::uint32_t > OnMessage
Definition: network_manager.h:47
discord::Core
Definition: core.h:19
discord::NetworkManager::CloseChannel
Result CloseChannel(NetworkPeerId peerId, NetworkChannelId channelId)
Close a message channel to a connected peer.
Definition: network_manager.cpp:87
uint8_t
unsigned char uint8_t
Definition: stdint.h:15
discord::NetworkManager::ClosePeer
Result ClosePeer(NetworkPeerId peerId)
Close the connection to a remote peer.
Definition: network_manager.cpp:75
DiscordNetworkPeerId
uint64_t DiscordNetworkPeerId
Definition: ffi.h:239
uint64_t
unsigned long long uint64_t
Definition: stdint.h:18
types.h
discord::NetworkManager::OnRouteUpdate
Event< char const * > OnRouteUpdate
Definition: network_manager.h:48
discord::NetworkEvents
Definition: network_manager.cpp:14
core.h
discord::Result
Result
Definition: types.h:12
IDiscordNetworkEvents
Definition: ffi.h:737
DISCORD_CALLBACK
#define DISCORD_CALLBACK
Definition: ffi.h:19
discord::NetworkEvents::OnMessage
static void DISCORD_CALLBACK OnMessage(void *callbackData, DiscordNetworkPeerId peerId, DiscordNetworkChannelId channelId, uint8_t *data, uint32_t dataLength)
Definition: network_manager.cpp:16
uint32_t
unsigned int uint32_t
Definition: stdint.h:17
discord::NetworkManager::UpdatePeer
Result UpdatePeer(NetworkPeerId peerId, char const *routeData)
Update the route data for a connected peer.
Definition: network_manager.cpp:69
discord::NetworkManager::OpenChannel
Result OpenChannel(NetworkPeerId peerId, NetworkChannelId channelId, bool reliable)
Open a message channel to a connected peer.
Definition: network_manager.cpp:81
discord::NetworkManager::OpenPeer
Result OpenPeer(NetworkPeerId peerId, char const *routeData)
Open a connection to a remote peer.
Definition: network_manager.cpp:63
discord::Event< NetworkPeerId, NetworkChannelId, std::uint8_t *, std::uint32_t >
discord::NetworkManager::~NetworkManager
~NetworkManager()=default
discord::NetworkManager::GetPeerId
void GetPeerId(NetworkPeerId *peerId)
Get the local peer ID for this process.
Definition: network_manager.cpp:48
discord::NetworkChannelId
std::uint8_t NetworkChannelId
Definition: types.h:207
IDiscordNetworkManager
Definition: ffi.h:746
discord::NetworkPeerId
std::uint64_t NetworkPeerId
Definition: types.h:206
discord::NetworkManager
Definition: network_manager.h:7
discord::NetworkManager::Flush
Result Flush()
Send pending network messages.
Definition: network_manager.cpp:57
DiscordNetworkChannelId
uint8_t DiscordNetworkChannelId
Definition: ffi.h:240