Rudiments

Public Member Functions | List of all members
socketserver Class Reference

Inherits server.

Inherited by inetsocketserver, and unixsocketserver.

## Public Member Functions
| socketserver ()
| socketserver (const socketserver &s)
socketserver & | operator= (const socketserver &s)
virtual | ~socketserver ()
virtual bool | supportsBlockingNonBlockingModes ()
virtual bool | useNonBlockingMode () const
virtual bool | useBlockingMode () const
virtual bool | isUsingNonBlockingMode () const
virtual int32_t | ioCtl (int32_t command, void *arg) const
bool | lingerOnClose (int32_t timeout)
bool | dontLingerOnClose ()
bool | reuseAddresses ()
bool | dontReuseAddresses ()
virtual bool | listen (int32_t backlog)
Public Member Functions inherited from server
| server ()
| server (const server &s)
server & | operator= (const server &s)
virtual | ~server ()
virtual bool | bind ()
virtual filedescriptor * | accept ()
Public Member Functions inherited from filedescriptor
| filedescriptor ()
| filedescriptor (const filedescriptor &f)
filedescriptor & | operator= (const filedescriptor &f)
virtual | ~filedescriptor ()
virtual bool | close ()
int32_t | getFileDescriptor () const
void | setFileDescriptor (int32_t filedesc)
int32_t | duplicate () const
bool | duplicate (int32_t newfd) const
void | setSecurityContext (securitycontext *ctx)
securitycontext * | getSecurityContext ()
ssize_t | write (uint16_t number)
ssize_t | write (uint32_t number)
ssize_t | write (uint64_t number)
ssize_t | write (int16_t number)
ssize_t | write (int32_t number)
ssize_t | write (int64_t number)
ssize_t | write (float number)
ssize_t | write (double number)
ssize_t | write (unsigned char character)
ssize_t | write (char character)
ssize_t | write (bool value)
ssize_t | write (const unsigned char *string)
ssize_t | write (const char *string)
ssize_t | write (const unsigned char *string, size_t size)
ssize_t | write (const char *string, size_t length)
ssize_t | write (const void *buffer, size_t size)
ssize_t | write (uint16_t number, int32_t sec, int32_t usec)
ssize_t | write (uint32_t number, int32_t sec, int32_t usec)
ssize_t | write (uint64_t number, int32_t sec, int32_t usec)
ssize_t | write (int16_t number, int32_t sec, int32_t usec)
ssize_t | write (int32_t number, int32_t sec, int32_t usec)
ssize_t | write (int64_t number, int32_t sec, int32_t usec)
ssize_t | write (float number, int32_t sec, int32_t usec)
ssize_t | write (double number, int32_t sec, int32_t usec)
ssize_t | write (unsigned char character, int32_t sec, int32_t usec)
ssize_t | write (char character, int32_t sec, int32_t usec)
ssize_t | write (bool value, int32_t sec, int32_t usec)
ssize_t | write (const unsigned char *string, int32_t sec, int32_t usec)
ssize_t | write (const char *string, int32_t sec, int32_t usec)
ssize_t | write (const unsigned char *string, size_t size, int32_t sec, int32_t usec)
ssize_t | write (const char *string, size_t size, int32_t sec, int32_t usec)
ssize_t | write (const void *buffer, size_t size, int32_t sec, int32_t usec)
size_t | printf (const char *format,...)
size_t | printf (const char *format, va_list *argp)
void | safePrint (unsigned char c)
void | safePrint (const unsigned char *str)
void | safePrint (const unsigned char *str, int32_t length)
void | safePrint (char c)
void | safePrint (const char *str)
void | safePrint (const char *str, int32_t length)
void | printBits (unsigned char value)
void | printBits (uint16_t value)
void | printBits (uint32_t value)
void | printBits (uint64_t value)
void | printBits (char value)
void | printBits (int16_t value)
void | printBits (int32_t value)
void | printBits (int64_t value)
void | printBits (const unsigned char *bits, uint64_t size)
ssize_t | read (uint16_t *buffer)
ssize_t | read (uint32_t *buffer)
ssize_t | read (uint64_t *buffer)
ssize_t | read (int16_t *buffer)
ssize_t | read (int32_t *buffer)
ssize_t | read (int64_t *buffer)
ssize_t | read (float *buffer)
ssize_t | read (double *buffer)
ssize_t | read (unsigned char *buffer)
ssize_t | read (char *buffer)
ssize_t | read (bool *buffer)
ssize_t | read (unsigned char *buffer, size_t size)
ssize_t | read (char *buffer, size_t length)
ssize_t | read (void *buf, size_t size)
ssize_t | read (char **buffer, const char *terminator)
ssize_t | read (char **buffer, const char *terminator, size_t maxbytes)
ssize_t | read (uint16_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (uint32_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (uint64_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (int16_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (int32_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (int64_t *buffer, int32_t sec, int32_t usec)
ssize_t | read (float *buffer, int32_t sec, int32_t usec)
ssize_t | read (double *buffer, int32_t sec, int32_t usec)
ssize_t | read (unsigned char *buffer, int32_t sec, int32_t usec)
ssize_t | read (char *buffer, int32_t sec, int32_t usec)
ssize_t | read (bool *buffer, int32_t sec, int32_t usec)
ssize_t | read (unsigned char *buffer, size_t size, int32_t sec, int32_t usec)
ssize_t | read (char *buffer, size_t size, int32_t sec, int32_t usec)
ssize_t | read (void *buf, size_t size, int32_t sec, int32_t usec)
ssize_t | read (char **buffer, const char *terminator, int32_t sec, int32_t usec)
ssize_t | read (char **buffer, const char *terminator, size_t maxbytes, int32_t sec, int32_t usec)
ssize_t | read (char **buffer, const char *terminator, size_t maxbytes, char escapechar, int32_t sec, int32_t usec)
int32_t | waitForNonBlockingRead (int32_t sec, int32_t usec) const
int32_t | waitForNonBlockingWrite (int32_t sec, int32_t usec) const
void | retryInterruptedReads ()
void | dontRetryInterruptedReads ()
bool | getRetryInterruptedReads () const
void | retryInterruptedWrites ()
void | dontRetryInterruptedWrites ()
bool | getRetryInterruptedWrites () const
void | retryInterruptedWaits ()
void | dontRetryInterruptedWaits ()
bool | getRetryInterruptedWaits () const
void | retryInterruptedFcntl ()
void | dontRetryInterruptedFcntl ()
bool | getRetryInterruptedFcntl () const
void | retryInterruptedIoctl ()
void | dontRetryInterruptedIoctl ()
bool | getRetryInterruptedIoctl () const
void | allowShortReads ()
void | dontAllowShortReads ()
void | allowShortWrites ()
void | dontAllowShortWrites ()
virtual bool | passFileDescriptor (int32_t fd)
virtual bool | receiveFileDescriptor (int32_t *fd)
virtual bool | passSocket (int32_t sock)
virtual bool | receiveSocket (int32_t *sock)
void | translateByteOrder ()
void | dontTranslateByteOrder ()
virtual int32_t | fCntl (int32_t command, long arg) const
bool | useNaglesAlgorithm ()
bool | dontUseNaglesAlgorithm ()
bool | setSocketWriteBufferSize (int32_t size)
bool | getSocketWriteBufferSize (int32_t *size)
bool | setSocketReadBufferSize (int32_t size)
bool | getSocketReadBufferSize (int32_t *size)
bool | disableIPv4 ()
bool | enableIPv4 ()
const char * | getType () const
char * | getPeerAddress () const
bool | setWriteBufferSize (ssize_t size) const
bool | flushWriteBuffer (int32_t sec, int32_t usec)
bool | setReadBufferSize (ssize_t size) const
bool | closeOnExec ()
bool | dontCloseOnExec ()
bool | getCloseOnExec ()

## Additional Inherited Members
Static Public Member Functions inherited from filedescriptor
static bool | createPipe (filedescriptor *readfd, filedescriptor *writefd)
static uint16_t | hostToNet (uint16_t value)
static uint32_t | hostToNet (uint32_t value)
static uint64_t | hostToNet (uint64_t value)
static uint16_t | netToHost (uint16_t value)
static uint32_t | netToHost (uint32_t value)
static uint64_t | netToHost (uint64_t value)
static uint16_t | hostToLittleEndian (uint16_t value)
static uint32_t | hostToLittleEndian (uint32_t value)
static uint64_t | hostToLittleEndian (uint64_t value)
static uint16_t | littleEndianToHost (uint16_t value)
static uint32_t | littleEndianToHost (uint32_t value)
static uint64_t | littleEndianToHost (uint64_t value)

## Detailed Description

The socketserver class provides a base class for classes that implement the server side of a client-server communication model over a socket.

## Constructor & Destructor Documentation

## ◆ socketserver() [1/2]

socketserver::socketserver | ( |  | ) |

Creates an instance of the socketserver class.

## ◆ socketserver() [2/2]

socketserver::socketserver | ( | const socketserver & | s | ) |

Creates an instance of the socketserver class that is a copy of "s".

## ◆ ~socketserver()

virtual socketserver::~socketserver | ( |  | ) |
| virtual

Deletes this instance of the socketserver class.

## Member Function Documentation

## ◆ dontLingerOnClose()

bool socketserver::dontLingerOnClose | ( |  | ) |

Instructs the socket to close immediately when close() is called, dumping any data that may still be buffered but that it may not have received. This is the default.

Returns true on success and false on failure.

## ◆ dontReuseAddresses()

bool socketserver::dontReuseAddresses | ( |  | ) |

Prevents sockets in the TIME_WAIT state from being reused. This is the default.

Returns true on success and false on failure.

## ◆ ioCtl()

virtual int32_t socketserver::ioCtl | ( | int32_t | command,
|  | void * | arg
| ) |  | const
| virtual

Use the ioctl() system call to perform various low-level file descriptor operations.

Reimplemented from filedescriptor.

## ◆ isUsingNonBlockingMode()

virtual bool socketserver::isUsingNonBlockingMode | ( |  | ) | const
| virtual

Returns true if the file descriptor is in non-blocking mode and false otherwise.

Reimplemented from filedescriptor.

## ◆ lingerOnClose()

bool socketserver::lingerOnClose | ( | int32_t | timeout | ) |

Instructs the socket to stay open for "timeout" seconds even after close() is called to allow it to receive any data that may still be buffered. The default is not to linger on close.

Returns true on success and false on failure.

## ◆ listen()

virtual bool socketserver::listen | ( | int32_t | backlog | ) |
| virtual

Waits until a client connects then places that connection in queue. Up to "backlog" connections may be queued before future conenctions are refused.

Returns true on success and false on failure.

Reimplemented from server.

Reimplemented in unixsocketserver, and inetsocketserver.

## ◆ operator=()

socketserver& socketserver::operator= | ( | const socketserver & | s | ) |

Makes this instance of the socketserver class identical to "s".

## ◆ reuseAddresses()

bool socketserver::reuseAddresses | ( |  | ) |

Allows sockets in the TIME_WAIT state to be reused. The default is to allocate a new socket.

Returns true on success and false on failure.

## ◆ supportsBlockingNonBlockingModes()

virtual bool socketserver::supportsBlockingNonBlockingModes | ( |  | ) |
| virtual

Returns false if the system doesn't support blocking/nonblocking modes and true otherwise.

Reimplemented from filedescriptor.

## ◆ useBlockingMode()

virtual bool socketserver::useBlockingMode | ( |  | ) | const
| virtual

Puts the file descriptor in blocking mode. Returns true on success and false on failure. Returns false if the system doesn't support blocking/nonblocking modes.

Reimplemented from filedescriptor.

## ◆ useNonBlockingMode()

virtual bool socketserver::useNonBlockingMode | ( |  | ) | const
| virtual

Puts the file descriptor in non-blocking mode. Returns true on success and false on failure. Returns false if the system doesn't support blocking/nonblocking modes.

Reimplemented from filedescriptor.