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 Fri Jan 30 09:43:13 2009 for DTN Reference Implementation by  doxygen 1.5.8