namespace roast
{
- template <typename _SocketBase>
+ template <typename _SocketBase, typename _Thread>
class server_socket_ : public _SocketBase
{
private:
- int m_port_no;
+ //int m_port_no;
- public:
- server_socket_(int listen_port_no) : m_port_no(listen_port_no) {}
-
- /////////////////////////////////////////////////////
-
- template <typename _ConnectionClass>
- bool start()
+ void _listen_thread_func(int listen_port_no)
{
for(;;)
{
ServerSocketImpl::accepted_info ai;
SocketType accepted = listener.listen_ex(
- m_setup_info.listen_port_no, ai, false,
+ listen_port_no, ai, false,
m_setup_info.socktype, m_setup_info.family);
- ::roast::thread th;
- th.start();
+ _Thread th(accepted);
+ //th.start();
}
}
+
+ public:
+ server_socket_(){}
+ //server_socket_(int listen_port_no) : m_port_no(listen_port_no) {}
+ server_socket_(int listen_port_no){ start(listen_port_no); }
+
+ //template <typename _ConnectionClass>
+ void start(int listen_port_no)
+ {
+ ::roast::thread th(
+ }
};
typedef server_socket_<socket> tcp_server_socket, server_socket;