dtn::Bundle Class Reference

#include <Bundle.h>

Inheritance diagram for dtn::Bundle:

oasys::Formatter oasys::SerializableObject dtn::TempBundle

List of all members.


Detailed Description

The internal representation of a bundle.

Bundles are reference counted, with references generally correlating one-to-one with each BundleList on which the Bundle resides.

However, although the push() methods of the BundleList always add a reference and a backpointer to the bundle, the pop() methods do not decremente the reference count. This means that the caller must explicitly remove it when done with the bundle.

Note that delref() will delete the Bundle when the reference count reaches zero, so care must be taken to never use the pointer after that point.

The Bundle class maintains a set of back-pointers to each BundleList it is contained on, and list addition/removal methods maintain the invariant that the entiries of this set correlate exactly with the list pointers.

Definition at line 65 of file Bundle.h.


Public Types

enum  priority_values_t { COS_BULK = 0, COS_NORMAL = 1, COS_EXPEDITED = 2, COS_RESERVED = 3 }
 Values for the bundle priority field. More...
typedef std::set
< BundleList * > 
BundleMappings
typedef
BundleMappings::const_iterator 
MappingsIterator

Public Member Functions

 Bundle (BundlePayload::location_t location=BundlePayload::UNDETERMINED)
 Default constructor to create an empty bundle, initializing all fields to defaults and allocating a new bundle id.
 Bundle (const oasys::Builder &)
 Constructor when re-reading the database.
virtual ~Bundle ()
 Bundle destructor.
void copy_metadata (Bundle *new_bundle)
 Copy the metadata from one bundle to another (used in fragmentation).
int format (char *buf, size_t sz) const
 Virtual from formatter.
void format_verbose (oasys::StringBuffer *buf)
 Virtual from formatter.
void serialize (oasys::SerializeAction *a)
 Virtual from SerializableObject.
u_int32_t durable_key ()
 Hook for the generic durable table implementation to know what the key is for the database.
size_t durable_size ()
 Hook for the bundle store implementation to count the storage impact of this bundle.
int refcount ()
 Return the bundle's reference count, corresponding to the number of entries in the mappings set, i.e.
int add_ref (const char *what1, const char *what2="")
 Bump up the reference count.
int del_ref (const char *what1, const char *what2="")
 Decrement the reference count.
int num_mappings ()
 The number of mappings for this bundle.
MappingsIterator mappings_begin ()
 Return an iterator to scan through the mappings.
MappingsIterator mappings_end ()
 Return an iterator to mark the end of the mappings set.
bool is_queued_on (BundleList *l)
 Return true if the bundle is on the given list.
bool validate (oasys::StringBuffer *errbuf)
 Validate the bundle's fields.
bool receipt_requested ()
 True if any return receipt fields are set.

Static Public Member Functions

static const char * prioritytoa (u_int8_t priority)
 Pretty printer function for bundle_priority_t.

Public Attributes

EndpointID source_
 Source eid.
EndpointID dest_
 Destination eid.
EndpointID custodian_
 Current custodian eid.
EndpointID replyto_
 Reply-To eid.
EndpointID prevhop_
 Previous hop eid.
bool is_fragment_
 Fragmentary Bundle.
bool is_admin_
 Administrative record bundle.
bool do_not_fragment_
 Bundle shouldn't be fragmented.
bool custody_requested_
 Custody requested.
bool singleton_dest_
 Destination endpoint is a singleton.
u_int8_t priority_
 Bundle priority.
bool receive_rcpt_
 Hop by hop reception receipt.
bool custody_rcpt_
 Custody xfer reporting.
bool forward_rcpt_
 Hop by hop forwarding reporting.
bool delivery_rcpt_
 End-to-end delivery reporting.
bool deletion_rcpt_
 Bundle deletion reporting.
bool app_acked_rcpt_
 Acknowlege by application reporting.
BundleTimestamp creation_ts_
 Creation timestamp.
u_int32_t expiration_
 Bundle expiration time.
u_int32_t frag_offset_
 Offset of fragment in the original bundle.
u_int32_t orig_length_
 Length of original bundle.
BundlePayload payload_
 Reference to the payload.
u_int32_t bundleid_
 Local bundle identifier.
oasys::SpinLock lock_
 Lock for bundle data that can be updated by multiple threads.
bool in_datastore_
 Is the bundle in the persistent store.
bool local_custody_
 Local node has custody.
