MRPT logo

mrpt::utils::CClientTCPSocket Class Reference

A TCP socket that can be connected to a TCP server, implementing MRPT's CStream interface for passing objects as well as generic read/write methods. More...

#include <mrpt/utils/CClientTCPSocket.h>

Inheritance diagram for mrpt::utils::CClientTCPSocket:

mrpt::utils::CStream

List of all members.

Public Member Functions

 CClientTCPSocket ()
 Default constructor.
 ~CClientTCPSocket ()
 Destructor.
void connect (const std::string &remotePartAddress, unsigned short remotePartTCPPort)
 Establishes a connection with a remote part.
bool isConnected ()
 Returns true if this objects represents a successfully connected socket.
void close ()
 Closes the connection.
void sendString (const std::string &str)
 Writes a string to the socket.
size_t Seek (long Offset, CStream::TSeekOrigin Origin=sFromBeginning)
 This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.
size_t getTotalBytesCount ()
 This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.
size_t getPosition ()
 This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.
size_t readAsync (void *Buffer, size_t Count, int timeoutStart_ms=-1, int timeoutBetween_ms=-1)
 A method for reading from the socket with an optional timeout.
size_t writeAsync (const void *Buffer, size_t Count, int timeout_ms=-1)
 A method for writing to the socket with optional timeouts.
bool sendMessage (const CMRPTMessage &outMsg)
 Send a message through the TCP stream.
bool receiveMessage (CMRPTMessage &inMsg, unsigned int timeoutStart_ms=100, unsigned int timeoutBetween_ms=1000)
 Waits for an incoming message through the TCP stream.

Protected Member Functions

size_t Read (void *Buffer, size_t Count)
 Introduces a virtual method responsible for reading from the stream (This method BLOCKS) This method is implemented as a call to "readAsync" with infinite timeouts.
size_t Write (const void *Buffer, size_t Count)
 Introduces a virtual method responsible for writing to the stream.
std::string getLastErrorStr ()
 Returns a description of the last error.

Protected Attributes

std::string m_remotePartIP
 The IP address of the remote part of the connection.
unsigned short m_remotePartPort
 The TCP port of the remote part of the connection.

Friends

class CServerTCPSocket


Detailed Description

A TCP socket that can be connected to a TCP server, implementing MRPT's CStream interface for passing objects as well as generic read/write methods.

Unless otherwise noticed, operations are blocking.

Definition at line 46 of file CClientTCPSocket.h.


Constructor & Destructor Documentation

mrpt::utils::CClientTCPSocket::CClientTCPSocket (  ) 

Default constructor.

See also:
connect

mrpt::utils::CClientTCPSocket::~CClientTCPSocket (  ) 

Destructor.


Member Function Documentation

void mrpt::utils::CClientTCPSocket::close (  ) 

Closes the connection.

void mrpt::utils::CClientTCPSocket::connect ( const std::string &  remotePartAddress,
unsigned short  remotePartTCPPort 
)

Establishes a connection with a remote part.

Parameters:
remotePartAddress This string can be a host name, like "server" or "www.mydomain.org", or an IP address "11.22.33.44".
remotePartTCPPort The port on the remote machine to connect to.
Exceptions:
This method raises an exception if an error is found with a textual description of the error.

std::string mrpt::utils::CClientTCPSocket::getLastErrorStr (  )  [protected]

Returns a description of the last error.

size_t mrpt::utils::CClientTCPSocket::getPosition (  )  [inline, virtual]

This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.

Implements mrpt::utils::CStream.

Definition at line 143 of file CClientTCPSocket.h.

References MRPT_TRY_END, MRPT_TRY_START, and THROW_EXCEPTION.

size_t mrpt::utils::CClientTCPSocket::getTotalBytesCount (  )  [inline, virtual]

This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.

Implements mrpt::utils::CStream.

Definition at line 134 of file CClientTCPSocket.h.

References MRPT_TRY_END, MRPT_TRY_START, and THROW_EXCEPTION.

