24 tcpserver (
unsigned short port,
const std::string&
name = std::string (),
25 unsigned int max_conn = 0);
46 void maxconn (
unsigned int new_max);
54 bool init ()
override;
73 std::vector<conndata> contab;
79 std::function<int (
const sock& s)> connfunc;
93 return contab.size ();
105 return (idle == INFINITE) ? 0 : idle;
116 idle = msec ? msec : INFINITE;
Event objects that reset automatically after a successful wait.
Definition event.h:49
Lightweight inter-thread synchronization.
Definition critsect.h:27
Wrapper for sockaddr structure.
Definition inaddr.h:24
Encapsulation of a Windows socket.
Definition wsockstream.h:27
sock & socket()
Provides access to server listening socket.
Definition tcpserver.h:85
void run() override
Run loop.
Definition tcpserver.cpp:123
virtual void termconn(sock &conn_sock, thread *thread)
Finalizes a connection.
Definition tcpserver.cpp:286
~tcpserver()
Terminate any connection that still exists.
Definition tcpserver.cpp:81
tcpserver(unsigned short port, const std::string &name=std::string(), unsigned int max_conn=0)
Opens the socket and initializes the connections table.
Definition tcpserver.cpp:68
unsigned int maxconn() const
Return maximum number of connections accepted.
Definition tcpserver.h:122
void set_connfunc(std::function< int(const sock &)> f)
Set function object that becomes the body of the thread serving a new connection.
Definition tcpserver.cpp:245
void close_connection(const sock &conn_sock)
Closes a connection.
Definition tcpserver.cpp:208
bool init() override
Binds the server socket to listening address and places it in listen mode.
Definition tcpserver.cpp:93
virtual void initconn(sock &conn_sock, thread *thread)
Initializes a connection.
Definition tcpserver.cpp:233
thread * get_connection_thread(const sock &conn_sock)
Return the thread servicing a connection.
Definition tcpserver.cpp:324
size_t numconn() const
Return number of active connections.
Definition tcpserver.h:91
virtual thread * make_thread(sock &conn_sock)
Return a servicing thread for each connection.
Definition tcpserver.cpp:262
void terminate()
Terminate the tcp server.
Definition tcpserver.cpp:338
unsigned int timeout() const
Return max interval to wait for an incoming connection (in milliseconds)
Definition tcpserver.h:103
virtual bool idle_action()
Called periodically from run loop.
Definition tcpserver.h:134
bool is_running() const
Return true if thread is running.
Definition thread.h:146
thread(std::function< unsigned int()> func)
Make a thread with the given function body.
Definition thread.cpp:64
virtual void name(const std::string &nam)
Set thread's name.
Definition thread.cpp:153
Definitions of mlib::criticalsection and mlib::lock classes.
Definition of mlib::event class.
Definition of mlib::inaddr class.
void(* conn_iter_func)(sock &conn, void *param)
Connections iteration function.
Definition tcpserver.h:19
Definition of mlib::thread class.
Definition of mlib::sock and related classes.