std::string owner_
 Declared router that "owns" this bundle, which could be empty.
ForwardingLog fwdlog_
 Log of bundle forwarding records.
ExpirationTimerexpiration_timer_
 The expiration timer.
CustodyTimerVec custody_timers_
 Live custody timers for this bundle.
BlockInfoVec recv_blocks_
 BP blocks as they arrived off the wire.
BlockInfoVec api_blocks_
 BP blocks as they arrived from API.
LinkBlockSet xmit_blocks_
 Block vector for each link.

Protected Attributes

BundleMappings mappings_
 The set of BundleLists that contain the Bundle.
int refcount_
 Bundle reference count.
bool freed_
 Bit to indicate whether or not a bundle free event has been posted for us.

Private Member Functions

void init (u_int32_t id)
 Initialization helper function.

Friends

class BundleList

Member Typedef Documentation

typedef std::set<BundleList*> dtn::Bundle::BundleMappings

Definition at line 148 of file Bundle.h.

typedef BundleMappings::const_iterator dtn::Bundle::MappingsIterator

Definition at line 149 of file Bundle.h.


Member Enumeration Documentation

enum dtn::Bundle::priority_values_t

Values for the bundle priority field.

Enumerator:
COS_BULK  lowest priority
COS_NORMAL  regular priority
COS_EXPEDITED  important
COS_RESERVED  TBD.

Definition at line 188 of file Bundle.h.


Constructor & Destructor Documentation

dtn::Bundle::Bundle ( BundlePayload::location_t  location = BundlePayload::UNDETERMINED  ) 

Default constructor to create an empty bundle, initializing all fields to defaults and allocating a new bundle id.

To support the simulator, the location can be overridden to be BundlePayload::NODATA.

Definition at line 64 of file Bundle.cc.

References expiration_timer_, freed_, dtn::BundlePayload::init(), init(), dtn::GlobalStore::instance(), dtn::GlobalStore::next_bundleid(), payload_, and refcount_.

dtn::Bundle::Bundle ( const oasys::Builder  ) 

Constructor when re-reading the database.

Definition at line 76 of file Bundle.cc.

References bundleid_, expiration_timer_, freed_, and refcount_.

dtn::Bundle::~Bundle (  )  [virtual]

Bundle destructor.

Definition at line 90 of file Bundle.cc.

References ASSERT, bundleid_, expiration_timer_, log_debug_p, and mappings_.


Member Function Documentation

void dtn::Bundle::copy_metadata ( Bundle new_bundle  ) 

Copy the metadata from one bundle to another (used in fragmentation).

Definition at line 193 of file Bundle.cc.

References app_acked_rcpt_, creation_ts_, custodian_, custody_rcpt_, custody_requested_, deletion_rcpt_, delivery_rcpt_, dest_, do_not_fragment_, expiration_, forward_rcpt_, is_admin_, is_fragment_, local_custody_, priority_, receive_rcpt_, replyto_, singleton_dest_, and source_.

Referenced by dtn::FragmentManager::create_fragment(), and dtn::FragmentManager::process_for_reassembly().

int dtn::Bundle::format ( char *  buf,
size_t  sz 
) const [virtual]

Virtual from formatter.

Implements oasys::Formatter.

Definition at line 104 of file Bundle.cc.

References bundleid_, dtn::EndpointID::c_str(), dest_, is_admin_, is_fragment_, dtn::BundlePayload::length(), payload_, snprintf(), and source_.

void dtn::Bundle::format_verbose ( oasys::StringBuffer buf  ) 

Virtual from formatter.

Definition at line 115 of file Bundle.cc.

References app_acked_rcpt_, oasys::StringBuffer::appendf(), bool_to_str, bundleid_, dtn::EndpointID::c_str(), creation_ts_, custodian_, custody_rcpt_, custody_requested_, deletion_rcpt_, delivery_rcpt_, dest_, do_not_fragment_, expiration_, forward_rcpt_, frag_offset_, fwdlog_, dtn::ForwardingLog::get_transmission_count(), is_admin_, is_fragment_, dtn::BundlePayload::length(), local_custody_, orig_length_, payload_, prevhop_, priority_, receive_rcpt_, replyto_, dtn::BundleTimestamp::seconds_, dtn::BundleTimestamp::seqno_, singleton_dest_, and source_.

Referenced by dtn::LoggingRegistration::deliver_bundle(), and dtn::BundleDaemon::handle_bundle_received().

