dtn::ProphetAckList Class Reference

#include <ProphetLists.h>

List of all members.


Detailed Description

Section 3.5 (p.

16) describes Prophet ACKs as needing to persist in a node's storage beyond the lifetime of the bundle they represent. ProphetAckList is that persistence (but not [yet] serializable to permanent storage).

Definition at line 571 of file ProphetLists.h.

Public Types

typedef std::set< ProphetAck *,
less_ack_
palist

Public Member Functions

 ProphetAckList ()
 ProphetAckList (const ProphetAckList &a)
 ~ProphetAckList ()
bool insert (const EndpointID &eid, u_int32_t cts, u_int32_t ets=0)
 Insert a ProphetAck with the provided attributes; return true if inserted, else false if ACK already exists.
bool insert (Bundle *b)
 Convenience wrapper.
bool insert (ProphetAck *ack)
 Insert ProphetAck; return true on success, else false if ACK already exists.
size_t count (const EndpointID &eid) const
 Return the number of ACKs known for a given EID.
size_t fetch (const EndpointIDPattern &eid, PointerList< ProphetAck > &list) const
 Place the set of ACKs for given EID in list, return number found.
bool is_ackd (const EndpointID &eid, u_int32_t cts) const
 Answer whether this Bundle has been ACK'd.
bool is_ackd (Bundle *b) const
size_t expire (u_int32_t older_than=0)
 Visit every ACK in the list, and delete those for which the expiration time is older than the time provided; return the number of elements deleted (If older_than==0 use current time).
size_t size () const
 Number of elements contained.

Protected Attributes

palist acks_
oasys::SpinLocklock_

Classes

struct  less_ack_


Member Typedef Documentation

typedef std::set<ProphetAck*,less_ack_> dtn::ProphetAckList::palist

Definition at line 578 of file ProphetLists.h.


Constructor & Destructor Documentation

dtn::ProphetAckList::ProphetAckList (  ) 

Definition at line 449 of file ProphetLists.cc.

References acks_.

dtn::ProphetAckList::ProphetAckList ( const ProphetAckList a  )  [inline]

Definition at line 581 of file ProphetLists.h.

dtn::ProphetAckList::~ProphetAckList (  ) 

Definition at line 455 of file ProphetLists.cc.

References acks_, ExamineDump::l, and lock_.


Member Function Documentation

bool dtn::ProphetAckList::insert ( const EndpointID eid,
u_int32_t  cts,
u_int32_t  ets = 0 
)

Insert a ProphetAck with the provided attributes; return true if inserted, else false if ACK already exists.

Definition at line 491 of file ProphetLists.cc.

References acks_, ExamineDump::l, and lock_.

Referenced by dtn::ProphetController::handle_bundle_delivered(), dtn::ProphetEncounter::handle_bundle_tlv(), and insert().

bool dtn::ProphetAckList::insert ( Bundle b  )  [inline]

Convenience wrapper.

Definition at line 594 of file ProphetLists.h.

References dtn::Bundle::creation_ts_, dtn::Bundle::dest_, dtn::Prophet::eid_to_routeid(), dtn::Bundle::expiration_, insert(), and dtn::BundleTimestamp::seconds_.

bool dtn::ProphetAckList::insert ( ProphetAck ack  ) 

Insert ProphetAck; return true on success, else false if ACK already exists.

Definition at line 504 of file ProphetLists.cc.

References acks_, ExamineDump::l, and lock_.

size_t dtn::ProphetAckList::count ( const EndpointID eid  )  const

Return the number of ACKs known for a given EID.

Definition at line 473 of file ProphetLists.cc.

References acks_, ExamineDump::l, and lock_.

size_t dtn::ProphetAckList::fetch ( const EndpointIDPattern eid,
PointerList< ProphetAck > &  list 
) const

Place the set of ACKs for given EID in list, return number found.

Definition at line 533 of file ProphetLists.cc.

References acks_, ExamineDump::l, lock_, and dtn::EndpointIDPattern::match().

Referenced by dtn::ProphetEncounter::send_bundle_offer().

bool dtn::ProphetAckList::is_ackd ( const EndpointID eid,
u_int32_t  cts 
) const

Answer whether this Bundle has been ACK'd.

Definition at line 550 of file ProphetLists.cc.

References acks_, ExamineDump::l, and lock_.

Referenced by dtn::ProphetEncounter::handle_bundle_tlv(), and is_ackd().

bool dtn::ProphetAckList::is_ackd ( Bundle b  )  const [inline]

Definition at line 622 of file ProphetLists.h.

References dtn::Bundle::creation_ts_, dtn::Bundle::dest_, dtn::Prophet::eid_to_routeid(), is_ackd(), and dtn::BundleTimestamp::seconds_.

size_t dtn::ProphetAckList::expire ( u_int32_t  older_than = 0  ) 

Visit every ACK in the list, and delete those for which the expiration time is older than the time provided; return the number of elements deleted (If older_than==0 use current time).

Definition at line 511 of file ProphetLists.cc.

References acks_, oasys::Time::get_time(), ExamineDump::l, lock_, and oasys::Time::sec_.

Referenced by dtn::ProphetAckAgeTimer::timeout().

size_t dtn::ProphetAckList::size (  )  const [inline]

Number of elements contained.

Definition at line 640 of file ProphetLists.h.

References acks_.


Member Data Documentation

palist dtn::ProphetAckList::acks_ [protected]

Definition at line 642 of file ProphetLists.h.

Referenced by count(), expire(), fetch(), insert(), is_ackd(), ProphetAckList(), size(), and ~ProphetAckList().

oasys::SpinLock* dtn::ProphetAckList::lock_ [protected]

Definition at line 643 of file ProphetLists.h.

Referenced by count(), expire(), fetch(), insert(), is_ackd(), and ~ProphetAckList().


The documentation for this class was generated from the following files:
Generated on Thu Jun 7 12:54:34 2007 for DTN Reference Implementation by  doxygen 1.5.1