00001 /* 00002 * synergy -- mouse and keyboard sharing utility 00003 * Copyright (C) 2012 Bolton Software Ltd. 00004 * Copyright (C) 2002 Chris Schoeneman 00005 * 00006 * This package is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU General Public License 00008 * found in the file COPYING that should have accompanied this file. 00009 * 00010 * This package is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 #ifndef CTCPLISTENSOCKET_H 00020 #define CTCPLISTENSOCKET_H 00021 00022 #include "IListenSocket.h" 00023 #include "IArchNetwork.h" 00024 00025 class CMutex; 00026 class ISocketMultiplexerJob; 00027 00029 00032 class CTCPListenSocket : public IListenSocket { 00033 public: 00034 CTCPListenSocket(); 00035 ~CTCPListenSocket(); 00036 00037 // ISocket overrides 00038 virtual void bind(const CNetworkAddress&); 00039 virtual void close(); 00040 virtual void* getEventTarget() const; 00041 00042 // IListenSocket overrides 00043 virtual IDataSocket* accept(); 00044 00045 private: 00046 ISocketMultiplexerJob* 00047 serviceListening(ISocketMultiplexerJob*, 00048 bool, bool, bool); 00049 00050 private: 00051 CArchSocket m_socket; 00052 CMutex* m_mutex; 00053 }; 00054 00055 #endif
1.7.1