bool mrpt::utils::CClientTCPSocket::isConnected (  ) 

Returns true if this objects represents a successfully connected socket.

size_t mrpt::utils::CClientTCPSocket::Read ( void *  Buffer,
size_t  Count 
) [protected, virtual]

Introduces a virtual method responsible for reading from the stream (This method BLOCKS) This method is implemented as a call to "readAsync" with infinite timeouts.

See also:
readAsync

Implements mrpt::utils::CStream.

size_t mrpt::utils::CClientTCPSocket::readAsync ( void *  Buffer,
size_t  Count,
int  timeoutStart_ms = -1,
int  timeoutBetween_ms = -1 
)

A method for reading from the socket with an optional timeout.

Parameters:
Buffer The destination of data.
Cound The number of bytes to read.
timeoutStart_ms The maximum timeout (in milliseconds) to wait for the starting of data from the other side.
timeoutBetween_ms The maximum timeout (in milliseconds) to wait for a chunk of data after a previous one. Set timeout's to -1 to block until the desired number of bytes are read, or an error happens.
Returns:
The number of actually read bytes.

bool mrpt::utils::CClientTCPSocket::receiveMessage ( CMRPTMessage inMsg,
unsigned int  timeoutStart_ms = 100,
unsigned int  timeoutBetween_ms = 1000 
)

Waits for an incoming message through the TCP stream.

Parameters:
inMsg The received message is placed here.
timeoutStart_ms The maximum timeout (in milliseconds) to wait for the starting of data from the other side.
timeoutBetween_ms The maximum timeout (in milliseconds) to wait for a chunk of data after a previous one.
Returns:
Returns false on any error (or timeout), or true if everything goes fine.

size_t mrpt::utils::CClientTCPSocket::Seek ( long  Offset,
CStream::TSeekOrigin  Origin = sFromBeginning 
) [inline, virtual]

This virtual method has no effect in this implementation over a TCP socket, and its use raises an exception.

Implements mrpt::utils::CStream.

Definition at line 124 of file CClientTCPSocket.h.

References MRPT_TRY_END, MRPT_TRY_START, MRPT_UNUSED_PARAM, and THROW_EXCEPTION.

bool mrpt::utils::CClientTCPSocket::sendMessage ( const CMRPTMessage outMsg  ) 

Send a message through the TCP stream.

Parameters:
outMsg The message to be shown.
Returns:
Returns false on any error, or true if everything goes fine.

void mrpt::utils::CClientTCPSocket::sendString ( const std::string &  str  ) 

Writes a string to the socket.

Exceptions:
std::exception On communication errors

size_t mrpt::utils::CClientTCPSocket::Write ( const void *  Buffer,
size_t  Count 
) [protected, virtual]

Introduces a virtual method responsible for writing to the stream.

Write attempts to write up to Count bytes to Buffer, and returns the number of bytes actually written. This method is implemented as a call to "writeAsync" with infinite timeouts.

See also:
writeAsync

Implements mrpt::utils::CStream.

size_t mrpt::utils::CClientTCPSocket::writeAsync ( const void *  Buffer,
size_t  Count,
int  timeout_ms = -1 
)

A method for writing to the socket with optional timeouts.

The method supports writing block by block as the socket allows us to write more data.

Parameters:
Buffer The data.
Cound The number of bytes to write.
timeout_ms The maximum timeout (in milliseconds) to wait for the socket to be available for writing (for each block). Set timeout's to -1 to block until the desired number of bytes are written, or an error happens.
Returns:
The number of actually written bytes.


Friends And Related Function Documentation

friend class CServerTCPSocket [friend]

Definition at line 48 of file CClientTCPSocket.h.


Member Data Documentation

The IP address of the remote part of the connection.

Definition at line 67 of file CClientTCPSocket.h.

The TCP port of the remote part of the connection.

Definition at line 71 of file CClientTCPSocket.h.




Page generated by Doxygen 1.5.9 for MRPT 0.6.5 SVN: at Sun Aug 2 11:41:17 CDT 2009