![]() |
SUMO - Simulation of Urban MObility
|
#include <socket.h>
Public Member Functions | |
void | accept () throw ( SocketException ) |
Wait for a incoming connection to port_. More... | |
void | close () |
void | connect () throw ( SocketException ) |
Connects to host_:port_. More... | |
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_. More... | |
bool | receiveExact (Storage &) throw ( SocketException ) |
Receive a complete TraCI message from Socket::socket_. More... | |
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. More... | |
Socket (int port) | |
Constructor that prepare for accepting a connection on given port. More... | |
bool | verbose () |
~Socket () | |
Destructor. More... | |
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. More... | |
void | receiveComplete (unsigned char *const buffer, std::size_t len) const |
Receive len bytes from Socket::socket_. More... | |
size_t | recvAndCheck (unsigned char *const buffer, std::size_t len) const |
Receive up to len available bytes from Socket::socket_. More... | |
Static Protected Attributes | |
static const int | lengthLen = 4 |
Length of the message length part of a TraCI message. More... | |
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 |
tcpip::Socket::Socket | ( | std::string | host, |
int | port | ||
) |
Constructor that prepare to connect to host:port.
Definition at line 72 of file socket.cpp.
References init().
tcpip::Socket::Socket | ( | int | port | ) |
Constructor that prepare for accepting a connection on given port.
Definition at line 85 of file socket.cpp.
References init().
tcpip::Socket::~Socket | ( | ) |
Destructor.
Definition at line 116 of file socket.cpp.
References BailOnSocketError(), close(), server_socket_, and socket_.
Referenced by init().
void tcpip::Socket::accept | ( | ) | ||
throw | ( | SocketException | ||
) |
Wait for a incoming connection to port_.
Definition at line 221 of file socket.cpp.
References BailOnSocketError(), blocking_, port_, server_socket_, set_blocking(), and socket_.
Referenced by atoaddr(), and TraCIServer::TraCIServer().
|
private |
Definition at line 195 of file socket.cpp.
References accept().
Referenced by connect(), and datawaiting().
|
private |
Definition at line 146 of file socket.cpp.
References port().
Referenced by accept(), connect(), datawaiting(), init(), recvAndCheck(), send(), set_blocking(), and ~Socket().
void tcpip::Socket::close | ( | ) |
Definition at line 345 of file socket.cpp.
References send(), and socket_.
Referenced by TraCIAPI::close(), connect(), OutputDevice_Network::~OutputDevice_Network(), ~Socket(), and TraCIServer::~TraCIServer().
void tcpip::Socket::connect | ( | ) | ||
throw | ( | SocketException | ||
) |
Connects to host_:port_.
Definition at line 314 of file socket.cpp.
References atoaddr(), BailOnSocketError(), close(), host_, port_, and socket_.
Referenced by TraCIAPI::connect(), OutputDevice_Network::OutputDevice_Network(), receive(), and set_blocking().
|
private |
Definition at line 170 of file socket.cpp.
References atoaddr(), and BailOnSocketError().
bool tcpip::Socket::has_client_connection | ( | ) | const |
Definition at line 526 of file socket.cpp.
References is_blocking(), and socket_.
Referenced by receiveExact().
|
private |
Definition at line 99 of file socket.cpp.
References BailOnSocketError(), and ~Socket().
Referenced by Socket().
bool tcpip::Socket::is_blocking | ( | ) | ||
throw | ( | |||
) |
Definition at line 535 of file socket.cpp.
References blocking_.
Referenced by has_client_connection().
int tcpip::Socket::port | ( | ) |
Definition at line 161 of file socket.cpp.
References datawaiting(), and port_.
Referenced by BailOnSocketError().
|
protected |
Print label
and buffer
to stderr if Socket::verbose_ is set.
Definition at line 449 of file socket.cpp.
References receive(), and verbose_.
Referenced by receive(), receiveComplete(), receiveExact(), and send().
std::vector< unsigned char > tcpip::Socket::receive | ( | int | bufSize = 2048 | ) | |
throw | ( | SocketException | |||
) |
Receive up to bufSize
available bytes from Socket::socket_.
Definition at line 467 of file socket.cpp.
References connect(), datawaiting(), printBufferOnVerbose(), receiveExact(), recvAndCheck(), and socket_.
Referenced by printBufferOnVerbose().
|
protected |
Receive len
bytes from Socket::socket_.
Definition at line 434 of file socket.cpp.
References printBufferOnVerbose(), and recvAndCheck().
Referenced by receiveExact(), and recvAndCheck().
bool tcpip::Socket::receiveExact | ( | Storage & | msg | ) | |
throw | ( | SocketException | |||
) |
Receive a complete TraCI message from Socket::socket_.
Definition at line 493 of file socket.cpp.
References has_client_connection(), lengthLen, printBufferOnVerbose(), tcpip::Storage::readInt(), and receiveComplete().
Referenced by TraCIAPI::check_resultState(), TraCIServer::processCommandsUntilSimStep(), and receive().
|
protected |
Receive up to len
available bytes from Socket::socket_.
Definition at line 414 of file socket.cpp.
References BailOnSocketError(), receiveComplete(), and socket_.
Referenced by receive(), receiveComplete(), and sendExact().
void tcpip::Socket::send | ( | const std::vector< unsigned char > & | buffer | ) | |
throw | ( | SocketException | |||
) |
Definition at line 363 of file socket.cpp.
References BailOnSocketError(), printBufferOnVerbose(), sendExact(), and socket_.
Referenced by close(), OutputDevice_Network::postWriteHook(), and sendExact().
void tcpip::Socket::sendExact | ( | const Storage & | b | ) | |
throw | ( | SocketException | |||
) |
Definition at line 394 of file socket.cpp.
References tcpip::Storage::begin(), tcpip::Storage::end(), lengthLen, recvAndCheck(), send(), and tcpip::Storage::writeInt().
Referenced by TraCIServer::close(), TraCIServer::processCommandsUntilSimStep(), send(), TraCIAPI::send_commandClose(), TraCIAPI::send_commandGetVariable(), TraCIAPI::send_commandSetValue(), TraCIAPI::send_commandSimulationStep(), TraCIAPI::send_commandSubscribeObjectContext(), and TraCIAPI::send_commandSubscribeObjectVariable().
void tcpip::Socket::set_blocking | ( | bool | blocking | ) | |
throw | ( | SocketException | |||
) |
Definition at line 286 of file socket.cpp.
References BailOnSocketError(), blocking_, connect(), and server_socket_.
Referenced by accept().
|
private |
Definition at line 137 of file socket.h.
Referenced by accept(), is_blocking(), and set_blocking().
|
private |
|
staticprotected |
Length of the message length part of a TraCI message.
Definition at line 115 of file socket.h.
Referenced by receiveExact(), and sendExact().
|
private |
|
private |
Definition at line 136 of file socket.h.
Referenced by accept(), set_blocking(), and ~Socket().
|
private |
Definition at line 135 of file socket.h.
Referenced by accept(), close(), connect(), has_client_connection(), receive(), recvAndCheck(), send(), and ~Socket().
|
private |
Definition at line 139 of file socket.h.
Referenced by printBufferOnVerbose().