libassa 3.5.1
|
#include <ConUDPSocket.h>
Public Member Functions | |
ConUDPSocket () | |
Constructor. | |
virtual | ~ConUDPSocket () |
Destructor. | |
bool | connect (const Address &peer_addr_) |
Connect socket to the peer. | |
void | unconnect () |
Unconnect connected socket. | |
int | read (char *buf_, const unsigned int size_) |
Read specified number of bytes off the socket. | |
int | write (const char *buf_=NULL, const unsigned int size_=0) |
Perform blocking write by writing packet of specified size. | |
virtual int | in_avail () const |
This function returns the number of characters immediately available in the get area of the underlying Socketbuf buffer without making a system call if Socket is doing buffering I/O. | |
![]() | |
UDPSocket () | |
Default constructor. | |
UDPSocket (const handler_t fd_) | |
Constructor. | |
virtual | ~UDPSocket () |
Destructor will close connection. | |
bool | open (const int domain_) |
Create socket. | |
bool | close () |
Close socket connection. | |
bool | bind (const Address &my_address_) |
Server in UDP client-server scenario has to bind socket to its local well-known port. | |
handler_t | getHandler () const |
Get socket file descriptor. | |
const int | getDomain () const |
Get socket domain type. | |
![]() | |
Socket () | |
Constructor. | |
virtual | ~Socket () |
Destructor. | |
int | getBytesAvail (void) const |
Return number of bytes available in socket receive buffer. | |
int | ignore (int n_=INT_MAX, int delim_=EOF) |
Extracts bytes and discards them. | |
virtual Streambuf * | rdbuf () |
Return a pointer to the Streambuf associated with the stream. | |
virtual Streambuf * | rdbuf (Streambuf *) |
Virtual function that sets new socket buffer and returns the old one. | |
virtual Socket & | flush () |
This function simply calls the public "synchronizing" function rdbuf()->pubsync() (assuming the associated streambuf object is present). | |
bool | turnOptionOn (opt_t opt_) |
Enable socket option. | |
bool | turnOptionOff (opt_t opt_) |
Disable socket option. | |
bool | setOption (opt_t opt_, int arg_) |
Set socket option to value required. | |
int | getOption (opt_t opt_) const |
Get current value of a socket option. | |
operator void * () const | |
Convertion to void* (for testing where bool is required) | |
bool | operator! () const |
Alias to fail() | |
iostate | rdstate () const |
Retrieve state of the socket. | |
void | clear (iostate state_=Socket::goodbit) |
Clear the socket state. Closed socket remains in bad state. | |
void | setstate (iostate flag_) |
Set socket state to flag_ by adding flag_ to the existing state. | |
bool | good () const |
Indicates no error on the socket. | |
bool | eof () const |
An earlier extraction operation has encountered the end of file of the input stream (peer closed its socket). | |
bool | fail () const |
Indicates that earlier extraction opeartion has failed to match the required pattern of input. | |
bool | bad () const |
Socket fd == -1 or read/write error occured or some loss of integrity on assosiated stream buffer. | |
void | dumpState () const |
Write state bits of the socket to the log file. | |
Socket & | operator>> (char &c) |
Input of built-in char type. The value will be XDR-decoded. | |
Socket & | operator>> (unsigned char &c_) |
Input of built-in u_char type. The value will be XDR-decoded. | |
Socket & | operator>> (signed char &c_) |
Input of built-in signed char type. The value will be XDR-decoded. | |
Socket & | operator>> (std::string &s_) |
Input of STL string type. The string content will be XDR-decoded. | |
Socket & | operator>> (short &n_) |
Input of built-in short type. The value will be XDR-decoded. | |
Socket & | operator>> (unsigned short &n_) |
Input of built-in u_short type. The value will be XDR-decoded. | |
Socket & | operator>> (int &n_) |
Input of built-in integer type. The value will be XDR-decoded. | |
Socket & | operator>> (unsigned int &n_) |
Input of built-in u_int type. The value will be XDR-decoded. | |
Socket & | operator>> (long &n_) |
Input of built-in long type. The value will be XDR-decoded. | |
Socket & | operator>> (unsigned long &n_) |
Input of built-in u_long type. The value will be XDR-decoded. | |
Socket & | operator>> (float &n_) |
Input of built-in float type. The value will be XDR-decoded. | |
Socket & | operator>> (double &n_) |
Input of built-in double type. The value will be XDR-decoded. | |
Socket & | operator<< (char c) |
Output of built-in char type. The value will be XDR-encoded. | |
Socket & | operator<< (unsigned char c_) |
Output of built-in u_char type. The value will be XDR-encoded. | |
Socket & | operator<< (signed char c_) |
Output of built-in signed char type. The value will be XDR-encoded. | |
Socket & | operator<< (const std::string &s_) |
Output of STL string type. The value will be XDR-encoded. | |
Socket & | operator<< (short n_) |
Output of built-in short type. The value will be XDR-encoded. | |
Socket & | operator<< (unsigned short n_) |
Output of built-in u_short type. The value will be XDR-encoded. | |
Socket & | operator<< (int n_) |
Output of built-in integer type. The value will be XDR-encoded. | |
Socket & | operator<< (unsigned int n_) |
Output of built-in u_int type. The value will be XDR-encoded. | |
Socket & | operator<< (long n_) |
Output of built-in long type. The value will be XDR-encoded. | |
Socket & | operator<< (unsigned long n_) |
Output of built-in u_long type. The value will be XDR-encoded. | |
Socket & | operator<< (float n_) |
Output of built-in float type. The value will be XDR-encoded. | |
Socket & | operator<< (double n_) |
Output of built-in double type. The value will be XDR-encoded. | |
Socket & | operator<< (Socket &(*f)(Socket &)) |
Manipulators plug-in operator. | |
Additional Inherited Members | |
![]() | |
enum | io_state_t { goodbit = 0 , eofbit = 1 , failbit = 2 , badbit = 4 } |
State bits: goodbit, eofbit, failbit, badbit. More... | |
enum | opt_t { reuseaddr , rcvlowat , sndlowat , nonblocking } |
Socket options. More... | |
typedef int | iostate |
typedef unsigned char | IOState |
![]() | |
static size_t | xdr_length (const std::string &s_) |
Give the true length of the XDR-encoded STL string. | |
static bool | is_little_endian () |
Determine the endianess of the platform we are on. | |
static void | close_handler (handler_t &socket_) |
Close socket endpoint in a portable way. | |
static string | decode_fcntl_flags (long mask_) |
Decipher flags packed into mask_ used in fcntl() call. | |
![]() | |
static const int | PGSIZE = 4096 |
Size of bytes of a kernel page. | |
![]() | |
void | setHandler (const int fd_) |
Set file descriptor. | |
void | setDomain (const int type_) |
Set socket domain type. | |
![]() | |
int | set_option (int level_, int optname_, int val_) |
Gateway method of setting socket options. | |
int | set_fd_options (long flags_) |
Gateway method for setting file descriptor options. | |
int | clear_fd_options (long flags_) |
Gateway method for clearing file descriptor options. | |
![]() | |
handler_t | m_fd |
File descriptor. | |
int | m_type |
Socket domain type. | |
IOState | m_state |
Control state of the socket. | |
Definition at line 24 of file ConUDPSocket.h.
|
inline |
Constructor.
Definition at line 27 of file ConUDPSocket.h.
References trace.
|
inlinevirtual |
Connect socket to the peer.
peer_addr_ | peer address |
Reimplemented from ASSA::Socket.
Definition at line 22 of file ConUDPSocket.cpp.
References connect(), ASSA::Socket::failbit, ASSA::UDPSocket::getHandler(), ASSA::Socket::setstate(), and trace.
Referenced by connect(), and unconnect().
This function returns the number of characters
immediately available in the get area of the underlying Socketbuf buffer without making a system call if Socket is doing buffering I/O.
It is certain that returned number of characters may be fetched without error, and without accessing any external device.
Implements ASSA::Socket.
Definition at line 63 of file ConUDPSocket.h.
Read specified number of bytes off the socket.
This function cannot be moved up in class hierarchy because IPv4 read() is very different from UDP read (one time shot).
buf_ | buffer to save received data into |
size_ | expected packet size |
Reimplemented from ASSA::Socket.
Definition at line 63 of file ConUDPSocket.cpp.
References ASSA::Socket::eofbit, ASSA::Socket::failbit, ASSA::UDPSocket::getHandler(), read(), and ASSA::Socket::setstate().
Referenced by read().
void ConUDPSocket::unconnect | ( | ) |
Unconnect connected socket.
Definition at line 36 of file ConUDPSocket.cpp.
References connect(), ASSA::UDPSocket::getDomain(), and trace.
Perform blocking write by writing packet of specified size.
buf_ | buffer to send |
size_ | packet size |
Reimplemented from ASSA::Socket.
Definition at line 79 of file ConUDPSocket.cpp.
References ASSA::UDPSocket::getHandler().