Block processor implementation for the payload bundle block. More...
#include <PayloadBlockProcessor.h>
Public Member Functions | |
| PayloadBlockProcessor () | |
| Constructor. | |
| int | consume (Bundle *bundle, BlockInfo *block, u_char *buf, size_t len) |
| Virtual from BlockProcessor. | |
| int | generate (const Bundle *bundle, BlockInfoVec *xmit_blocks, BlockInfo *block, const LinkRef &link, bool last) |
| 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. | |
| void | produce (const Bundle *bundle, const BlockInfo *block, u_char *buf, size_t offset, size_t len) |
| Virtual from BlockProcessor. | |
| void | process (process_func *func, const Bundle *bundle, const BlockInfo *caller_block, const BlockInfo *target_block, size_t offset, size_t len, OpaqueContext *context) |
| Virtual from BlockProcessor. | |
| bool | mutate (mutate_func *func, Bundle *bundle, const BlockInfo *caller_block, BlockInfo *target_block, size_t offset, size_t len, OpaqueContext *context) |
| Virtual from BlockProcessor. | |
Block processor implementation for the payload bundle block.
Definition at line 27 of file PayloadBlockProcessor.h.
| dtn::PayloadBlockProcessor::PayloadBlockProcessor | ( | ) |
Constructor.
Definition at line 28 of file PayloadBlockProcessor.cc.
| int dtn::PayloadBlockProcessor::consume | ( | Bundle * | bundle, | |
| BlockInfo * | block, | |||
| u_char * | buf, | |||
| size_t | len | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Reimplemented from dtn::BlockProcessor.
Definition at line 35 of file PayloadBlockProcessor.cc.
References ASSERT, dtn::BlockInfo::complete(), dtn::BlockProcessor::consume_preamble(), dtn::BlockInfo::contents(), dtn::BlockInfo::data_length(), dtn::BlockInfo::data_offset(), dtn::BlockInfo::full_length(), dtn::BundlePayload::length(), dtn::BundlePayload::location(), dtn::log, dtn::Bundle::mutable_payload(), dtn::Bundle::mutable_recv_blocks(), dtn::BundlePayload::NODATA, dtn::Bundle::payload(), dtn::BlockInfo::set_complete(), dtn::BundlePayload::set_length(), and dtn::BundlePayload::write_data().
| int dtn::PayloadBlockProcessor::generate | ( | const Bundle * | bundle, | |
| BlockInfoVec * | xmit_blocks, | |||
| BlockInfo * | block, | |||
| const LinkRef & | link, | |||
| bool | last | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Implements dtn::BlockProcessor.
Definition at line 158 of file PayloadBlockProcessor.cc.
References dtn::BundleProtocol::BLOCK_FLAG_LAST_BLOCK, BP_SUCCESS, dtn::BlockProcessor::generate_preamble(), dtn::BundlePayload::length(), dtn::Bundle::payload(), and dtn::BundleProtocol::PAYLOAD_BLOCK.
| bool dtn::PayloadBlockProcessor::mutate | ( | mutate_func * | func, | |
| Bundle * | bundle, | |||
| const BlockInfo * | caller_block, | |||
| BlockInfo * | target_block, | |||
| size_t | offset, | |||
| size_t | len, | |||
| OpaqueContext * | context | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Reimplemented from dtn::BlockProcessor.
Definition at line 265 of file PayloadBlockProcessor.cc.
References buf, dtn::BlockInfo::contents(), dtn::BlockInfo::data_offset(), dtn::BundlePayload::length(), dtn::Bundle::payload(), and dtn::BundlePayload::read_data().
| void dtn::PayloadBlockProcessor::process | ( | process_func * | func, | |
| const Bundle * | bundle, | |||
| const BlockInfo * | caller_block, | |||
| const BlockInfo * | target_block, | |||
| size_t | offset, | |||
| size_t | len, | |||
| OpaqueContext * | context | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Reimplemented from dtn::BlockProcessor.
Definition at line 209 of file PayloadBlockProcessor.cc.
References buf, dtn::BlockInfo::contents(), dtn::BlockInfo::data_offset(), dtn::BundlePayload::length(), dtn::Bundle::payload(), and dtn::BundlePayload::read_data().
| void dtn::PayloadBlockProcessor::produce | ( | const Bundle * | bundle, | |
| const BlockInfo * | block, | |||
| u_char * | buf, | |||
| size_t | offset, | |||
| size_t | len | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Reimplemented from dtn::BlockProcessor.
Definition at line 180 of file PayloadBlockProcessor.cc.
References dtn::BlockInfo::contents(), dtn::BlockInfo::data_offset(), dtn::BundlePayload::length(), dtn::Bundle::payload(), and dtn::BundlePayload::read_data().
| bool dtn::PayloadBlockProcessor::validate | ( | const Bundle * | bundle, | |
| BlockInfoVec * | block_list, | |||
| BlockInfo * | block, | |||
| status_report_reason_t * | reception_reason, | |||
| status_report_reason_t * | deletion_reason | |||
| ) | [virtual] |
Virtual from BlockProcessor.
Reimplemented from dtn::BlockProcessor.
Definition at line 118 of file PayloadBlockProcessor.cc.
References dtn::BlockInfo::complete(), dtn::BlockInfo::data_length(), dtn::BlockInfo::data_offset(), dtn::Bundle::do_not_fragment(), dtn::BundlePayload::length(), dtn::log, log_err_p, dtn::Bundle::payload(), dtn::BundleProtocol::REASON_BLOCK_UNINTELLIGIBLE, and dtn::BlockProcessor::validate().
1.6.3