add simple inefficient server socket implementation (WIP)
This commit is contained in:
@@ -34,6 +34,8 @@ namespace network {
|
||||
|
||||
class Connection {
|
||||
public:
|
||||
virtual ~Connection() {}
|
||||
|
||||
virtual void connect(runnable callback) = 0;
|
||||
virtual int recv(char* buffer, size_t length) = 0;
|
||||
virtual int send(const char* buffer, size_t length) = 0;
|
||||
@@ -46,10 +48,21 @@ namespace network {
|
||||
virtual ConnectionState getState() const = 0;
|
||||
};
|
||||
|
||||
class TcpServer {
|
||||
public:
|
||||
virtual ~TcpServer() {}
|
||||
virtual void startListen(consumer<u64id_t> handler) = 0;
|
||||
virtual void close() = 0;
|
||||
virtual bool isOpen() = 0;
|
||||
};
|
||||
|
||||
class Network {
|
||||
std::unique_ptr<Requests> requests;
|
||||
std::unordered_map<u64id_t, std::shared_ptr<Connection>> connections;
|
||||
u64id_t nextConnection = 1;
|
||||
|
||||
std::unordered_map<u64id_t, std::shared_ptr<TcpServer>> servers;
|
||||
u64id_t nextServer = 1;
|
||||
public:
|
||||
Network(std::unique_ptr<Requests> requests);
|
||||
~Network();
|
||||
@@ -65,6 +78,10 @@ namespace network {
|
||||
|
||||
u64id_t connect(const std::string& address, int port, consumer<u64id_t> callback);
|
||||
|
||||
u64id_t openServer(int port, consumer<u64id_t> handler);
|
||||
|
||||
u64id_t addConnection(const std::shared_ptr<Connection>& connection);
|
||||
|
||||
size_t getTotalUpload() const;
|
||||
size_t getTotalDownload() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user