From: Christian P. <cp...@us...> - 2005-02-10 19:10:49
|
Update of /cvsroot/pclasses/pclasses2/include/pclasses/Net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1512/include/pclasses/Net Added Files: ServerSocketManager.h Log Message: Added ServerSocketManager --- NEW FILE: ServerSocketManager.h --- /*************************************************************************** * Copyright (C) 2005 by Christian Prochnow * * cp...@se... * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU Library General Public License as * * published by the Free Software Foundation; either version 2 of the * * License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU Library General Public * * License along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef P_Net_ServerSocketManager_h #define P_Net_ServerSocketManager_h #include <pclasses/Export.h> #include <pclasses/Signal.h> #include <pclasses/Net/Socket.h> #include <list> #include <map> namespace P { namespace Net { //! A StreamSocket server manager class PNET_EXPORT ServerSocketManager { public: ServerSocketManager(); virtual ~ServerSocketManager(); void addServer(const NetworkAddress& addr, port_t port); void removeServer(const NetworkAddress& addr, port_t port); Signal1<void, StreamSocketServer&> sigConnect; protected: virtual void onConnect(StreamSocketServer& s); private: void slotConnected(SocketListener&); std::list< StreamSocketServer* > _servers; std::map< StreamSocketServer*, SocketListener* > _listeners; }; } // !namespace Net } // !namespace P #endif |