|
SUMO - Simulation of Urban MObility
|
#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 |
| 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_.
| 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 | ( | ) |
Definition at line 346 of file socket.cpp.
References socket_.
Referenced by testclient::TraCITestClient::close(), OutputDevice_Network::~OutputDevice_Network(), and ~Socket().
| 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] |
| 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().
| bool tcpip::Socket::receiveExact | ( | Storage & | msg | ) | throw ( SocketException ) |
Receive a complete TraCI message from Socket::socket_.
Definition at line 494 of file socket.cpp.
Referenced by testclient::TraCITestClient::commandClose(), testclient::TraCITestClient::commandDistanceRequest(), testclient::TraCITestClient::commandGetVariable(), testclient::TraCITestClient::commandGetVariablePlus(), testclient::TraCITestClient::commandPositionConversion(), testclient::TraCITestClient::commandSetValue(), testclient::TraCITestClient::commandSimulationStep2(), and testclient::TraCITestClient::commandSubscribeVariable().
| 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::sendExact | ( | const Storage & | b | ) | throw ( SocketException ) |
Definition at line 395 of file socket.cpp.
Referenced by testclient::TraCITestClient::commandClose(), testclient::TraCITestClient::commandDistanceRequest(), testclient::TraCITestClient::commandGetVariable(), testclient::TraCITestClient::commandGetVariablePlus(), testclient::TraCITestClient::commandPositionConversion(), testclient::TraCITestClient::commandSetValue(), testclient::TraCITestClient::commandSimulationStep2(), and testclient::TraCITestClient::commandSubscribeVariable().
| 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] |
| bool tcpip::Socket::verbose | ( | ) | [inline] |
bool tcpip::Socket::blocking_ [private] |
Definition at line 137 of file socket.h.
Referenced by accept(), and is_blocking().
std::string tcpip::Socket::host_ [private] |
const int tcpip::Socket::lengthLen = 4 [static, protected] |
int tcpip::Socket::port_ [private] |
int tcpip::Socket::server_socket_ [private] |
int tcpip::Socket::socket_ [private] |
Definition at line 135 of file socket.h.
Referenced by accept(), close(), connect(), has_client_connection(), recvAndCheck(), and ~Socket().
bool tcpip::Socket::verbose_ [private] |
Definition at line 139 of file socket.h.
Referenced by printBufferOnVerbose(), set_verbose(), and verbose().