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().