void dtn::Bundle::serialize ( oasys::SerializeAction a  )  [virtual]

Virtual from SerializableObject.

Implements oasys::SerializableObject.

Definition at line 150 of file Bundle.cc.

References oasys::SerializeAction::action_code(), api_blocks_, app_acked_rcpt_, bundleid_, creation_ts_, custodian_, custody_rcpt_, custody_requested_, deletion_rcpt_, delivery_rcpt_, dest_, do_not_fragment_, expiration_, forward_rcpt_, frag_offset_, in_datastore_, dtn::BundlePayload::init_from_store(), is_admin_, is_fragment_, local_custody_, orig_length_, owner_, payload_, prevhop_, priority_, oasys::SerializeAction::process(), receive_rcpt_, recv_blocks_, replyto_, dtn::BundleTimestamp::seconds_, dtn::BundleTimestamp::seqno_, singleton_dest_, source_, and oasys::Serialize::UNMARSHAL.

u_int32_t dtn::Bundle::durable_key (  )  [inline]

Hook for the generic durable table implementation to know what the key is for the database.

Definition at line 112 of file Bundle.h.

References bundleid_.

size_t dtn::Bundle::durable_size (  )  [inline]

Hook for the bundle store implementation to count the storage impact of this bundle.

Currently just returns the payload length but should be extended to include the metadata as well.

Definition at line 119 of file Bundle.h.

References dtn::BundlePayload::length(), and payload_.

Referenced by dtn::BundleStore::add(), dtn::BundleStore::del(), and dtn::BundleDaemon::load_bundles().

int dtn::Bundle::refcount (  )  [inline]

Return the bundle's reference count, corresponding to the number of entries in the mappings set, i.e.

the number of BundleLists that have a reference to this bundle, as well as any other scopes that are processing the bundle.

Definition at line 127 of file Bundle.h.

References refcount_.

Referenced by dtn::BundleDaemon::handle_bundle_free().

int dtn::Bundle::add_ref ( const char *  what1,
const char *  what2 = "" 
)

Bump up the reference count.

Parameters are used for logging.

Returns:
the new reference count

Definition at line 218 of file Bundle.cc.

References ASSERT, bundleid_, freed_, ExamineDump::l, lock_, log_debug_p, mappings_, and refcount_.

Referenced by dtn::BundleList::add_bundle().

int dtn::Bundle::del_ref ( const char *  what1,
const char *  what2 = "" 
)

Decrement the reference count.

Parameters are used for logging.

If the reference count becomes zero, the bundle is deleted.

Returns:
the new reference count

Definition at line 239 of file Bundle.cc.

References bundleid_, freed_, ExamineDump::l, lock_, log_debug_p, mappings_, and refcount_.

Referenced by dtn::BundleList::erase(), and dtn::BundleList::pop_front().

int dtn::Bundle::num_mappings (  )  [inline]

The number of mappings for this bundle.

Definition at line 154 of file Bundle.h.

References mappings_.

Referenced by dtn::BundleDaemon::try_delete_from_pending().

Bundle::MappingsIterator dtn::Bundle::mappings_begin (  ) 

Return an iterator to scan through the mappings.

Definition at line 272 of file Bundle.cc.

References oasys::Lock::is_locked_by_me(), lock_, and mappings_.

Bundle::MappingsIterator dtn::Bundle::mappings_end (  ) 

Return an iterator to mark the end of the mappings set.

Definition at line 282 of file Bundle.cc.

References oasys::Lock::is_locked_by_me(), lock_, and mappings_.

bool dtn::Bundle::is_queued_on ( BundleList l  ) 

Return true if the bundle is on the given list.

Definition at line 292 of file Bundle.cc.

References ExamineDump::l, lock_, and mappings_.

Referenced by dtn::BundleList::contains(), dtn::BundleDaemon::delete_bundle(), and dtn::BundleDaemon::try_delete_from_pending().

bool dtn::Bundle::validate ( oasys::StringBuffer errbuf  ) 

Validate the bundle's fields.

Definition at line 300 of file Bundle.cc.

References oasys::StringBuffer::appendf(), dtn::EndpointID::c_str(), custodian_, dest_, replyto_, source_, and dtn::EndpointID::valid().

Referenced by dtn::BundleCommand::exec().

bool dtn::Bundle::receipt_requested (  )  [inline]

True if any return receipt fields are set.

Definition at line 179 of file Bundle.h.

