Rudiments
/home/dmuse/src/rudiments/include/rudiments/serversocket.h
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