#include <source/ariba/utility/transport/rfcomm/rfcomm.hpp>
Inherits ariba::transport::transport_protocol.
Private Member Functions | |
virtual use_logging_h(rfcomm) public | ~rfcomm () |
virtual void | start () |
virtual void | stop () |
virtual void | send (const address_v *remote, const uint8_t *data, size_t size) |
virtual void | send (const endpoint_set &endpoints, const uint8_t *data, size_t size) |
virtual void | terminate (const address_v *remote) |
virtual void | register_listener (transport_listener *listener) |
void | start_accept () |
void | handle_accept (const error_code &error, link_info *info) |
void | start_read (link_info *info) |
void | handle_read_header (const error_code &error, size_t bytes, link_info *info) |
void | handle_read_data (const error_code &error, size_t bytes, link_info *info) |
void | handle_connect (const error_code &error, link_info *info) |
void | start_write (link_info *info) |
void | handle_write_data (const error_code &error, size_t bytes, link_info *info, size_t size, uint8_t *buffer) |
void | shutdown (link_info *info) |
Private Attributes | |
uint16_t | channel |
boost::mutex | links_mutex |
vector< link_info * > | links |
io_service & | io |
transport_listener * | listener |
bluetooth::rfcomm::acceptor * | acceptor |
int | accept_retries |
link_data * | send_data |
Definition at line 29 of file rfcomm.hpp.
ariba::transport::rfcomm::~rfcomm | ( | ) | [private, virtual] |
Definition at line 97 of file rfcomm.cpp.
References ariba::transport::detail::asio_io_service::free().
void ariba::transport::rfcomm::handle_accept | ( | const error_code & | error, | |
link_info * | info | |||
) | [private] |
Definition at line 219 of file rfcomm.cpp.
References accept_retries, ariba::transport::convert(), links, links_mutex, ariba::transport::link_info::local, logging_debug, logging_error, ariba::transport::link_info::remote, ariba::transport::link_info::socket, start_accept(), start_read(), start_write(), ariba::addressing::rfcomm_endpoint::to_string(), and ariba::transport::link_info::up.
Referenced by start_accept().
void ariba::transport::rfcomm::handle_connect | ( | const error_code & | error, | |
link_info * | info | |||
) | [private] |
Definition at line 256 of file rfcomm.cpp.
References ariba::transport::link_info::connect_retries, ariba::transport::link_info::connecting, ariba::transport::convert(), links, links_mutex, ariba::transport::link_info::local, logging_debug, logging_error, ariba::transport::link_info::reinit(), ariba::transport::link_info::remote, ariba::transport::link_info::socket, start_read(), start_write(), ariba::addressing::rfcomm_endpoint::to_string(), and ariba::transport::link_info::up.
Referenced by send().
void ariba::transport::rfcomm::handle_read_data | ( | const error_code & | error, | |
size_t | bytes, | |||
link_info * | info | |||
) | [private] |
Definition at line 354 of file rfcomm.cpp.
References ariba::transport::link_info::buffer, ariba::transport::link_info::local, logging_error, ariba::transport::link_info::remote, shutdown(), ariba::transport::link_info::size, ariba::transport::link_info::size_, and start_read().
Referenced by handle_read_header().
void ariba::transport::rfcomm::handle_read_header | ( | const error_code & | error, | |
size_t | bytes, | |||
link_info * | info | |||
) | [private] |
Definition at line 319 of file rfcomm.cpp.
References ariba::transport::link_info::buffer, handle_read_data(), logging_error, shutdown(), ariba::transport::link_info::size, ariba::transport::link_info::size_, and ariba::transport::link_info::socket.
Referenced by start_read().
void ariba::transport::rfcomm::handle_write_data | ( | const error_code & | error, | |
size_t | bytes, | |||
link_info * | info, | |||
size_t | size, | |||
uint8_t * | buffer | |||
) | [private] |
Definition at line 408 of file rfcomm.cpp.
References logging_debug, logging_error, ariba::transport::link_info::sending, shutdown(), and start_write().
Referenced by start_write().
void ariba::transport::rfcomm::register_listener | ( | transport_listener * | listener | ) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 199 of file rfcomm.cpp.
Referenced by ariba::transport::detail::bluetooth_test(), and ariba::transport::transport_peer::register_listener().
void ariba::transport::rfcomm::send | ( | const endpoint_set & | endpoints, | |
const uint8_t * | data, | |||
size_t | size | |||
) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 176 of file rfcomm.cpp.
References ariba::addressing::endpoint_set::bluetooth, channel, ariba::addressing::endpoint_set::rfcomm, and send().
void ariba::transport::rfcomm::send | ( | const address_v * | remote, | |
const uint8_t * | data, | |||
size_t | size | |||
) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 122 of file rfcomm.cpp.
References ariba::transport::link_data::buffer, ariba::transport::link_info::connect_retries, ariba::transport::link_info::connecting, ariba::transport::convert(), handle_connect(), io, links, logging_debug, logging_error, ariba::addressing::rfcomm_endpoint::mac(), ariba::transport::link_info::mutex, ariba::transport::link_info::reinit(), ariba::transport::link_info::remote, ariba::transport::link_info::send_buffer, ariba::transport::link_data::size, ariba::transport::link_data::size_, ariba::transport::link_info::socket, start_write(), ariba::addressing::rfcomm_endpoint::to_string(), and ariba::transport::link_info::up.
Referenced by ariba::transport::detail::bluetooth_test(), ariba::transport::transport_peer::send(), and send().
void ariba::transport::rfcomm::shutdown | ( | link_info * | info | ) | [private] |
Definition at line 69 of file rfcomm.cpp.
References ariba::transport::link_info::socket, and ariba::transport::link_info::up.
Referenced by handle_read_data(), handle_read_header(), handle_write_data(), and terminate().
void ariba::transport::rfcomm::start | ( | ) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 101 of file rfcomm.cpp.
References acceptor, channel, io, logging_info, send_data, and start_accept().
Referenced by ariba::transport::detail::bluetooth_test(), ariba::transport::transport_peer::start(), and start_accept().
void ariba::transport::rfcomm::start_accept | ( | ) | [private] |
Definition at line 203 of file rfcomm.cpp.
References acceptor, handle_accept(), io, logging_info, ariba::transport::link_info::socket, and start().
Referenced by handle_accept(), and start().
void ariba::transport::rfcomm::start_read | ( | link_info * | info | ) | [private] |
Definition at line 298 of file rfcomm.cpp.
References handle_read_header(), logging_debug, ariba::transport::link_info::size_, and ariba::transport::link_info::socket.
Referenced by handle_accept(), handle_connect(), and handle_read_data().
void ariba::transport::rfcomm::start_write | ( | link_info * | info | ) | [private] |
Definition at line 378 of file rfcomm.cpp.
References ariba::transport::link_data::buffer, handle_write_data(), ariba::transport::link_info::send_buffer, send_data, ariba::transport::link_info::sending, ariba::transport::link_data::size, ariba::transport::link_data::size_, ariba::transport::link_info::socket, and ariba::transport::link_info::up.
Referenced by handle_accept(), handle_connect(), handle_write_data(), and send().
void ariba::transport::rfcomm::stop | ( | ) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 118 of file rfcomm.cpp.
References logging_info.
Referenced by ariba::transport::transport_peer::stop().
void ariba::transport::rfcomm::terminate | ( | const address_v * | remote | ) | [private, virtual] |
Implements ariba::transport::transport_protocol.
Definition at line 187 of file rfcomm.cpp.
References links, ariba::addressing::rfcomm_endpoint::mac(), and shutdown().
Referenced by ariba::transport::transport_peer::terminate().
int ariba::transport::rfcomm::accept_retries [private] |
bluetooth::rfcomm::acceptor* ariba::transport::rfcomm::acceptor [private] |
uint16_t ariba::transport::rfcomm::channel [private] |
io_service& ariba::transport::rfcomm::io [private] |
vector<link_info*> ariba::transport::rfcomm::links [private] |
Definition at line 44 of file rfcomm.hpp.
Referenced by handle_accept(), handle_connect(), send(), and terminate().
boost::mutex ariba::transport::rfcomm::links_mutex [private] |
Definition at line 46 of file rfcomm.hpp.
link_data* ariba::transport::rfcomm::send_data [private] |