References custody_rcpt_, deletion_rcpt_, delivery_rcpt_, forward_rcpt_, and receive_rcpt_.

static const char* dtn::Bundle::prioritytoa ( u_int8_t  priority  )  [inline, static]

Pretty printer function for bundle_priority_t.

Definition at line 198 of file Bundle.h.

References COS_BULK, COS_EXPEDITED, and COS_NORMAL.

void dtn::Bundle::init ( u_int32_t  id  )  [private]

Initialization helper function.

Definition at line 32 of file Bundle.cc.

References app_acked_rcpt_, bundleid_, COS_NORMAL, creation_ts_, custody_rcpt_, custody_requested_, deletion_rcpt_, delivery_rcpt_, do_not_fragment_, expiration_, forward_rcpt_, frag_offset_, dtn::BundleTimestamp::get_current_time(), in_datastore_, is_admin_, is_fragment_, local_custody_, log_debug_p, orig_length_, owner_, priority_, receive_rcpt_, dtn::BundleTimestamp::seconds_, dtn::BundleTimestamp::seqno_, and singleton_dest_.

Referenced by Bundle().


Friends And Related Function Documentation

friend class BundleList [friend]

Definition at line 254 of file Bundle.h.


Member Data Documentation

EndpointID dtn::Bundle::source_

Source eid.

Definition at line 212 of file Bundle.h.

