SUMO - Simulation of Urban MObility

tcpip::Socket Class Reference

#include <socket.h>

Public Member Functions

void accept () throw ( SocketException )
 Wait for a incoming connection to port_.
void close ()
void connect () throw ( SocketException )
 Connects to host_:port_.
bool has_client_connection () const
bool is_blocking () throw ()
int port ()
std::vector< unsigned char > receive (int bufSize=2048) throw ( SocketException )
 Receive up to bufSize available bytes from Socket::socket_.
bool receiveExact (Storage &) throw ( SocketException )
 Receive a complete TraCI message from Socket::socket_.
void send (const std::vector< unsigned char > &buffer) throw ( SocketException )
void sendExact (const Storage &) throw ( SocketException )
void set_blocking (bool) throw ( SocketException )
void set_verbose (bool newVerbose)
 Socket (std::string host, int port)
 Constructor that prepare to connect to host:port.
 Socket (int port)
 Constructor that prepare for accepting a connection on given port.
bool verbose ()
 ~Socket ()
 Destructor.

Protected Member Functions

void printBufferOnVerbose (const std::vector< unsigned char > buffer, const std::string &label) const
 Print label and buffer to stderr if Socket::verbose_ is set.
void receiveComplete (unsigned char *const buffer, std::size_t len) const
 Receive len bytes from Socket::socket_.
size_t recvAndCheck (unsigned char *const buffer, std::size_t len) const
 Receive up to len available bytes from Socket::socket_.

Static Protected Attributes

static const int lengthLen = 4
 Length of the message length part of a TraCI message.

Private Member Functions

bool atoaddr (std::string, struct in_addr &addr)
void BailOnSocketError (std::string) const throw ( SocketException )
bool datawaiting (int sock) const throw ()
void init ()

Private Attributes

bool blocking_
std::string host_
int port_
int server_socket_
int socket_
bool verbose_

Friends

class Response

Detailed Description

Definition at line 78 of file socket.h.


Constructor & Destructor Documentation

tcpip::Socket::Socket ( std::string  host,
int  port 
)

Constructor that prepare to connect to host:port.

Definition at line 73 of file socket.cpp.

References init().

tcpip::Socket::Socket ( int  port)

Constructor that prepare for accepting a connection on given port.

Definition at line 86 of file socket.cpp.

References init().

tcpip::Socket::~Socket ( )

Destructor.

Definition at line 117 of file socket.cpp.

References close(), server_socket_, and socket_.


Member Function Documentation

void tcpip::Socket::accept ( ) throw ( SocketException )

Wait for a incoming connection to port_.

Definition at line 222 of file socket.cpp.

References BailOnSocketError(), blocking_, port_, server_socket_, set_blocking(), and socket_.

bool tcpip::Socket::atoaddr ( std::string  address,
struct in_addr &  addr 
) [private]

Definition at line 196 of file socket.cpp.

Referenced by connect().

void tcpip::Socket::BailOnSocketError ( std::string  context) const throw ( SocketException ) [private]

Definition at line 147 of file socket.cpp.

Referenced by accept(), connect(), init(), and recvAndCheck().

void tcpip::Socket::close ( )
void tcpip::Socket::connect ( ) throw ( SocketException )

Connects to host_:port_.

Definition at line 315 of file socket.cpp.

References atoaddr(), BailOnSocketError(), host_, port_, and socket_.

Referenced by testclient::TraCITestClient::connect(), and OutputDevice_Network::OutputDevice_Network().

bool tcpip::Socket::datawaiting ( int  sock) const throw () [private]

Definition at line 171 of file socket.cpp.

bool tcpip::Socket::has_client_connection ( ) const

Definition at line 527 of file socket.cpp.

References socket_.

void tcpip::Socket::init ( ) [private]

Definition at line 100 of file socket.cpp.

References BailOnSocketError().

Referenced by Socket().

bool tcpip::Socket::is_blocking ( ) throw ()

Definition at line 536 of file socket.cpp.

References blocking_.

int tcpip::Socket::port ( )

Definition at line 162 of file socket.cpp.

References port_.

void tcpip::Socket::printBufferOnVerbose ( const std::vector< unsigned char >  buffer,
const std::string &  label 
) const [protected]

Print label and buffer to stderr if Socket::verbose_ is set.

Definition at line 450 of file socket.cpp.

References verbose_.

vector< unsigned char > tcpip::Socket::receive ( int  bufSize = 2048) throw ( SocketException )

Receive up to bufSize available bytes from Socket::socket_.

Definition at line 468 of file socket.cpp.

void tcpip::Socket::receiveComplete ( unsigned char *const  buffer,
std::size_t  len 
) const [protected]

Receive len bytes from Socket::socket_.

Definition at line 435 of file socket.cpp.

References recvAndCheck().

size_t tcpip::Socket::recvAndCheck ( unsigned char *const  buffer,
std::size_t  len 
) const [protected]

Receive up to len available bytes from Socket::socket_.

Definition at line 415 of file socket.cpp.

References BailOnSocketError(), and socket_.

Referenced by receiveComplete().

void tcpip::Socket::send ( const std::vector< unsigned char > &  buffer) throw ( SocketException )

Definition at line 364 of file socket.cpp.

Referenced by OutputDevice_Network::postWriteHook().

void tcpip::Socket::set_blocking ( bool  blocking) throw ( SocketException )

Definition at line 287 of file socket.cpp.

Referenced by accept().

void tcpip::Socket::set_verbose ( bool  newVerbose) [inline]

Definition at line 111 of file socket.h.

References verbose_.

bool tcpip::Socket::verbose ( ) [inline]

Definition at line 110 of file socket.h.

References verbose_.


Friends And Related Function Documentation

friend class Response [friend]

Definition at line 80 of file socket.h.


Field Documentation

Definition at line 137 of file socket.h.

Referenced by accept(), and is_blocking().

std::string tcpip::Socket::host_ [private]

Definition at line 133 of file socket.h.

Referenced by connect().

const int tcpip::Socket::lengthLen = 4 [static, protected]

Length of the message length part of a TraCI message.

Definition at line 115 of file socket.h.

int tcpip::Socket::port_ [private]

Definition at line 134 of file socket.h.

Referenced by accept(), connect(), and port().

Definition at line 136 of file socket.h.

Referenced by accept(), and ~Socket().

int tcpip::Socket::socket_ [private]

Definition at line 135 of file socket.h.

Referenced by accept(), close(), connect(), has_client_connection(), recvAndCheck(), and ~Socket().

Definition at line 139 of file socket.h.

Referenced by printBufferOnVerbose(), set_verbose(), and verbose().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines