Helper class (and thread) that manages an established connection with a peer daemon. More...
#include <SerialConvergenceLayer.h>
Public Member Functions | |
| Connection (SerialConvergenceLayer *cl, const LinkRef &link, SerialLinkParams *params) | |
| Constructor for a connection. | |
| virtual | ~Connection () |
| Destructor. | |
| virtual void | serialize (oasys::SerializeAction *a) |
| Virtual from SerializableObject. | |
Protected Member Functions | |
| void | recv_data () |
| Hook for handle_poll_activity to receive data. | |
| void | send_sync () |
| Send a sync byte. | |
| SerialLinkParams * | serial_lparams () |
| Utility function to downcast the params_ pointer that's stored in the CLConnection parent class. | |
| virtual void | connect () |
| Virtual from CLConnection. | |
| virtual void | disconnect () |
| Virtual from CLConnection. | |
| virtual void | initialize_pollfds () |
| Virtual from CLConnection. | |
| virtual void | handle_poll_timeout () |
| Virtual from CLConnection. | |
| virtual void | handle_poll_activity () |
| Virtual from CLConnection. | |
| void | send_data () |
| virtual from StreamConvergenceLayer::Connection | |
Protected Attributes | |
| oasys::TTY * | tty_ |
| The tty. | |
| struct pollfd * | tty_pollfd_ |
| Poll structure for the tty. | |
| bool | synced_ |
| Whether the SYNC has completed. | |
Friends | |
| class | SerialConvergenceLayer |
Helper class (and thread) that manages an established connection with a peer daemon.
Although the same class is used in both cases, a particular Connection is either a receiver or a sender, as indicated by the direction variable. Note that to deal with NAT, the side which does the active connect is not necessarily the sender.
Definition at line 95 of file SerialConvergenceLayer.h.
| dtn::SerialConvergenceLayer::Connection::Connection | ( | SerialConvergenceLayer * | cl, | |
| const LinkRef & | link, | |||
| SerialLinkParams * | params | |||
| ) |
Constructor for a connection.
Definition at line 138 of file SerialConvergenceLayer.cc.
References dtn::CLConnection::set_nexthop(), synced_, and tty_.
| dtn::SerialConvergenceLayer::Connection::~Connection | ( | ) | [virtual] |
| void dtn::SerialConvergenceLayer::Connection::connect | ( | ) | [protected, virtual] |
Virtual from CLConnection.
Implements dtn::CLConnection.
Definition at line 222 of file SerialConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::Connection::data_rcvd_, dtnsim::gettimeofday(), dtn::SerialConvergenceLayer::SerialLinkParams::initstr_, send_sync(), dtn::CLConnection::sendbuf_, and serial_lparams().
| void dtn::SerialConvergenceLayer::Connection::disconnect | ( | ) | [protected, virtual] |
Virtual from CLConnection.
Implements dtn::CLConnection.
Definition at line 247 of file SerialConvergenceLayer.cc.
References tty_.
| void dtn::SerialConvergenceLayer::Connection::handle_poll_activity | ( | ) | [protected, virtual] |
Virtual from CLConnection.
Implements dtn::CLConnection.
Definition at line 311 of file SerialConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::StreamConvergenceLayer::Connection::check_keepalive(), dtn::CLConnection::contact_broken_, dtn::CLConnection::contact_up_, dtn::StreamConvergenceLayer::Connection::process_data(), recv_data(), dtn::CLConnection::recvbuf_, send_data(), and tty_pollfd_.
| void dtn::SerialConvergenceLayer::Connection::handle_poll_timeout | ( | ) | [protected, virtual] |
Virtual from CLConnection.
Reimplemented from dtn::StreamConvergenceLayer::Connection.
Definition at line 276 of file SerialConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::StreamConvergenceLayer::Connection::data_rcvd_, dtnsim::gettimeofday(), send_sync(), serial_lparams(), synced_, and TIMEVAL_DIFF_MSEC.
| void dtn::SerialConvergenceLayer::Connection::initialize_pollfds | ( | ) | [protected, virtual] |
Virtual from CLConnection.
Implements dtn::CLConnection.
Definition at line 173 of file SerialConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::CLConnection::cl_, dtn::CLConnection::contact_, errno, dtn::CLConnection::num_pollfds_, dtn::CLConnection::params_, dtn::ConnectionConvergenceLayer::parse_nexthop(), dtn::CLConnection::poll_timeout_, dtn::CLConnection::pollfds_, serial_lparams(), dtn::SerialConvergenceLayer::SerialLinkParams::sync_interval_, tty_, and tty_pollfd_.
| void dtn::SerialConvergenceLayer::Connection::recv_data | ( | ) | [protected] |
Hook for handle_poll_activity to receive data.
Definition at line 411 of file SerialConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::CLConnection::contact_broken_, dtn::StreamConvergenceLayer::Connection::contact_initiated_, hex, dtn::SerialConvergenceLayer::SerialLinkParams::hexdump_, dtn::StreamConvergenceLayer::Connection::initiate_contact(), dtn::CLConnection::params_, dtn::CLConnection::poll_timeout_, dtn::CLConnection::recvbuf_, serial_lparams(), dtn::SerialConvergenceLayer::SYNC, synced_, dtn::ConnectionConvergenceLayer::LinkParams::test_read_delay_, dtn::ConnectionConvergenceLayer::LinkParams::test_read_limit_, and tty_.
Referenced by handle_poll_activity().
| void dtn::SerialConvergenceLayer::Connection::send_data | ( | ) | [protected, virtual] |
virtual from StreamConvergenceLayer::Connection
Implements dtn::StreamConvergenceLayer::Connection.
Definition at line 360 of file SerialConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::CLConnection::contact_broken_, errno, hex, dtn::SerialConvergenceLayer::SerialLinkParams::hexdump_, dtn::CLConnection::params_, dtn::CLConnection::sendbuf_, serial_lparams(), dtn::ConnectionConvergenceLayer::LinkParams::test_write_limit_, tty_, and tty_pollfd_.
Referenced by handle_poll_activity(), and send_sync().
| void dtn::SerialConvergenceLayer::Connection::send_sync | ( | ) | [protected] |
Send a sync byte.
Definition at line 256 of file SerialConvergenceLayer.cc.
References ASSERT, send_data(), dtn::CLConnection::sendbuf_, and dtn::SerialConvergenceLayer::SYNC.
Referenced by connect(), and handle_poll_timeout().
| SerialLinkParams* dtn::SerialConvergenceLayer::Connection::serial_lparams | ( | ) | [inline, protected] |
Utility function to downcast the params_ pointer that's stored in the CLConnection parent class.
Definition at line 139 of file SerialConvergenceLayer.h.
References ASSERT, and dtn::CLConnection::params_.
Referenced by connect(), handle_poll_timeout(), initialize_pollfds(), recv_data(), and send_data().
| void dtn::SerialConvergenceLayer::Connection::serialize | ( | oasys::SerializeAction * | a | ) | [virtual] |
Virtual from SerializableObject.
Reimplemented from dtn::CLInfo.
Definition at line 165 of file SerialConvergenceLayer.cc.
friend class SerialConvergenceLayer [friend] |
Definition at line 115 of file SerialConvergenceLayer.h.
bool dtn::SerialConvergenceLayer::Connection::synced_ [protected] |
Whether the SYNC has completed.
Definition at line 148 of file SerialConvergenceLayer.h.
Referenced by Connection(), handle_poll_timeout(), and recv_data().
oasys::TTY* dtn::SerialConvergenceLayer::Connection::tty_ [protected] |
The tty.
Definition at line 146 of file SerialConvergenceLayer.h.
Referenced by Connection(), disconnect(), initialize_pollfds(), recv_data(), send_data(), and ~Connection().
struct pollfd* dtn::SerialConvergenceLayer::Connection::tty_pollfd_ [protected] |
Poll structure for the tty.
Definition at line 147 of file SerialConvergenceLayer.h.
Referenced by handle_poll_activity(), initialize_pollfds(), and send_data().
1.6.3