Referenced by dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtnsim::SimRegistration::deliver_bundle(), dtn::PingRegistration::deliver_bundle(), dtn::AdminRegistration::deliver_bundle(), dtn::ProphetTLV::deserialize(), dtn::BundleCommand::exec(), dtn::BundleDaemon::find_duplicate(), format(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::TcaRouter::get_forwarding_rule(), dtn::FragmentManager::get_hash_key(), dtn::PrimaryBlockProcessor::get_primary_len(), dtn::TcaRouter::handle_ask(), dtn::TcaRouter::handle_bl_ask(), dtn::BundleDaemon::handle_bundle_inject(), dtn::BundleDaemon::handle_bundle_received(), dtn::TcaRouter::handle_get_routes(), dtn::APIClient::handle_recv(), dtn::TcaRouter::handle_register(), dtn::TcaRouter::is_local_source(), dtn::log_bundle(), dtn::TcaRouter::on_adv_transmitted(), dtn::TcaRouter::on_ask_transmitted(), dtn::TcaRouter::on_coa_transmitted(), dtn::AnnounceBundle::parse_announce_bundle(), dtn::LinkStateRouter::send_announcement(), dtnsim::TrAgent::send_bundle(), serialize(), and validate().

EndpointID dtn::Bundle::dest_

Destination eid.

Definition at line 213 of file Bundle.h.

Referenced by dtn::BundleDaemon::check_registrations(), dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtnsim::SimRegistration::deliver_bundle(), dtn::PingRegistration::deliver_bundle(), dtn::ProphetTLV::deserialize(), dtn::BundleCommand::exec(), format(), format_verbose(), dtn::TcaRouter::fwd_to_all(), dtn::TableBasedRouter::fwd_to_matching(), dtn::TcaRouter::fwd_to_matching_r(), dtn::PrimaryBlockProcessor::generate(), dtn::TcaRouter::get_forwarding_rule(), dtn::FragmentManager::get_hash_key(), dtn::PrimaryBlockProcessor::get_primary_len(), dtn::TcaRouter::handle_anonymous_bundle(), dtn::TcaRouter::handle_ask(), dtn::BundleDaemon::handle_bundle_inject(), dtn::TcaRouter::handle_bundle_received(), dtn::ProphetController::handle_bundle_received(), dtn::LinkStateRouter::handle_bundle_received(), dtn::BundleDaemon::handle_bundle_received(), dtn::TcaRouter::handle_bundle_transmitted(), dtn::APIClient::handle_recv(), dtn::TcaRouter::handle_register(), dtn::BundleDaemon::handle_registration_added(), dtn::TcaRouter::handle_tca_unbound_bundle(), dtn::ProphetAckList::insert(), dtn::ProphetAckList::is_ackd(), dtn::log_bundle(), dtn::TcaRouter::on_adv_transmitted(), dtn::TcaRouter::on_ask_transmitted(), dtn::TcaRouter::on_coa_transmitted(), dtn::FwdDeciderGTMXPLUS::operator()(), dtn::FwdDeciderGRTRPLUS::operator()(), dtn::FwdDeciderGTMX::operator()(), dtn::FwdDeciderGRTR::operator()(), dtn::ProphetTable::p_value(), dtn::LinkStateRouter::send_announcement(), dtnsim::TrAgent::send_bundle(), serialize(), and validate().

EndpointID dtn::Bundle::custodian_

Current custodian eid.

Definition at line 214 of file Bundle.h.

Referenced by dtn::BundleDaemon::accept_custody(), dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtn::BundleCommand::exec(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::BundleDaemon::generate_custody_signal(), dtn::PrimaryBlockProcessor::get_primary_len(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::BundleDaemon::handle_bundle_inject(), dtn::BundleDaemon::release_custody(), dtn::LinkStateRouter::send_announcement(), dtnsim::TrAgent::send_bundle(), serialize(), and validate().

EndpointID dtn::Bundle::replyto_

Reply-To eid.

Definition at line 215 of file Bundle.h.

Referenced by dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtn::BundleCommand::exec(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::PrimaryBlockProcessor::get_primary_len(), dtn::BundleDaemon::handle_bundle_inject(), dtn::APIClient::handle_recv(), dtn::LinkStateRouter::send_announcement(), dtnsim::TrAgent::send_bundle(), serialize(), and validate().

EndpointID dtn::Bundle::prevhop_

Previous hop eid.

Definition at line 216 of file Bundle.h.

Referenced by dtn::PreviousHopBlockProcessor::consume(), format_verbose(), and serialize().

bool dtn::Bundle::is_fragment_

Fragmentary Bundle.

Definition at line 217 of file Bundle.h.

Referenced by dtn::FragmentManager::check_completed(), dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::CustodySignal::create_custody_signal(), dtn::FragmentManager::create_fragment(), dtn::BundleStatusReport::create_status_report(), dtn::BundleDaemon::delete_bundle(), dtn::FragmentManager::delete_fragment(), dtn::BundleDaemon::deliver_to_registration(), dtn::BundleDaemon::find_duplicate(), format(), dtn::PrimaryBlockProcessor::format_bundle_flags(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::PrimaryBlockProcessor::get_primary_len(), init(), dtn::PrimaryBlockProcessor::parse_bundle_flags(), dtn::FragmentManager::process_for_reassembly(), dtnsim::TrAgent::send_bundle(), serialize(), and dtn::FragmentManager::try_to_convert_to_fragment().

bool dtn::Bundle::is_admin_

Administrative record bundle.

Definition at line 218 of file Bundle.h.

Referenced by copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtn::AdminRegistration::deliver_bundle(), dtn::BlockProcessor::finalize(), format(), dtn::PrimaryBlockProcessor::format_bundle_flags(), format_verbose(), dtn::BundleProtocol::get_admin_type(), init(), dtn::AnnounceBundle::parse_announce_bundle(), dtn::PrimaryBlockProcessor::parse_bundle_flags(), dtnsim::TrAgent::send_bundle(), serialize(), and dtn::BlockProcessor::validate().

bool dtn::Bundle::do_not_fragment_

Bundle shouldn't be fragmented.

Definition at line 219 of file Bundle.h.

Referenced by copy_metadata(), dtn::FragmentManager::create_fragment(), dtn::PrimaryBlockProcessor::format_bundle_flags(), format_verbose(), init(), dtn::PrimaryBlockProcessor::parse_bundle_flags(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::custody_requested_

Custody requested.

Definition at line 220 of file Bundle.h.

Referenced by copy_metadata(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_bundle_flags(), format_verbose(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::BundleDaemon::handle_bundle_received(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_bundle_flags(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::singleton_dest_

Destination endpoint is a singleton.

Definition at line 221 of file Bundle.h.

Referenced by copy_metadata(), dtn::PrimaryBlockProcessor::format_bundle_flags(), format_verbose(), init(), dtn::PrimaryBlockProcessor::parse_bundle_flags(), dtnsim::TrAgent::send_bundle(), and serialize().

u_int8_t dtn::Bundle::priority_

Bundle priority.

Definition at line 222 of file Bundle.h.

Referenced by copy_metadata(), dtn::PrimaryBlockProcessor::format_cos_flags(), format_verbose(), dtn::BundleDaemon::handle_bundle_inject(), init(), dtn::PrimaryBlockProcessor::parse_cos_flags(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::receive_rcpt_

Hop by hop reception receipt.

Definition at line 223 of file Bundle.h.

Referenced by copy_metadata(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), dtn::BundleDaemon::handle_bundle_received(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), receipt_requested(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::custody_rcpt_

Custody xfer reporting.

Definition at line 224 of file Bundle.h.

Referenced by dtn::BundleDaemon::accept_custody(), copy_metadata(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), receipt_requested(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::forward_rcpt_

Hop by hop forwarding reporting.

Definition at line 225 of file Bundle.h.

Referenced by copy_metadata(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), dtn::BundleDaemon::handle_bundle_transmitted(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), receipt_requested(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::delivery_rcpt_

End-to-end delivery reporting.

Definition at line 226 of file Bundle.h.

Referenced by copy_metadata(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), receipt_requested(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::deletion_rcpt_

Bundle deletion reporting.

Definition at line 227 of file Bundle.h.

Referenced by copy_metadata(), dtn::BundleDaemon::delete_bundle(), dtn::BundleCommand::exec(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), dtn::APIClient::handle_recv(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), receipt_requested(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::app_acked_rcpt_

Acknowlege by application reporting.

Definition at line 228 of file Bundle.h.

Referenced by copy_metadata(), dtn::PrimaryBlockProcessor::format_srr_flags(), format_verbose(), init(), dtn::PrimaryBlockProcessor::parse_srr_flags(), dtnsim::TrAgent::send_bundle(), and serialize().

BundleTimestamp dtn::Bundle::creation_ts_

Creation timestamp.

Definition at line 229 of file Bundle.h.

Referenced by dtn::BundleDaemon::add_to_pending(), dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtn::BundleCommand::exec(), dtn::BundleDaemon::find_duplicate(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::FragmentManager::get_hash_key(), dtn::BundleDaemon::handle_bundle_received(), init(), dtn::ProphetAckList::insert(), dtn::ProphetAckList::is_ackd(), dtnsim::TrAgent::send_bundle(), and serialize().

u_int32_t dtn::Bundle::expiration_

Bundle expiration time.

Definition at line 230 of file Bundle.h.

Referenced by dtn::BundleDaemon::add_to_pending(), dtn::CustodyTimerSpec::calculate_timeout(), dtn::PrimaryBlockProcessor::consume(), copy_metadata(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::BundleStatusReport::create_status_report(), dtn::PingRegistration::deliver_bundle(), dtn::BundleCommand::exec(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::BundleDaemon::handle_bundle_inject(), dtn::BundleDaemon::handle_bundle_received(), dtn::APIClient::handle_recv(), init(), dtn::ProphetAckList::insert(), dtnsim::TrAgent::send_bundle(), and serialize().

u_int32_t dtn::Bundle::frag_offset_

Offset of fragment in the original bundle.

Definition at line 231 of file Bundle.h.

Referenced by dtn::FragmentManager::check_completed(), dtn::PrimaryBlockProcessor::consume(), dtn::CustodySignal::create_custody_signal(), dtn::FragmentManager::create_fragment(), dtn::BundleStatusReport::create_status_report(), dtn::FragmentManager::delete_fragment(), dtn::BundleDaemon::find_duplicate(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::PrimaryBlockProcessor::get_primary_len(), init(), dtn::BundleList::insert_sorted(), dtn::FragmentManager::process_for_reassembly(), serialize(), and dtn::FragmentManager::try_to_convert_to_fragment().

u_int32_t dtn::Bundle::orig_length_

Length of original bundle.

Definition at line 232 of file Bundle.h.

Referenced by dtn::FragmentManager::check_completed(), dtn::PrimaryBlockProcessor::consume(), dtn::CustodySignal::create_custody_signal(), dtn::FragmentManager::create_fragment(), dtn::BundleStatusReport::create_status_report(), dtn::BundleDaemon::find_duplicate(), format_verbose(), dtn::PrimaryBlockProcessor::generate(), dtn::PrimaryBlockProcessor::get_primary_len(), init(), dtn::FragmentManager::process_for_reassembly(), serialize(), and dtn::FragmentManager::try_to_convert_to_fragment().

BundlePayload dtn::Bundle::payload_

Reference to the payload.

Definition at line 233 of file Bundle.h.

Referenced by dtn::BundleRouter::accept_bundle(), Bundle(), dtn::FragmentManager::check_completed(), dtn::PayloadBlockProcessor::consume(), dtn::AnnounceBundle::create_announce_bundle(), dtn::ProphetTLV::create_bundle(), dtn::CustodySignal::create_custody_signal(), dtn::FragmentManager::create_fragment(), dtn::BundleStatusReport::create_status_report(), dtn::FragmentManager::delete_fragment(), dtnsim::SimRegistration::deliver_bundle(), dtn::PingRegistration::deliver_bundle(), dtn::LoggingRegistration::deliver_bundle(), dtn::LinkStateRouter::LSRegistration::deliver_bundle(), dtn::AdminRegistration::deliver_bundle(), dtn::ProphetTLV::deserialize(), durable_size(), dtn::BundleCommand::exec(), dtn::BundleDaemon::find_duplicate(), format(), format_verbose(), dtn::PayloadBlockProcessor::generate(), dtn::BundleProtocol::get_admin_type(), dtn::get_payload_str(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::BundleDaemon::handle_bundle_inject(), dtn::APIClient::handle_recv(), dtn::BundleSz::operator()(), dtn::AnnounceBundle::parse_announce_bundle(), dtn::BundleStatusReport::parse_status_report(), dtn::FragmentManager::proactively_fragment(), dtn::UDPConvergenceLayer::Receiver::process_data(), dtn::FragmentManager::process_for_reassembly(), dtn::PayloadBlockProcessor::produce(), dtn::LinkStateRouter::send_announcement(), dtnsim::TrAgent::send_bundle(), dtnsim::SimConvergenceLayer::send_bundle(), dtn::FileConvergenceLayer::send_bundle(), serialize(), dtn::FragmentManager::try_to_convert_to_fragment(), and dtn::FragmentManager::try_to_reactively_fragment().

u_int32_t dtn::Bundle::bundleid_

Local bundle identifier.

Definition at line 239 of file Bundle.h.

Referenced by dtn::BundleList::add_bundle(), add_ref(), dtn::BundleDaemon::add_to_pending(), Bundle(), dtn::BundleStore::del(), dtn::BundleList::del_bundle(), del_ref(), dtn::BundleDaemon::delete_from_pending(), dtnsim::SimRegistration::deliver_bundle(), dtn::APIRegistration::deliver_bundle(), dtn::ProphetStats::drop_bundle(), durable_key(), dtn::BundleCommand::exec(), dtnsim::GlueNode::execute_router_action(), dtn::ProphetStats::find_entry(), format(), format_verbose(), dtn::TableBasedRouter::fwd_to_matching(), dtn::PrimaryBlockProcessor::get_primary_len(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::LinkStateRouter::handle_bundle_received(), dtn::BundleDaemon::handle_bundle_received(), dtn::BundleDaemon::handle_bundle_transmit_failed(), dtn::BundleDaemon::handle_bundle_transmitted(), dtn::APIClient::handle_recv(), init(), dtn::QueueCompFIFO::operator()(), dtn::UDPConvergenceLayer::Receiver::process_data(), dtn::FragmentManager::process_for_reassembly(), dtnsim::TrAgent::send_bundle(), dtn::FileConvergenceLayer::send_bundle(), serialize(), dtn::TableBasedRouter::should_fwd(), dtn::ProphetDecider::should_fwd(), dtn::BundleActions::store_add(), dtn::BundleActions::store_del(), dtn::BundleActions::store_update(), dtn::ProphetStats::update_stats(), and ~Bundle().

oasys::SpinLock dtn::Bundle::lock_

Lock for bundle data that can be updated by multiple threads.

Definition at line 240 of file Bundle.h.

Referenced by dtn::BundleList::add_bundle(), add_ref(), dtn::BundleDaemon::cancel_custody_timers(), dtn::BundleList::del_bundle(), del_ref(), dtn::BundleList::erase(), dtn::BundleDaemon::handle_bundle_free(), dtn::BundleDaemon::handle_custody_timeout(), dtn::BundleList::insert_random(), dtn::BundleList::insert_sorted(), is_queued_on(), mappings_begin(), mappings_end(), dtn::BundleList::push_back(), and dtn::BundleList::push_front().

bool dtn::Bundle::in_datastore_

Is the bundle in the persistent store.

Definition at line 242 of file Bundle.h.

Referenced by dtn::BundleDaemon::add_to_pending(), dtn::BundleDaemon::handle_bundle_free(), init(), dtnsim::TrAgent::send_bundle(), and serialize().

bool dtn::Bundle::local_custody_

Local node has custody.

Definition at line 243 of file Bundle.h.

Referenced by dtn::BundleDaemon::accept_custody(), copy_metadata(), dtn::BundleDaemon::delete_bundle(), format_verbose(), dtn::BundleDaemon::generate_custody_signal(), dtn::BundleDaemon::handle_bundle_delivered(), dtn::BundleDaemon::handle_bundle_received(), dtn::BundleDaemon::handle_bundle_transmitted(), init(), dtn::BundleDaemon::release_custody(), dtnsim::TrAgent::send_bundle(), and serialize().

std::string dtn::Bundle::owner_

Declared router that "owns" this bundle, which could be empty.

Definition at line 244 of file Bundle.h.

Referenced by dtn::BundleDaemon::deliver_to_registration(), dtn::TcaRouter::fwd_to_matching_r(), dtn::LinkStateRouter::handle_bundle_received(), init(), and serialize().

ForwardingLog dtn::Bundle::fwdlog_

Log of bundle forwarding records.

Definition at line 246 of file Bundle.h.

Referenced by dtn::BundleActions::cancel_bundle(), format_verbose(), dtn::BundleDaemon::handle_bundle_transmit_failed(), dtn::BundleDaemon::handle_bundle_transmitted(), dtn::BundleDaemon::handle_custody_timeout(), dtn::FwdDeciderGTMXPLUS::operator()(), dtn::FwdDeciderGTMX::operator()(), dtn::BundleActions::send_bundle(), dtn::TableBasedRouter::should_fwd(), dtn::ProphetDecider::should_fwd(), and dtn::BundleDaemon::try_delete_from_pending().

ExpirationTimer* dtn::Bundle::expiration_timer_

The expiration timer.

Definition at line 247 of file Bundle.h.

Referenced by dtn::BundleDaemon::add_to_pending(), Bundle(), dtn::BundleDaemon::delete_from_pending(), dtn::BundleDaemon::try_delete_from_pending(), and ~Bundle().

CustodyTimerVec dtn::Bundle::custody_timers_

Live custody timers for this bundle.

Definition at line 248 of file Bundle.h.

Referenced by dtn::BundleDaemon::cancel_custody_timers(), dtn::BundleDaemon::handle_bundle_transmitted(), and dtn::BundleDaemon::handle_custody_timeout().

BlockInfoVec dtn::Bundle::recv_blocks_

BP blocks as they arrived off the wire.

Definition at line 250 of file Bundle.h.

Referenced by dtn::BundleProtocol::consume(), dtn::BundleDaemon::handle_bundle_received(), dtn::BundleProtocol::prepare_blocks(), serialize(), and dtn::BundleProtocol::validate().

BlockInfoVec dtn::Bundle::api_blocks_

BP blocks as they arrived from API.

Definition at line 251 of file Bundle.h.

Referenced by dtn::BundleProtocol::prepare_blocks(), and serialize().

LinkBlockSet dtn::Bundle::xmit_blocks_

Block vector for each link.

Definition at line 252 of file Bundle.h.

Referenced by dtn::BundleDaemon::handle_bundle_transmit_failed(), dtn::BundleDaemon::handle_bundle_transmitted(), dtn::StreamConvergenceLayer::Connection::handle_send_bundle(), dtn::BundleProtocol::prepare_blocks(), dtn::UDPConvergenceLayer::Sender::send_bundle(), dtnsim::SimConvergenceLayer::send_bundle(), dtn::NullConvergenceLayer::send_bundle(), and dtn::BundleActions::send_bundle().

BundleMappings dtn::Bundle::mappings_ [protected]

The set of BundleLists that contain the Bundle.

Definition at line 259 of file Bundle.h.

Referenced by dtn::BundleList::add_bundle(), add_ref(), dtn::BundleList::del_bundle(), del_ref(), is_queued_on(), mappings_begin(), mappings_end(), num_mappings(), and ~Bundle().

int dtn::Bundle::refcount_ [protected]

Bundle reference count.

Definition at line 262 of file Bundle.h.

Referenced by add_ref(), Bundle(), del_ref(), and refcount().

bool dtn::Bundle::freed_ [protected]

Bit to indicate whether or not a bundle free event has been posted for us.

Definition at line 263 of file Bundle.h.

Referenced by add_ref(), Bundle(), and del_ref().


The documentation for this class was generated from the following files:
Generated on Sat Sep 8 08:43:43 2007 for DTN Reference Implementation by  doxygen 1.5.3