- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | List of all members
GNet::StreamSocket Class Reference

A derivation of Socket for a stream socket. More...

`#include <gsocket.h>`

Inheritance diagram for GNet::StreamSocket:

## Public Types
typedef Socket::size_type | size_type
typedef Socket::ssize_type | ssize_type
Public Types inherited from GNet::Socket
typedef size_t | size_type
typedef ssize_t | ssize_type

## Public Member Functions
| StreamSocket ()
| Default constructor. Check with valid(). More...
| StreamSocket (const Address &address_hint)
| Constructor with a hint of the bind()/connect() address to be used later. More...
virtual | ~StreamSocket ()
| Destructor. More...
ssize_type | read (char *buffer, size_type buffer_length)
| Reads data from the socket stream. More...
AcceptPair | accept ()
| Accepts an incoming connection, returning a new()ed socket and the peer address. More...
Public Member Functions inherited from GNet::Socket
virtual | ~Socket ()
| Destructor. More...
bool | valid () const
| Returns true if the socket handle is valid (open). More...
std::pair< bool, Address > | getLocalAddress () const
| Retrieves local address of the socket. More...
std::pair< bool, Address > | getPeerAddress () const
| Retrieves address of socket's peer. More...
bool | hasPeer () const
| Returns true if the socket has a valid peer. More...
bool | bind (const Address &address)
| Binds the socket with an INADDR_ANY network address and the port number taken from the given address. More...
bool | canBindHint (const Address &address)
| Returns true if the socket can probably be bound with the given address. More...
bool | connect (const Address &addr, bool *done=NULL)
| Initiates a connection to (or association with) the given address. More...
bool | listen (int backlog=1)
| Starts the socket listening on the bound address for incoming connections or incoming datagrams. More...
virtual ssize_type | write (const char *buf, size_type len)
| Sends data. More...
bool | eWouldBlock ()
| Returns true if the previous socket operation failed with the EWOULDBLOCK or EGAIN error status. More...
bool | eInProgress ()
| Returns true if the previous socket operation failed with the EINPROGRESS error status. More...
bool | eMsgSize ()
| Returns true if the previous socket operation failed with the EMSGSIZE error status. More...
void | addReadHandler (EventHandler &handler)
| Adds this socket to the event source list so that the given handler receives read events. More...
void | dropReadHandler ()
| Reverses addReadHandler(). More...
void | addWriteHandler (EventHandler &handler)
| Adds this socket to the event source list so that the given handler receives write events when flow control is released. More...
void | dropWriteHandler ()
| Reverses addWriteHandler(). More...
void | addExceptionHandler (EventHandler &handler)
| Adds this socket to the event source list so that the given handler receives exception events. More...
void | dropExceptionHandler ()
| Reverses addExceptionHandler(). More...
std::string | asString () const
| Returns the socket handle as a string. More...
std::string | reasonString () const
| Returns the failure reason as a string. More...
void | shutdown (bool for_writing=true)
| Shuts the socket for writing (or reading). More...
int | fd (Credentials) const
| Returns the socket descriptor as an integer. More...

## Additional Inherited Members
Protected Member Functions inherited from GNet::Socket
| Socket (int domain, int type, int protocol)
| Constructor used by derived classes. More...
| Socket (Descriptor s)
| Constructor which creates a socket object from an existing socket handle. More...
void | prepare ()
void | setFault ()
void | setNoLinger ()
void | setReuse ()
void | setKeepAlive ()
std::pair< bool, Address > | getAddress (bool) const
Static Protected Member Functions inherited from GNet::Socket
static bool | valid (Descriptor s)
static int | reason ()
static bool | error (int rc)
static bool | sizeError (ssize_type size)
Protected Attributes inherited from GNet::Socket
int | m_reason
Descriptor | m_socket

## Detailed Description

A derivation of Socket for a stream socket.

Definition at line 270 of file gsocket.h.

## Member Typedef Documentation

typedef Socket::size_type GNet::StreamSocket::size_type

Definition at line 273 of file gsocket.h.

typedef Socket::ssize_type GNet::StreamSocket::ssize_type

Definition at line 274 of file gsocket.h.

## Constructor & Destructor Documentation

GNet::StreamSocket::StreamSocket | ( |  | ) |

Default constructor. Check with valid().

Definition at line 313 of file gsocket.cpp.

References GNet::Socket::setKeepAlive(), and GNet::Socket::setNoLinger().

GNet::StreamSocket::StreamSocket | ( | const Address & | address_hint | ) |
| explicit

Constructor with a hint of the bind()/connect() address to be used later.

Check with valid().

Definition at line 320 of file gsocket.cpp.

References GNet::Socket::setKeepAlive(), and GNet::Socket::setNoLinger().

GNet::StreamSocket::~StreamSocket | ( |  | ) |
| virtual

Destructor.

Definition at line 332 of file gsocket.cpp.

## Member Function Documentation

GNet::AcceptPair GNet::StreamSocket::accept | ( |  | ) |

Accepts an incoming connection, returning a new()ed socket and the peer address.

Definition at line 354 of file gsocket.cpp.

References GNet::Address::displayString(), GNet::AcceptPair::first, G_DEBUG, GNet::Address::invalidAddress(), and GNet::AcceptPair::second.

GNet::Socket::ssize_type GNet::StreamSocket::read | ( | char * | buffer,
|  | size_type | buffer_length
| ) |  |

Reads data from the socket stream.

Returns 0 if the connection has been lost. Returns -1 on error, or if there is nothing to read (eWouldBlock() true). Note that having nothing to read is not an error, even after getting a read event.

Definition at line 336 of file gsocket.cpp.

References G_ASSERT, and G_DEBUG.

The documentation for this class was generated from the following files:

- gsocket.h
- gsocket.cpp