#include <mrpt/utils/CClientTCPSocket.h>
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 CMessage &outMsg) |
Send a message through the TCP stream. | |
bool | receiveMessage (CMessage &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 |
Unless otherwise noticed, operations are blocking.
Definition at line 46 of file CClientTCPSocket.h.
mrpt::utils::CClientTCPSocket::CClientTCPSocket | ( | ) |
mrpt::utils::CClientTCPSocket::~CClientTCPSocket | ( | ) |
Destructor.
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.
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. |
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.
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.
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. |
bool mrpt::utils::CClientTCPSocket::receiveMessage | ( | CMessage & | inMsg, | |
unsigned int | timeoutStart_ms = 100 , |
|||
unsigned int | timeoutBetween_ms = 1000 | |||
) |
Waits for an incoming message through the TCP stream.
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. |
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 CMessage & | outMsg | ) |
Send a message through the TCP stream.
outMsg | The message to be shown. |
void mrpt::utils::CClientTCPSocket::sendString | ( | const std::string & | str | ) |
Writes a string to the socket.
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.
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.
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. |
friend class CServerTCPSocket [friend] |
Definition at line 48 of file CClientTCPSocket.h.
std::string mrpt::utils::CClientTCPSocket::m_remotePartIP [protected] |
The IP address of the remote part of the connection.
Definition at line 67 of file CClientTCPSocket.h.
unsigned short mrpt::utils::CClientTCPSocket::m_remotePartPort [protected] |
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.7.1 SVN: at Mon Aug 17 22:21:34 EDT 2009 |