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.

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().

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