R-Type
R-Type project
NetworkConnectionToClient.hpp
1 #pragma once
2 
3 #include "NetworkConnection.hpp"
4 #include "Transport.hpp"
5 #include "Compression.hpp"
6 
7 namespace KapMirror {
9  private:
10  int connectionId;
11 
12  public:
13  explicit NetworkConnectionToClient(int _connectionId) : connectionId(_connectionId) {}
14 
18  int getConnectionId() override { return connectionId; }
19 
23  void disconnect() override { Transport::activeTransport->serverDisconnect(connectionId); }
24 
29  void sendToTransport(const std::shared_ptr<ArraySegment<byte>>& data) override {
30  std::shared_ptr<ArraySegment<byte>> dataToSend = data;
31  if (Compression::activeCompression != nullptr) {
32  dataToSend = Compression::activeCompression->compress(data);
33  }
34  Transport::activeTransport->serverSend(connectionId, dataToSend);
35  }
36  };
37 } // namespace KapMirror
KapMirror::NetworkConnectionToClient::sendToTransport
void sendToTransport(const std::shared_ptr< ArraySegment< byte >> &data) override
Send raw data to the transport.
Definition: NetworkConnectionToClient.hpp:29
KapMirror::NetworkConnectionToClient::getConnectionId
int getConnectionId() override
Unique identifier for this connection that is assigned by the transport layer.
Definition: NetworkConnectionToClient.hpp:18
KapMirror::NetworkConnection
Definition: NetworkConnection.hpp:9
KapMirror::NetworkConnectionToClient
Definition: NetworkConnectionToClient.hpp:8
KapMirror::ArraySegment
Definition: ArraySegment.hpp:9
KapMirror::NetworkConnectionToClient::disconnect
void disconnect() override
Disconnects this connection.
Definition: NetworkConnectionToClient.hpp:23