tcp_listen.h
1 
2 #pragma once
3 
4 #include "network_condition_variable.h"
5 #include <memory>
6 #include <vector>
7 
8 namespace clan
9 {
10  class SocketName;
11  class TCPConnection;
12  class TCPSocket;
13 
15  class TCPListen : public NetworkEvent
16  {
17  public:
19  TCPListen();
20 
22  TCPListen(const SocketName &endpoint, int backlog = 5, bool reuse_address = true);
23 
24  ~TCPListen();
25 
27  bool is_null() const { return !impl; }
28 
30  void close();
31 
35  TCPConnection accept(SocketName &end_point);
36 
37  protected:
38  SocketHandle *get_socket_handle() override;
39 
40  private:
41  std::shared_ptr<TCPSocket> impl;
42  };
43 }
Definition: clanapp.h:35
SocketHandle * get_socket_handle() override
Socket name; container class for an IP address and port.
Definition: socket_name.h:44
TCP/IP socket connection.
Definition: tcp_connection.h:17
Listens for incoming TCP/IP socket connections.
Definition: tcp_listen.h:15
void close()
Stops listening for incoming messages and closes the socket.
TCPListen()
Create null object.
bool is_null() const
Returns true if it is a null object.
Definition: tcp_listen.h:27
Base class for all classes that generate network events.
Definition: network_condition_variable.h:14
TCPConnection accept(SocketName &end_point)
Accept an incoming connection.