1 /**************************************************************************** 2 Copyright (C) 2003-2006 Al Riddoch <alriddoch@zepler.org> 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 18 ****************************************************************************/ 19 20 /** 21 * This software package has been extensively modified by members of the 22 * Worldforge Project. See the file ChangeLog for details. 23 * 24 * $Id$ 25 * 26 */ 27 #ifndef SKSTREAM_UNIX_H_ 28 #define SKSTREAM_UNIX_H_ 29 30 #include <skstream/skstream.h> 31 32 ///////////////////////////////////////////////////////////////////////////// 33 // class unix_socket_stream 34 ///////////////////////////////////////////////////////////////////////////// 35 36 /// An iostream class that handles unix sockets 37 class unix_socket_stream : public stream_socket_stream { 38 private: 39 explicit unix_socket_stream(const unix_socket_stream&); 40 41 unix_socket_stream& operator=(const unix_socket_stream& socket); 42 43 public: 44 unix_socket_stream(); 45 46 explicit unix_socket_stream(SOCKET_TYPE socket); 47 48 explicit unix_socket_stream(const std::string & address, 49 bool nonblock = false); 50 51 explicit unix_socket_stream(const std::string & address, 52 unsigned int milliseconds); 53 54 explicit unix_socket_stream(unix_socket_stream & other, 55 bool nonblock = false); 56 57 virtual ~unix_socket_stream(); 58 59 void open(const std::string& address, bool nonblock = false); 60 void open(const std::string& address, unsigned int milliseconds); 61 void open(unix_socket_stream & other, bool nonblock = false); 62 63 bool isReady(unsigned int milliseconds = 0); 64 }; 65 66 #endif // SKSTREAM_UNIX_H_ 67