scim 1.4.18
scim::Socket Class Reference

Socket communication class. More...

#include <scim_socket.h>

Public Member Functions

 Socket (int id=-1)
 Create a Socket object from an already created socket_id.
 
 ~Socket ()
 Destructor.
 
bool valid () const
 Check if the socket is valid.
 
int read (void *buf, size_t size) const
 Read data from socket.
 
int read_with_timeout (void *buf, size_t size, int timeout) const
 read data from socket with a timeout.
 
int write (const void *buf, size_t size) const
 Write data to socket.
 
int wait_for_data (int timeout=-1) const
 Wait until there are some data ready to read.
 
int get_error_number () const
 Get the number of the last occurred error.
 
String get_error_message () const
 Get the message of the last occurred error.
 
int get_id () const
 Get the socket id.
 

Protected Member Functions

bool connect (const SocketAddress &addr) const
 Initiate a connection on a socket.
 
bool bind (const SocketAddress &addr) const
 Bind a socket to an address, used by SocketServer.
 
bool listen (int queue_length=5) const
 Listen for connections on a socket.
 
int accept () const
 Accept a connection on the socket, used by SocketServer.
 
bool create (SocketFamily family)
 Create a socket for specific family.
 
void close ()
 Close the socket.
 

Detailed Description

Socket communication class.

Class Socket provides basic operation of socket, such as bind connect, read, write etc.

This class object cannot be created directly by user. Only the object of its derived classes SocketServer and SocketClient can be created directly.

Constructor & Destructor Documentation

◆ Socket()

scim::Socket::Socket ( int id = -1)

Create a Socket object from an already created socket_id.

Parameters
idan file id of an existing socket.

◆ ~Socket()

scim::Socket::~Socket ( )

Destructor.

Member Function Documentation

◆ valid()

bool scim::Socket::valid ( ) const

Check if the socket is valid.

Returns
true if the socket is ready to read and write.

◆ read()

int scim::Socket::read ( void * buf,
size_t size ) const

Read data from socket.

Parameters
bufthe buffer to store the data.
sizesize of the buffer.
Returns
the amount of data actually read, -1 means error occurred.

◆ read_with_timeout()

int scim::Socket::read_with_timeout ( void * buf,
size_t size,
int timeout ) const

read data from socket with a timeout.

Parameters
bufthe buffer to store the data.
sizesize of the buffer, and the amount of data to be read.
timeouttime out in millisecond (1/1000 second), -1 means infinity.
Returns
the amount of data actually read, 0 means the connection is closed, -1 means error occurred.

◆ write()

int scim::Socket::write ( const void * buf,
size_t size ) const

Write data to socket.

Parameters
bufthe buffer stores the data.
sizesize of the data to be sent.
Returns
the amount of data acutally sent, or -1 if an error occurred.

◆ wait_for_data()

int scim::Socket::wait_for_data ( int timeout = -1) const

Wait until there are some data ready to read.

Parameters
timeouttime out in millisecond (1/1000 second), -1 means infinity.
Returns
> 0 if data is OK, == 0 if time is out, < 0 if an error occurred.

◆ get_error_number()

int scim::Socket::get_error_number ( ) const

Get the number of the last occurred error.

Returns
the standard errno value.

◆ get_error_message()

String scim::Socket::get_error_message ( ) const

Get the message of the last occurred error.

Returns
the error message of the last occurred error.

◆ get_id()

int scim::Socket::get_id ( ) const

Get the socket id.

Returns
the file id of this socket object.

◆ connect()

bool scim::Socket::connect ( const SocketAddress & addr) const
protected

Initiate a connection on a socket.

Parameters
addrthe address to be connected to.
Returns
true if success.

◆ bind()

bool scim::Socket::bind ( const SocketAddress & addr) const
protected

Bind a socket to an address, used by SocketServer.

Parameters
addrthe address to be binded to.
Returns
true if success.

◆ listen()

bool scim::Socket::listen ( int queue_length = 5) const
protected

Listen for connections on a socket.

Parameters
queue_lengththe length of the waiting queue.
Returns
true if success.

◆ accept()

int scim::Socket::accept ( ) const
protected

Accept a connection on the socket, used by SocketServer.

Returns
the id of the accepted client socket, or -1 if an error is occurred.

◆ create()

bool scim::Socket::create ( SocketFamily family)
protected

Create a socket for specific family.

Parameters
familythe family type.
Returns
true if success.

◆ close()

void scim::Socket::close ( )
protected

Close the socket.


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