DTN::RegularHeader Class Reference

Base class for non-primary DTN headers. More...

#include <dtn/Header.h>

Inheritance diagram for DTN::RegularHeader:

Inheritance graph
[legend]
Collaboration diagram for DTN::RegularHeader:

Collaboration graph
[legend]

List of all members.

Public Types

enum  Types { kUnknownHeader = 0U, kPayloadHeader = 1U }
 One-byte header types. More...
enum  BundleHeaderFlags {
  kHeaderFlagRepl = ( 1U << 0 ), kHeaderFlagStatus = ( 1U << 1 ), kHeaderFlagDiscard = ( 1U << 2 ), kHeaderFlagLast = ( 1U << 3 ),
  kHeaderFlagRsrv4 = ( 1U << 4 ), kHeaderFlagRsrv3 = ( 1U << 5 ), kHeaderFlagRsrv2 = ( 1U << 6 ), kHeaderFlagRsrv1 = ( 1U << 7 )
}
 Header processing flags (per draft-irtf-dtnrg-bundle-spec-04). More...

Public Member Functions

 RegularHeader ()
 Default constructor.
 RegularHeader (const ByteString &hdr)
 Constructor taking a byte string.
 RegularHeader (const RegularHeader &hdr)
 Copy constructor.
virtual ~RegularHeader ()
 Virtual destructor.
unsigned char typeCode () const
 The specific type of header.
unsigned char flags () const
 The header's processing flags.
SDNV length () const
 
Returns:
the total length of the header-type-specific data fields


Detailed Description

Base class for non-primary DTN headers.

Since there is a split in format between primary and non-primary DTN headers, with all of the latter having substantially similar structure, all concrete non-primary header types are derived from this single base class. Note that this class is not abstract. It is perfectly acceptable to create a concrete instance of RegularHeader, and the typeCode() method will allow for correct casting to the appropriate derived type as long as the header is well-formed. This can be useful for creating new headers from fully specified ByteStrings if the derived class does not support this.

Definition at line 272 of file Header.h.


Member Enumeration Documentation

enum DTN::RegularHeader::Types

One-byte header types.

Enumerator:
kUnknownHeader  No header type specified.
kPayloadHeader  Header describes the payload.

Definition at line 276 of file Header.h.

enum DTN::RegularHeader::BundleHeaderFlags

Header processing flags (per draft-irtf-dtnrg-bundle-spec-04).

Enumerator:
kHeaderFlagRepl  Header must be replicated in every fragment.
kHeaderFlagStatus  Transmit status report if header can't be processed.
kHeaderFlagDiscard  Discard bundle if header can't be processed.
kHeaderFlagLast  Last header.
kHeaderFlagRsrv4  Reserved for future use.
kHeaderFlagRsrv3  Reserved for future use.
kHeaderFlagRsrv2  Reserved for future use.
kHeaderFlagRsrv1  Reserved for future use.

Definition at line 283 of file Header.h.


Constructor & Destructor Documentation

RegularHeader::RegularHeader ( const ByteString &  hdr  ) 

Constructor taking a byte string.

Parameters:
hdr A string containing the complete header

Definition at line 417 of file Header.cc.


Member Function Documentation

unsigned char RegularHeader::typeCode (  )  const

The specific type of header.

Returns:
an element from the enumeration Types

Definition at line 432 of file Header.cc.

References DTN::Header::m_data.

unsigned char RegularHeader::flags (  )  const

The header's processing flags.

This will be an OR-ing of values from the enumeration BundleHeaderFlags.

Returns:
the flags set for this header

Definition at line 442 of file Header.cc.

References DTN::Header::m_data.


The documentation for this class was generated from the following files:
Generated on Mon Mar 24 11:15:48 2008 for Pydtn Simulator by  doxygen 1.5.4