| 
 
 | 
 | 
This class encapsulates a system dependent socket in a system independent abstraction
| enum TOS { LowDelay = IPTOS_LOWDELAY, MaxThroughput = IPTOS_THROUGHPUT, MaxReliability = IPTOS_RELIABILITY, MinCost = IPTOS_MINCOST, } | TOS | 
Types of service
| Socket () | Socket | 
Default constructor, creates an invalid socket
| Socket (SOCKET handle) | Socket | 
Constructor from an existing handle
Parameters:
| handle | Operating system handle to an existing socket | 
| Socket (int domain, int type, int protocol = 0) | Socket | 
Constructor that also creates the socket handle
Parameters:
| domain | Communication domain for the socket (protocol family) | 
| type | Type specification of the socket | 
| protocol | Specific protocol for the domain, 0 to use default | 
| ~Socket () | ~Socket | 
[virtual]
Destructor - closes the handle if still open
| bool  create (int domain, int type, int protocol = 0) | create | 
Creates a new socket handle,
Parameters:
| domain | Communication domain for the socket (protocol family) | 
| type | Type specification of the socket | 
| protocol | Specific protocol for the domain, 0 to use default | 
Returns: True if socket was created, false if an error occured
| bool  terminate () | terminate | 
[virtual]
Closes the socket handle, terminates the connection
Returns: True if socket was (already) closed, false if an error occured
Reimplemented from Stream.
| void  attach (SOCKET handle) | attach | 
Attach an existing handle to the socket, closes any existing first
Parameters:
| handle | Operating system handle to an existing socket | 
| SOCKET  detach () | detach | 
Detaches the object from the socket handle
Returns: The handle previously owned by this object
| inline SOCKET  handle () | handle | 
[const]
Get the operating system handle to the socket
Returns: Socket handle
| bool  canRetry () | canRetry | 
[const virtual]
Check if the last error code indicates a retryable condition
Returns: True if error was temporary and operation should be retried
Reimplemented from Stream.
| bool  valid () | valid | 
[const virtual]
Check if this socket is valid
Returns: True if the handle is valid, false if it's invalid
Reimplemented from Stream.
| SOCKET  invalidHandle () | invalidHandle | 
[static]
Get the operating system specific handle value for an invalid socket
Returns: Handle value for an invalid socket
| int  socketError () | socketError | 
[static]
Get the operating system specific return value of a failed operation
Returns: Return value of a failed socket operation
| bool  setOption (int level, int name, const void* value = 0, socklen_t length = 0) | setOption | 
Set socket options
Parameters:
| level | Level of the option to set | 
| name | Socket option for which the value is to be set | 
| value | Pointer to a buffer holding the value for the requested option | 
| length | Size of the supplied buffer | 
Returns: True if operation was successfull, false if an error occured
| bool  getOption (int level, int name, void* buffer, socklen_t* length) | getOption | 
Get socket options
Parameters:
| level | Level of the option to set | 
| name | Socket option for which the value is to be set | 
| buffer | Pointer to a buffer to return the value for the requested option | 
| length | Pointer to size of the supplied buffer, will be filled on return | 
Returns: True if operation was successfull, false if an error occured
| bool  setTOS (int tos) | setTOS | 
Set the Type of Service on the IP level of this socket
Parameters:
| tos | New TOS bits to set | 
Returns: True if operation was successfull, false if an error occured
| bool  setBlocking (bool block = true) | setBlocking | 
[virtual]
Set the blocking or non-blocking operation mode of the socket
Parameters:
| block | True if I/O operations should block, false for non-blocking | 
Returns: True if operation was successfull, false if an error occured
Reimplemented from Stream.
| bool  setReuse (bool reuse = true, bool exclusive = false) | setReuse | 
Set the local address+port reuse flag of the socket. This method should be called before bind() or it will have no effect.
Parameters:
| reuse | True if other sockets may listen on same address+port | 
| exclusive | Grant exclusive access to the address | 
Returns: True if operation was successfull, false if an error occured
| bool  setLinger (int seconds = -1) | setLinger | 
Set the way closing a socket is handled
Parameters:
| seconds | How much to block waiting for socket to close, negative to no wait (close in background), zero to reset connection | 
Returns: True if operation was successfull, false if an error occured
| bool  bind (struct sockaddr* addr, socklen_t addrlen) | bind | 
Associates the socket with a local address
Parameters:
| addr | Address to assign to this socket | 
| addrlen | Length of the address structure | 
Returns: True if operation was successfull, false if an error occured
| inline bool  bind (const SocketAddr& addr) | bind | 
Associates the socket with a local address
Parameters:
| addr | Address to assign to this socket | 
Returns: True if operation was successfull, false if an error occured
| bool  listen (unsigned int backlog = 0) | listen | 
Start listening for incoming connections on the socket
Parameters:
| backlog | Maximum length of the queue of pending connections, 0 for system maximum | 
Returns: True if operation was successfull, false if an error occured
| Socket*  accept (struct sockaddr* addr = 0, socklen_t* addrlen = 0) | accept | 
Create a new socket for an incoming connection attempt on a listening socket
Parameters:
| addr | Address to fill in with the address of the incoming connection | 
| addrlen | Length of the address structure on input, length of address data on return | 
Returns: Open socket to the new connection or NULL on failure
| Socket*  accept (SocketAddr& addr) | accept | 
Create a new socket for an incoming connection attempt on a listening socket
Parameters:
| addr | Address to fill in with the address of the incoming connection | 
Returns: Open socket to the new connection or NULL on failure
| SOCKET  acceptHandle (struct sockaddr* addr = 0, socklen_t* addrlen = 0) | acceptHandle | 
Create a new socket for an incoming connection attempt on a listening socket
Parameters:
| addr | Address to fill in with the address of the incoming connection | 
| addrlen | Length of the address structure on input, length of address data on return | 
Returns: Operating system handle to the new connection or invalidHandle() on failure
| Socket*  peelOff (unsigned int assoc) | peelOff | 
Create a new socket by peeling off an association from a SCTP socket
Parameters:
| assoc | Identifier of the association to peel off | 
Returns: Open socket to the association or NULL on failure
| SOCKET  peelOffHandle (unsigned int assoc) | peelOffHandle | 
Create a new socket by peeling off an association from a SCTP socket
Parameters:
| assoc | Identifier of the association to peel off | 
Returns: Operating system handle to the association or invalidHandle() on failure
| bool  connect (struct sockaddr* addr, socklen_t addrlen) | connect | 
Connects the socket to a remote address
Parameters:
| addr | Address to connect to | 
| addrlen | Length of the address structure | 
Returns: True if operation was successfull, false if an error occured
| inline bool  connect (const SocketAddr& addr) | connect | 
Connects the socket to a remote address
Parameters:
| addr | Socket address to connect to | 
Returns: True if operation was successfull, false if an error occured
| bool  shutdown (bool stopReads, bool stopWrites) | shutdown | 
Shut down one or both directions of a full-duplex socket.
Parameters:
| stopReads | Request to shut down the read side of the socket | 
| stopWrites | Request to shut down the write side of the socket | 
Returns: True if operation was successfull, false if an error occured
| bool  getSockName (struct sockaddr* addr, socklen_t* addrlen) | getSockName | 
Retrive the address of the local socket of a connection
Parameters:
| addr | Address to fill in with the address of the local socket | 
| addrlen | Length of the address structure on input, length of address data on return | 
Returns: True if operation was successfull, false if an error occured
| bool  getSockName (SocketAddr& addr) | getSockName | 
Retrive the address of the local socket of a connection
Parameters:
| addr | Address to fill in with the address of the local socket | 
Returns: True if operation was successfull, false if an error occured
| bool  getPeerName (struct sockaddr* addr, socklen_t* addrlen) | getPeerName | 
Retrive the address of the remote socket of a connection
Parameters:
| addr | Address to fill in with the address of the remote socket | 
| addrlen | Length of the address structure on input, length of address data on return | 
Returns: True if operation was successfull, false if an error occured
| bool  getPeerName (SocketAddr& addr) | getPeerName | 
Retrive the address of the remote socket of a connection
Parameters:
| addr | Address to fill in with the address of the remote socket | 
Returns: True if operation was successfull, false if an error occured
| int  sendTo (const void* buffer, int length, const struct sockaddr* addr, socklen_t adrlen, int flags = 0) | sendTo | 
Send a message over a connected or unconnected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| addr | Address to send the message to, if NULL will behave like send() | 
| adrlen | Length of the address structure | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| inline int  sendTo (const void* buffer, int length, const SocketAddr& addr, int flags = 0) | sendTo | 
Send a message over a connected or unconnected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| addr | Address to send the message to | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| int  send (const void* buffer, int length, int flags = 0) | send | 
Send a message over a connected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| int  writeData (const void* buffer, int length) | writeData | 
[virtual]
Write data to a connected stream socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
Returns: Number of bytes transferred, socketError() if an error occurred
Reimplemented from Stream.
| int  recvFrom (void* buffer, int length, struct sockaddr* addr = 0, socklen_t* adrlen = 0, int flags = 0) | recvFrom | 
Receive a message from a connected or unconnected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| addr | Address to fill in with the address of the incoming data | 
| adrlen | Length of the address structure on input, length of address data on return | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| int  recvFrom (void* buffer, int length, SocketAddr& addr, int flags = 0) | recvFrom | 
Receive a message from a connected or unconnected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| addr | Address to fill in with the address of the incoming data | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| int  recv (void* buffer, int length, int flags = 0) | recv | 
Receive a message from a connected socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
| flags | Operating system specific bit flags that change the behaviour | 
Returns: Number of bytes transferred, socketError() if an error occurred
| int  readData (void* buffer, int length) | readData | 
[virtual]
Receive data from a connected stream socket
Parameters:
| buffer | Buffer for data transfer | 
| length | Length of the buffer | 
Returns: Number of bytes transferred, socketError() if an error occurred
Reimplemented from Stream.
| bool  select (bool* readok, bool* writeok, bool* except, struct timeval* timeout = 0) | select | 
Determines the availability to perform synchronous I/O of the socket
Parameters:
| readok | Address of a boolean variable to fill with readability status | 
| writeok | Address of a boolean variable to fill with writeability status | 
| except | Address of a boolean variable to fill with exceptions status | 
| timeout | Maximum time until the method returns, NULL for blocking | 
Returns: True if operation was successfull, false if an error occured
| bool  select (bool* readok, bool* writeok, bool* except, int64_t timeout) | select | 
Determines the availability to perform synchronous I/O of the socket
Parameters:
| readok | Address of a boolean variable to fill with readability status | 
| writeok | Address of a boolean variable to fill with writeability status | 
| except | Address of a boolean variable to fill with exceptions status | 
| timeout | Maximum time until the method returns, -1 for blocking | 
Returns: True if operation was successfull, false if an error occured
| bool  installFilter (SocketFilter* filter) | installFilter | 
Install a new packet filter in the socket
Parameters:
| filter | Pointer to the packet filter to install | 
Returns: True if the filter was installed
| void  removeFilter (SocketFilter* filter, bool delobj = false) | removeFilter | 
Removes a packet filter and optionally destroys it
Parameters:
| filter | Pointer to the packet filter to remove from socket | 
| delobj | Set to true to also delete the filter | 
| void  clearFilters () | clearFilters | 
Removes and destroys all packet filters
| void  timerTick (const Time& when) | timerTick | 
[virtual]
Run whatever actions required on idle thread runs. The default implementation calls SocketFilter::timerTick() for all installed filters.
Parameters:
| when | Time when the idle run started | 
| bool  createPair (Socket& sock1, Socket& sock2, int domain = AF_UNIX) | createPair | 
[static]
Create a pair of bidirectionally connected sockets
Parameters:
| sock1 | Reference to first Socket to be paired | 
| sock2 | Reference to second Socket to be paired | 
| domain | Communication domain for the sockets (protocol family) | 
Returns: True is the stream pair was created successfully
| void  copyError () | copyError | 
[protected]
Copy the last error code from the operating system
| bool  checkError (int retcode, bool strict = false) | checkError | 
[protected]
Copy the last error code from the operating system if an error occured, clear if not
Parameters:
| retcode | Operation return code to check, 0 for success | 
| strict | True to consider errors only return codes of socketError() | 
Returns: True if operation succeeded (retcode == 0), false otherwise
| bool  applyFilters (void* buffer, int length, int flags, const struct sockaddr* addr = 0, socklen_t adrlen = 0) | applyFilters | 
[protected]
Apply installed filters to a received block of data
Parameters:
| buffer | Buffer for received data | 
| length | Length of the data in buffer | 
| flags | Operating system specific bit flags of the operation | 
| addr | Address of the incoming data, may be NULL | 
| adrlen | Length of the valid data in address structure | 
Returns: True if one of the filters claimed the data
| SOCKET m_handle | m_handle | 
[protected]
| ObjList m_filters | m_filters | 
[protected]
| Generated by: root on dragoshel on Fri Aug 24 11:49:48 2007, using kdoc 2.0a54. |