AsyncFw 1.2
Async Framework is c++ runtime with timers, poll notifiers, sockets, coroutines, etc.
 
Loading...
Searching...
No Matches
DataArrayTcpServer.h
1/*
2Copyright (c) 2026 Alexandr Kuzmuk
3
4This file is part of the AsyncFw project. Licensed under the MIT License.
5See {Link: LICENSE file https://mit-license.org} in the project root for full license information.
6*/
7
8#pragma once
9
10#include "../core/TlsContext.h"
11#include "ListenSocket.h"
12#include "DataArrayAbstractTcp.h"
13
14namespace AsyncFw {
15class ListenSocket;
17class DataArrayTcpServer : public DataArrayAbstractTcp {
18public:
19 DataArrayTcpServer(const std::string & = "TcpServer");
20 void quit() override;
21 bool listen(const std::string &address, uint16_t port);
22 void close();
23 void setAlwaysConnect(const std::vector<std::string> &list);
24 bool listening();
25 void tlsSetup(const TlsContext &data) { tlsData = data; }
26
27private:
28 class Thread : public DataArrayAbstractTcp::Thread {
29 friend class DataArrayTcpServer;
30
31 public:
32 inline DataArrayTcpServer *server() { return static_cast<DataArrayTcpServer *>(pool); }
33
34 private:
35 using DataArrayAbstractTcp::Thread::Thread;
36 void createSocket(int, bool);
37 };
38 std::unique_ptr<ListenSocket> listener;
39
40 bool incomingConnection(int, const std::string &);
41 std::vector<std::string> alwaysConnect_;
42 TlsContext tlsData;
43};
44} // namespace AsyncFw
The ListenSocket class.
Definition ListenSocket.h:16
The TlsContext class provides functionality for managing TLS certificates.
Definition TlsContext.h:24