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:
GNet::Socket

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, AddressgetLocalAddress () const
 Retrieves local address of the socket. More...
 
std::pair< bool, AddressgetPeerAddress () 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, AddressgetAddress (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

Definition at line 273 of file gsocket.h.

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: