dtn::MetadataBlockProcessor Class Reference

Block processor implementation for the metadata extension block. More...

#include <MetadataBlockProcessor.h>

Inheritance diagram for dtn::MetadataBlockProcessor:
dtn::BlockProcessor

List of all members.

Public Member Functions

 MetadataBlockProcessor ()
 Constructor.
void prepare_generated_metadata (Bundle *bundle, BlockInfoVec *blocks, const LinkRef &link)
 Determines the generated metadata (not received metadata, which is handled by the prepare() method) to be included in an outgoing bundle.
void delete_generated_metadata (Bundle *bundle, const LinkRef &link)
 Deletes bundle state maintained for generated metadata.

int consume (Bundle *bundle, BlockInfo *block, u_char *buf, size_t len)
 Virtual from BlockProcessor.
bool validate (const Bundle *bundle, BlockInfoVec *block_list, BlockInfo *block, status_report_reason_t *reception_reason, status_report_reason_t *deletion_reason)
 Virtual from BlockProcessor.
int prepare (const Bundle *bundle, BlockInfoVec *xmit_blocks, const BlockInfo *source, const LinkRef &link, list_owner_t list)
 Virtual from BlockProcessor.
int generate (const Bundle *bundle, BlockInfoVec *xmit_blocks, BlockInfo *block, const LinkRef &link, bool last)
 Virtual from BlockProcessor.

Private Member Functions

bool parse_metadata (Bundle *bundle, BlockInfo *block)
 Parses a metadata extension block.
bool handle_error (const BlockInfo *block, status_report_reason_t *reception_reason, status_report_reason_t *deletion_reason)
 Handles a metadata extension block processing error based on the block preamble flags.

Detailed Description

Block processor implementation for the metadata extension block.

Definition at line 34 of file MetadataBlockProcessor.h.


Constructor & Destructor Documentation

dtn::MetadataBlockProcessor::MetadataBlockProcessor (  ) 

Constructor.

Definition at line 34 of file MetadataBlockProcessor.cc.


Member Function Documentation

int dtn::MetadataBlockProcessor::consume ( Bundle *  bundle,
BlockInfo *  block,
u_char *  buf,
size_t  len 
) [virtual]

Virtual from BlockProcessor.

Reimplemented from dtn::BlockProcessor.

Definition at line 41 of file MetadataBlockProcessor.cc.

References ASSERT, dtn::BlockInfo::complete(), and parse_metadata().

void dtn::MetadataBlockProcessor::delete_generated_metadata ( Bundle *  bundle,
const LinkRef &  link 
)

Deletes bundle state maintained for generated metadata.

Definition at line 422 of file MetadataBlockProcessor.cc.

References ASSERT, dtn::LinkMetadataSet::delete_blocks(), dtn::Bundle::mutable_generated_metadata(), and dtn::Bundle::recv_metadata().

int dtn::MetadataBlockProcessor::generate ( const Bundle *  bundle,
BlockInfoVec *  xmit_blocks,
BlockInfo *  block,
const LinkRef &  link,
bool  last 
) [virtual]
bool dtn::MetadataBlockProcessor::handle_error ( const BlockInfo *  block,
status_report_reason_t *  reception_reason,
status_report_reason_t *  deletion_reason 
) [private]

Handles a metadata extension block processing error based on the block preamble flags.

Returns:
true if the bundle in which the invalid block was received should be deleted; otherwise false.

Definition at line 404 of file MetadataBlockProcessor.cc.

References dtn::BundleProtocol::BLOCK_FLAG_DISCARD_BUNDLE_ONERROR, dtn::BundleProtocol::BLOCK_FLAG_REPORT_ONERROR, dtn::BlockInfo::flags(), and dtn::BundleProtocol::REASON_BLOCK_UNINTELLIGIBLE.

Referenced by validate().

bool dtn::MetadataBlockProcessor::parse_metadata ( Bundle *  bundle,
BlockInfo *  block 
) [private]
int dtn::MetadataBlockProcessor::prepare ( const Bundle *  bundle,
BlockInfoVec *  xmit_blocks,
const BlockInfo *  source,
const LinkRef &  link,
list_owner_t  list 
) [virtual]
void dtn::MetadataBlockProcessor::prepare_generated_metadata ( Bundle *  bundle,
BlockInfoVec *  blocks,
const LinkRef &  link 
)

Determines the generated metadata (not received metadata, which is handled by the prepare() method) to be included in an outgoing bundle.

Definition at line 155 of file MetadataBlockProcessor.cc.

References ASSERT, dtn::BlockProcessor::BlockInfo, dtn::LinkMetadataSet::find_blocks(), dtn::Bundle::generated_metadata(), and dtn::Bundle::lock().

bool dtn::MetadataBlockProcessor::validate ( const Bundle *  bundle,
BlockInfoVec *  block_list,
BlockInfo *  block,
status_report_reason_t *  reception_reason,
status_report_reason_t *  deletion_reason 
) [virtual]

The documentation for this class was generated from the following files:
Generated on Sun Nov 21 11:41:02 2010 for DTN Reference Implementation by  doxygen 1.6.3