VideoTools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
GNet::DatagramSocket Class Reference

A derivation of GNet::Socket for a datagram socket. More...

#include <gsocket.h>

+ Inheritance diagram for GNet::DatagramSocket:

Public Member Functions

 DatagramSocket (int address_domain)
 Constructor with a hint of a local address.
 
virtual ~DatagramSocket ()
 Destructor.
 
virtual ssize_type read (char *buffer, size_type len)
 Override from Socket::read().
 
virtual ssize_type write (const char *buffer, size_type len)
 Override from Socket::write().
 
ssize_type readfrom (char *buffer, size_type len, Address &src)
 Reads a datagram and returns the sender's address by reference. More...
 
ssize_type writeto (const char *buffer, size_type len, const Address &dst)
 Sends a datagram to the given address. More...
 
void disconnect ()
 Releases the association between two datagram endpoints reversing the effect of the previous Socket::connect(). More...
 
- Public Member Functions inherited from GNet::Socket
virtual ~Socket ()
 Destructor.
 
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...
 
void bind (const Address &)
 Binds the socket with the given address.
 
bool bind (const Address &, NoThrow)
 No-throw overload. Returns false on error.
 
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=nullptr)
 Initiates a connection to (or association with) the given address. More...
 
void listen (int backlog=1)
 Starts the socket listening on the bound address for incoming connections or incoming datagrams. More...
 
virtual SOCKET fd () const
 Returns the socket descriptor. Override from G::ReadWrite.
 
virtual bool eWouldBlock ()
 Returns true if the previous socket operation failed because the socket would have blocked. 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().
 
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().
 
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().
 
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).
 
- Public Member Functions inherited from G::ReadWrite
virtual ~ReadWrite ()
 Destructor.
 

Additional Inherited Members

- Public Types inherited from GNet::Socket
typedef G::ReadWrite::size_type size_type
 
typedef G::ReadWrite::ssize_type ssize_type
 
- Public Types inherited from G::ReadWrite
typedef size_t size_type
 
typedef ssize_t ssize_type
 
- 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 saveReason ()
 
void saveReason () const
 
void prepare ()
 
void setFault ()
 
void setOptionNoLinger ()
 
void setOptionReuse ()
 
void setOptionExclusive ()
 
void setOptionPureV6 (bool)
 
bool setOptionPureV6 (bool, NoThrow)
 
void setOptionKeepAlive ()
 
void setOption (int, const char *, int, int)
 
bool setOption (int, const char *, int, int, NoThrow)
 
bool setOptionImp (int, int, const void *, socklen_t)
 
std::pair< bool, AddressgetAddress (bool) const
 
- Static Protected Member Functions inherited from GNet::Socket
static int reason ()
 
static std::string reasonStringImp (int)
 
static bool error (int rc)
 
static bool sizeError (ssize_type size)
 
- Protected Attributes inherited from GNet::Socket
int m_reason
 
std::string m_reason_string
 
int m_domain
 
Descriptor m_socket
 

Detailed Description

A derivation of GNet::Socket for a datagram socket.

Definition at line 279 of file gsocket.h.

Member Function Documentation

void GNet::DatagramSocket::disconnect ( )

Releases the association between two datagram endpoints reversing the effect of the previous Socket::connect().

Definition at line 350 of file gsocket.cpp.

GNet::Socket::ssize_type GNet::DatagramSocket::readfrom ( char *  buffer,
size_type  len,
Address src 
)

Reads a datagram and returns the sender's address by reference.

If connect() has been used then only datagrams from the address specified in the connect() call will be received.

Definition at line 371 of file gsocket.cpp.

GNet::Socket::ssize_type GNet::DatagramSocket::writeto ( const char *  buffer,
size_type  len,
const Address dst 
)

Sends a datagram to the given address.

This should be used if there is no connect() assocation in effect.

Definition at line 386 of file gsocket.cpp.


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