Rudiments
|
00001 // Copyright (c) 2002 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_SERVERSOCKET_H 00005 #define RUDIMENTS_SERVERSOCKET_H 00006 00007 #include <rudiments/private/serversocketincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00013 class serversocketprivate; 00014 00017 class RUDIMENTS_DLLSPEC serversocket : public server { 00018 public: 00019 00021 serversocket(); 00022 00025 serversocket(const serversocket &s); 00026 00029 serversocket &operator=(const serversocket &s); 00030 00032 virtual ~serversocket(); 00033 00037 virtual bool supportsBlockingNonBlockingModes(); 00038 00044 virtual bool useNonBlockingMode() const; 00045 00051 virtual bool useBlockingMode() const; 00052 00055 virtual bool isUsingNonBlockingMode() const; 00056 00059 virtual int32_t ioCtl(int32_t command, void *arg) const; 00060 00061 00069 bool lingerOnClose(int32_t timeout); 00070 00077 bool dontLingerOnClose(); 00078 00083 bool reuseAddresses(); 00084 00089 bool dontReuseAddresses(); 00090 00097 virtual bool listen(int32_t backlog); 00098 00099 #include <rudiments/private/serversocket.h> 00100 }; 00101 00102 #ifdef RUDIMENTS_NAMESPACE 00103 } 00104 #endif 00105 00106 #endif