From 6d7704c1b497341fd6dd3c27e3f64d0db062ccc2 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Mon, 4 Feb 2019 11:06:18 +0100 Subject: [HICN-11] Rework on transport protocols improving components modularity Change-Id: I6683ec5b494238dc93591c103d25275e89b9f267 Signed-off-by: Mauro Sardara --- .../hicn/transport/core/manifest_format_fixed.cc | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'libtransport/src/hicn/transport/core/manifest_format_fixed.cc') diff --git a/libtransport/src/hicn/transport/core/manifest_format_fixed.cc b/libtransport/src/hicn/transport/core/manifest_format_fixed.cc index 6141ae311..73b33268c 100644 --- a/libtransport/src/hicn/transport/core/manifest_format_fixed.cc +++ b/libtransport/src/hicn/transport/core/manifest_format_fixed.cc @@ -15,7 +15,6 @@ #include #include -#include #include namespace transport { @@ -23,26 +22,34 @@ namespace transport { namespace core { // TODO use preallocated pool of membufs -FixedManifestEncoder::FixedManifestEncoder(Packet &packet) +FixedManifestEncoder::FixedManifestEncoder(Packet &packet, + std::size_t signature_size) : packet_(packet), - max_size_(Packet::default_mtu - packet_.headerSize()), + max_size_(Packet::default_mtu - packet_.headerSize() - signature_size), manifest_( utils::MemBuf::create(Packet::default_mtu - packet_.headerSize())), manifest_header_( reinterpret_cast(manifest_->writableData())), manifest_entries_(reinterpret_cast( manifest_->writableData() + sizeof(ManifestHeader))), - current_entry_(0) {} + current_entry_(0), + signature_size_(signature_size) { + *manifest_header_ = {0}; +} FixedManifestEncoder::~FixedManifestEncoder() {} FixedManifestEncoder &FixedManifestEncoder::encodeImpl() { + manifest_->append(sizeof(ManifestHeader) + + manifest_header_->number_of_entries * + sizeof(ManifestEntry)); packet_.appendPayload(std::move(manifest_)); return *this; } FixedManifestEncoder &FixedManifestEncoder::clearImpl() { - manifest_ = utils::MemBuf::create(Packet::default_mtu - packet_.headerSize()); + manifest_ = utils::MemBuf::create(Packet::default_mtu - packet_.headerSize() - + signature_size_); return *this; } @@ -84,7 +91,7 @@ FixedManifestEncoder &FixedManifestEncoder::addSuffixAndHashImpl( void FixedManifestEncoder::addSuffixHashBytes(uint32_t suffix, const uint8_t *hash, std::size_t length) { - manifest_entries_[current_entry_].suffix = utils::hton(suffix); + manifest_entries_[current_entry_].suffix = htonl(suffix); // std::copy(hash, hash + length, // manifest_entries_[current_entry_].hash); std::memcpy( @@ -119,18 +126,13 @@ std::size_t FixedManifestEncoder::estimateSerializedLengthImpl( } FixedManifestEncoder &FixedManifestEncoder::updateImpl() { - max_size_ = Packet::default_mtu - packet_.headerSize(); - manifest_header_ = reinterpret_cast( - const_cast(packet_.getPayload().data())); - manifest_entries_ = reinterpret_cast( - const_cast(packet_.getPayload().data()) + - sizeof(ManifestHeader)); + max_size_ = Packet::default_mtu - packet_.headerSize() - signature_size_; return *this; } FixedManifestEncoder &FixedManifestEncoder::setFinalBlockNumberImpl( std::uint32_t final_block_number) { - manifest_header_->final_block_number = utils::hton(final_block_number); + manifest_header_->final_block_number = htonl(final_block_number); return *this; } @@ -179,7 +181,7 @@ typename Fixed::SuffixList FixedManifestDecoder::getSuffixHashListImpl() { for (int i = 0; i < manifest_header_->number_of_entries; i++) { hash_list.insert(hash_list.end(), - std::make_pair(utils::ntoh(manifest_entries_[i].suffix), + std::make_pair(ntohl(manifest_entries_[i].suffix), reinterpret_cast( &manifest_entries_[i].hash[0]))); } @@ -213,7 +215,7 @@ std::size_t FixedManifestDecoder::estimateSerializedLengthImpl( } uint32_t FixedManifestDecoder::getFinalBlockNumberImpl() const { - return utils::ntoh(manifest_header_->final_block_number); + return ntohl(manifest_header_->final_block_number); } } // end namespace core -- cgit 1.2.3-korg