#include <StreamConvergenceLayer.h>
Public Member Functions | |
Connection (const char *classname, const char *logpath, StreamConvergenceLayer *cl, StreamLinkParams *params, bool active_connector) | |
Constructor. | |
bool | send_pending_data () |
virtual from CLConnection | |
void | handle_bundles_queued () |
virtual from CLConnection | |
void | handle_cancel_bundle (Bundle *bundle) |
virtual from CLConnection | |
void | handle_poll_timeout () |
virtual from CLConnection | |
void | break_contact (ContactEvent::reason_t reason) |
virtual from CLConnection | |
Protected Member Functions | |
virtual void | send_data ()=0 |
Hook used to tell the derived CL class to drain data out of the send buffer. | |
void | initiate_contact () |
utility functions used by derived classes | |
void | process_data () |
utility functions used by derived classes | |
void | check_keepalive () |
utility functions used by derived classes | |
Protected Attributes | |
InFlightBundle * | current_inflight_ |
Current bundle that's in flight. | |
size_t | send_segment_todo_ |
Bytes left to send of current segment. | |
size_t | recv_segment_todo_ |
Bytes left to recv of current segment. | |
struct timeval | data_rcvd_ |
Timestamp for idle/keepalive timer. | |
struct timeval | data_sent_ |
Timestamp for idle timer. | |
struct timeval | keepalive_sent_ |
Timestamp for keepalive timer. | |
bool | breaking_contact_ |
Bit to catch multiple calls to break_contact. | |
bool | contact_initiated_ |
Private Member Functions | |
StreamLinkParams * | stream_lparams () |
Utility function to downcast the params_ pointer that's stored in the CLConnection parent class. | |
void | note_data_rcvd () |
utility functions used internally in this class | |
void | note_data_sent () |
utility functions used internally in this class | |
bool | send_pending_acks () |
utility functions used internally in this class | |
bool | start_next_bundle () |
utility functions used internally in this class | |
bool | send_next_segment (InFlightBundle *inflight) |
utility functions used internally in this class | |
bool | send_data_todo (InFlightBundle *inflight) |
utility functions used internally in this class | |
bool | finish_bundle (InFlightBundle *inflight) |
utility functions used internally in this class | |
void | check_completed (InFlightBundle *inflight) |
utility functions used internally in this class | |
void | send_keepalive () |
utility functions used internally in this class | |
void | handle_contact_initiation () |
utility functions used internally in this class | |
bool | handle_data_segment (u_int8_t flags) |
utility functions used internally in this class | |
bool | handle_data_todo () |
utility functions used internally in this class | |
bool | handle_ack_segment (u_int8_t flags) |
utility functions used internally in this class | |
bool | handle_refuse_bundle (u_int8_t flags) |
utility functions used internally in this class | |
bool | handle_keepalive (u_int8_t flags) |
utility functions used internally in this class | |
bool | handle_shutdown (u_int8_t flags) |
utility functions used internally in this class | |
void | check_completed (IncomingBundle *incoming) |
utility functions used internally in this class |
Definition at line 187 of file StreamConvergenceLayer.h.
dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::Connection | ( | const char * | classname, | |
const char * | logpath, | |||
StreamConvergenceLayer * | cl, | |||
StreamLinkParams * | params, | |||
bool | active_connector | |||
) |
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact | ( | ContactEvent::reason_t | reason | ) | [virtual] |
virtual from CLConnection
Reimplemented from dtn::CLConnection.
Definition at line 1361 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::breaking_contact_, dtn::ContactEvent::BROKEN, dtn::ContactEvent::CL_ERROR, dtn::ContactEvent::CL_VERSION, dtn::ContactEvent::DISCOVERY, dtn::ContactEvent::IDLE, dtn::ContactEvent::INVALID, dtn::ContactEvent::NO_INFO, dtn::ContactEvent::RECONNECT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, dtn::CLConnection::sendbuf_, dtn::StreamConvergenceLayer::SHUTDOWN, dtn::ContactEvent::SHUTDOWN, dtn::StreamConvergenceLayer::SHUTDOWN_BUSY, dtn::StreamConvergenceLayer::SHUTDOWN_HAS_REASON, dtn::StreamConvergenceLayer::SHUTDOWN_IDLE_TIMEOUT, dtn::StreamConvergenceLayer::SHUTDOWN_NO_REASON, dtn::StreamConvergenceLayer::SHUTDOWN_VERSION_MISMATCH, dtn::ContactEvent::TIMEOUT, and dtn::ContactEvent::USER.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::connect(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_ack_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_contact_initiation(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::handle_poll_activity(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::handle_poll_activity(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::handle_poll_timeout(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_refuse_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_shutdown(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::initialize_pollfds(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::recv_data(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::recv_data(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::send_data(), and dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::send_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed | ( | IncomingBundle * | incoming | ) | [private] |
utility functions used internally in this class
Definition at line 1214 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::CLConnection::CLConnection::IncomingBundle::bundle_, dtn::ContactEvent::CL_ERROR, dtn::CLConnection::contact_, dtn::EVENTSRC_PEER, dtn::BundleDaemon::post(), dtn::CLConnection::CLConnection::IncomingBundle::rcvd_data_, dtn::BundleProtocol::total_length(), and dtn::CLConnection::CLConnection::IncomingBundle::total_length_.
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed | ( | InFlightBundle * | inflight | ) | [private] |
utility functions used internally in this class
Definition at line 715 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::InFlightBundle::ack_data_, ASSERT, dtn::CLConnection::CLConnection::InFlightBundle::bundle_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_, dtn::CLConnection::inflight_, and dtn::CLConnection::CLConnection::InFlightBundle::total_length_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::finish_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_ack_segment(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive | ( | ) | [protected] |
utility functions used by derived classes
Definition at line 914 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_sent_, dtnsim::gettimeofday(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::keepalive_interval_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::keepalive_sent_, dtn::CLConnection::params_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, and TIMEVAL_DIFF_MSEC.
Referenced by dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::handle_poll_activity(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::handle_poll_activity(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::finish_bundle | ( | InFlightBundle * | inflight | ) | [private] |
utility functions used internally in this class
Definition at line 701 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_, and dtn::CLConnection::CLConnection::InFlightBundle::send_complete_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_ack_segment | ( | u_int8_t | flags | ) | [private] |
utility functions used internally in this class
Definition at line 1268 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::InFlightBundle::ack_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::CLConnection::CLConnection::InFlightBundle::bundle_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed(), dtn::ContactEvent::CL_ERROR, dtn::CLConnection::contact_, decode(), dtn::CLConnection::inflight_, dtn::BundleDaemon::post(), dtn::CLConnection::recvbuf_, dtn::CLConnection::CLConnection::InFlightBundle::sent_data_, dtn::CLConnection::CLConnection::InFlightBundle::total_length_, and dtn::CLConnection::CLConnection::InFlightBundle::transmit_event_posted_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_bundles_queued | ( | ) | [virtual] |
virtual from CLConnection
Implements dtn::CLConnection.
Definition at line 367 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::contact_.
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_cancel_bundle | ( | Bundle * | bundle | ) | [virtual] |
virtual from CLConnection
Implements dtn::CLConnection.
Definition at line 776 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::InFlightBundle::bundle_, dtn::Bundle::bundleid(), dtn::CLConnection::contact_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_, dtn::CLConnection::inflight_, dtn::BundleDaemon::post(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, and dtn::CLConnection::CLConnection::InFlightBundle::sent_data_.
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_contact_initiation | ( | ) | [private] |
utility functions used internally in this class
Definition at line 212 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::EndpointID::assign(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::EndpointID::c_str(), dtn::CLConnection::cl_, dtn::ContactEvent::CL_ERROR, dtn::ContactEvent::CL_VERSION, dtn::CLConnection::contact_, dtn::CLConnection::contact_up(), dtn::CLConnection::contact_up_, dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::data_timeout_, decode(), dtn::CLConnection::find_contact(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::flags, dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::keepalive_interval, dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::keepalive_interval_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::magic, dtn::ConvergenceLayer::MAGIC, dtn::StreamConvergenceLayer::NEGATIVE_ACK_ENABLED, dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::negative_ack_enabled_, dtn::EndpointID::NULL_EID(), dtn::CLConnection::poll_timeout_, dtn::StreamConvergenceLayer::REACTIVE_FRAG_ENABLED, dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::reactive_frag_enabled_, dtn::CLConnection::recvbuf_, dtn::StreamConvergenceLayer::SEGMENT_ACK_ENABLED, dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::segment_ack_enabled_, dtn::EndpointID::str(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::stream_lparams(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::version.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_segment | ( | u_int8_t | flags | ) | [private] |
utility functions used internally in this class
Definition at line 1062 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::IncomingBundle::ack_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::StreamConvergenceLayer::BUNDLE_END, dtn::StreamConvergenceLayer::BUNDLE_START, dtn::ContactEvent::CL_ERROR, decode(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo(), dtn::CLConnection::incoming_, dtn::CLConnection::CLConnection::IncomingBundle::rcvd_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::recv_segment_todo_, dtn::CLConnection::recvbuf_, and dtn::CLConnection::CLConnection::IncomingBundle::total_length_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo | ( | ) | [private] |
utility functions used internally in this class
Definition at line 1160 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::IncomingBundle::ack_data_, ASSERT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::CLConnection::CLConnection::IncomingBundle::bundle_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed(), dtn::ContactEvent::CL_ERROR, dtn::BundleProtocol::consume(), dtn::CLConnection::incoming_, dtn::CLConnection::CLConnection::IncomingBundle::rcvd_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::recv_segment_todo_, and dtn::CLConnection::recvbuf_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_segment(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_keepalive | ( | u_int8_t | flags | ) | [private] |
utility functions used internally in this class
Definition at line 1351 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::recvbuf_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout | ( | ) | [virtual] |
virtual from CLConnection
Implements dtn::CLConnection.
Reimplemented in dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection.
Definition at line 827 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::BROKEN, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive(), dtn::CLConnection::contact_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::contact_initiated_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_rcvd_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_sent_, dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::data_timeout_, dtnsim::gettimeofday(), dtn::ContactEvent::IDLE, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::keepalive_sent_, dtn::ContactManager::lock(), dtn::Link::ONDEMAND, dtn::CLConnection::params_, dtn::CLConnection::poll_timeout_, dtn::BundleDaemon::shutting_down(), and TIMEVAL_DIFF_MSEC.
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_refuse_bundle | ( | u_int8_t | flags | ) | [private] |
utility functions used internally in this class
Definition at line 1341 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), and dtn::ContactEvent::CL_ERROR.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_shutdown | ( | u_int8_t | flags | ) | [private] |
utility functions used internally in this class
Definition at line 1452 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::CLConnection::recvbuf_, dtn::ContactEvent::SHUTDOWN, dtn::StreamConvergenceLayer::SHUTDOWN_BUSY, dtn::StreamConvergenceLayer::SHUTDOWN_HAS_DELAY, dtn::StreamConvergenceLayer::SHUTDOWN_HAS_REASON, dtn::StreamConvergenceLayer::SHUTDOWN_IDLE_TIMEOUT, dtn::StreamConvergenceLayer::SHUTDOWN_NO_REASON, dtn::StreamConvergenceLayer::shutdown_reason_to_str(), and dtn::StreamConvergenceLayer::SHUTDOWN_VERSION_MISMATCH.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact | ( | ) | [protected] |
utility functions used by derived classes
Definition at line 140 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::CLConnection::cl_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::contact_initiated_, dtn::EndpointID::data(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_rcvd_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_sent_, encode(), encoding_len(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::flags, dtnsim::gettimeofday(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::keepalive_interval, dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::keepalive_interval_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::keepalive_sent_, dtn::EndpointID::length(), dtn::BundleDaemon::local_eid(), dtn::ConvergenceLayer::MAGIC, dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::magic, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_sent(), dtn::StreamConvergenceLayer::REACTIVE_FRAG_ENABLED, dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::reactive_frag_enabled_, dtn::StreamConvergenceLayer::SEGMENT_ACK_ENABLED, dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::segment_ack_enabled_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data(), dtn::CLConnection::sendbuf_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::stream_lparams(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::ContactHeader::version.
Referenced by dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::accept(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::connect(), dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::handle_poll_activity(), and dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::recv_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_rcvd | ( | ) | [private] |
utility functions used internally in this class
Definition at line 1046 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_rcvd_, and dtnsim::gettimeofday().
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_sent | ( | ) | [private] |
utility functions used internally in this class
Definition at line 1054 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_sent_, and dtnsim::gettimeofday().
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_acks().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data | ( | ) | [protected] |
utility functions used by derived classes
Definition at line 951 of file StreamConvergenceLayer.cc.
References dtn::StreamConvergenceLayer::ACK_SEGMENT, ASSERT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::ContactEvent::CL_ERROR, dtn::CLConnection::contact_broken_, dtn::CLConnection::contact_up_, dtn::StreamConvergenceLayer::DATA_SEGMENT, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_ack_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_contact_initiation(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_refuse_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_shutdown(), dtn::StreamConvergenceLayer::KEEPALIVE, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_rcvd(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::recv_segment_todo_, dtn::CLConnection::recvbuf_, dtn::StreamConvergenceLayer::REFUSE_BUNDLE, and dtn::StreamConvergenceLayer::SHUTDOWN.
Referenced by dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection::handle_poll_activity(), and dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::handle_poll_activity().
virtual void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data | ( | ) | [protected, pure virtual] |
Hook used to tell the derived CL class to drain data out of the send buffer.
Implemented in dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection, and dtn::TCPConvergenceLayer::TCPConvergenceLayer::Connection.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_keepalive(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_acks().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo | ( | InFlightBundle * | inflight | ) | [private] |
utility functions used internally in this class
Definition at line 642 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::CLConnection::CLConnection::InFlightBundle::blocks_, dtn::CLConnection::CLConnection::InFlightBundle::bundle_, dtn::CLConnection::contact_broken_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_sent(), dtn::CLConnection::params_, dtn::BundleProtocol::produce(), dtn::CLConnection::CLConnection::InFlightBundle::send_complete_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, dtn::CLConnection::sendbuf_, dtn::CLConnection::CLConnection::InFlightBundle::sent_data_, and dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_write_delay_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data().
void dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_keepalive | ( | ) | [private] |
utility functions used internally in this class
Definition at line 746 of file StreamConvergenceLayer.cc.
References ASSERT, dtnsim::gettimeofday(), dtn::StreamConvergenceLayer::KEEPALIVE, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::keepalive_sent_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, and dtn::CLConnection::sendbuf_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment | ( | InFlightBundle * | inflight | ) | [private] |
utility functions used internally in this class
Definition at line 579 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::StreamConvergenceLayer::BUNDLE_END, dtn::StreamConvergenceLayer::BUNDLE_START, dtn::StreamConvergenceLayer::DATA_SEGMENT, encode(), encoding_len(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::finish_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::StreamLinkParams::segment_length_, dtn::CLConnection::CLConnection::InFlightBundle::send_complete_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, dtn::CLConnection::sendbuf_, dtn::CLConnection::CLConnection::InFlightBundle::sent_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::stream_lparams(), and dtn::CLConnection::CLConnection::InFlightBundle::total_length_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::start_next_bundle().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_acks | ( | ) | [private] |
utility functions used internally in this class
Definition at line 432 of file StreamConvergenceLayer.cc.
References dtn::CLConnection::CLConnection::IncomingBundle::ack_data_, dtn::StreamConvergenceLayer::ACK_SEGMENT, dtn::CLConnection::CLConnection::IncomingBundle::acked_length_, ASSERT, dtn::CLConnection::CLConnection::IncomingBundle::bundle_, dtn::CLConnection::contact_broken_, encode(), encoding_len(), dtn::CLConnection::incoming_, len, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_sent(), dtn::CLConnection::CLConnection::IncomingBundle::rcvd_data_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data(), dtn::CLConnection::sendbuf_, and dtn::CLConnection::CLConnection::IncomingBundle::total_length_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data | ( | ) | [virtual] |
virtual from CLConnection
Implements dtn::CLConnection.
Definition at line 379 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::CLConnection::contact_broken_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_, dtn::CLConnection::params_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_acks(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_, dtn::CLConnection::sendbuf_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::start_next_bundle(), and dtn::ConnectionConvergenceLayer::ConnectionConvergenceLayer::LinkParams::test_write_delay_.
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::start_next_bundle | ( | ) | [private] |
utility functions used internally in this class
Definition at line 533 of file StreamConvergenceLayer.cc.
References ASSERT, dtn::CLConnection::CLConnection::InFlightBundle::blocks_, dtn::CLConnection::contact_, dtn::CLConnection::contact_up_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_, dtn::CLConnection::inflight_, dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment(), dtn::BundleProtocol::total_length(), and dtn::CLConnection::CLConnection::InFlightBundle::total_length_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data().
StreamLinkParams* dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::stream_lparams | ( | ) | [inline, private] |
Utility function to downcast the params_ pointer that's stored in the CLConnection parent class.
Definition at line 245 of file StreamConvergenceLayer.h.
References ASSERT, and dtn::CLConnection::params_.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_contact_initiation(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::breaking_contact_ [protected] |
Bit to catch multiple calls to break_contact.
Definition at line 259 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact().
bool dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::contact_initiated_ [protected] |
Definition at line 261 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), and dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::recv_data().
InFlightBundle* dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::current_inflight_ [protected] |
Current bundle that's in flight.
Definition at line 253 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_completed(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::finish_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_cancel_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::start_next_bundle().
struct timeval dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_rcvd_ [read, protected] |
Timestamp for idle/keepalive timer.
Definition at line 256 of file StreamConvergenceLayer.h.
Referenced by dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::connect(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::SerialConvergenceLayer::SerialConvergenceLayer::Connection::handle_poll_timeout(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_rcvd().
struct timeval dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::data_sent_ [read, protected] |
Timestamp for idle timer.
Definition at line 257 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::note_data_sent().
struct timeval dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::keepalive_sent_ [read, protected] |
Timestamp for keepalive timer.
Definition at line 258 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::initiate_contact(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_keepalive().
size_t dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::recv_segment_todo_ [protected] |
Bytes left to recv of current segment.
Definition at line 255 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_segment(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_data_todo(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::process_data().
size_t dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_segment_todo_ [protected] |
Bytes left to send of current segment.
Definition at line 254 of file StreamConvergenceLayer.h.
Referenced by dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::break_contact(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::check_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::handle_cancel_bundle(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_data_todo(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_keepalive(), dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_next_segment(), and dtn::StreamConvergenceLayer::StreamConvergenceLayer::Connection::send_pending_data().