Cogs.Foundation
Loading...
Searching...
No Matches
ConnectionHub.h
Go to the documentation of this file.
1#pragma once
2
3#if !defined( EMSCRIPTEN )
4
5#include "Connection.h"
6#include "MessageHub.h"
7
8namespace Cogs {
9 namespace Network {
18 public:
19 ConnectionHub(uint32_t id) : MessageHub(id) {}
20 ConnectionHub(Socket socket, const SockaddrIn& addr) : ConnectionTCP(socket, addr), MessageHub(0) {}
21
22 virtual bool processOutgoing() override;
23 virtual bool processIncoming() override;
24
25 protected:
26 virtual void handleReceivedMessage(const Message::Ptr& message);
27 virtual bool disconnect() override;
28
29 private:
30 struct Header {
31 uint32_t id = 0;
32 uint64_t size = 0;
33 };
34
36 uint64_t bytesSent = 0;
37
40 };
41 }
42}
43
44#endif
#define COGSFOUNDATION_API
Definition: FoundationBase.h:31
A ConnectionHub combines a TCP connection with a MessageHub to enable the forwarding and receiving of...
Definition: ConnectionHub.h:17
ConnectionHub(uint32_t id)
Definition: ConnectionHub.h:19
ConnectionHub(Socket socket, const SockaddrIn &addr)
Definition: ConnectionHub.h:20
Message::Ptr incomingMessage
Definition: ConnectionHub.h:38
Message::Ptr outgoingMessage
Definition: ConnectionHub.h:35
Header incomingHeader
Definition: ConnectionHub.h:39
Definition: Connection.h:111
A MessageHub connects to other hubs to form a simple peer-to-peer application-internal networking sys...
Definition: MessageHub.h:30
std::shared_ptr< Message > Ptr
Definition: Message.h:15
Definition: Address.h:96
int Socket
Definition: Connection.h:23
Main Cogs namespace.
Definition: MortonCode.h:5
Definition: ConnectionHub.h:30