diff options
author | Mauro Sardara <msardara@cisco.com> | 2020-02-07 20:00:06 +0100 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2020-02-12 18:40:52 +0100 |
commit | 3bce9bfdce707313de4f9cccdc867abd9edf82df (patch) | |
tree | bd7d75a7251888a3fc269fadebd59842c46a14a1 /libtransport/src/hicn/transport/protocols/reassembly.h | |
parent | f9243a2bf823086404be1c41c7bcc1b27cfab7de (diff) |
[HICN-508] [HICN-509] [HICN-506] Manifest rework
Change-Id: I992205148910be008d66b5acb7f6f1365770f9e8
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/protocols/reassembly.h')
-rw-r--r-- | libtransport/src/hicn/transport/protocols/reassembly.h | 50 |
1 files changed, 19 insertions, 31 deletions
diff --git a/libtransport/src/hicn/transport/protocols/reassembly.h b/libtransport/src/hicn/transport/protocols/reassembly.h index e859ca294..34af2a70a 100644 --- a/libtransport/src/hicn/transport/protocols/reassembly.h +++ b/libtransport/src/hicn/transport/protocols/reassembly.h @@ -15,17 +15,20 @@ #pragma once -#include <hicn/transport/core/content_object.h> -#include <hicn/transport/protocols/manifest_indexing_manager.h> +#include <hicn/transport/core/facade.h> namespace transport { namespace interface { class ConsumerReadCallback; -} +class ConsumerSocket; +} // namespace interface namespace protocol { +class TransportProtocol; +class Indexer; + // Forward Declaration class ManifestManager; @@ -36,41 +39,26 @@ class Reassembly { virtual void onContentReassembled(std::error_code ec) = 0; }; - virtual void reassemble(ContentObject::Ptr &&content_object) = 0; - virtual void reset() = 0; - virtual void setContentCallback(ContentReassembledCallback *callback) { - content_callback_ = callback; - } + Reassembly(interface::ConsumerSocket *icn_socket, + TransportProtocol *transport_protocol) + : reassembly_consumer_socket_(icn_socket), + transport_protocol_(transport_protocol) {} - protected: - ContentReassembledCallback *content_callback_; -}; + virtual ~Reassembly() = default; -class BaseReassembly : public Reassembly { - public: - BaseReassembly(interface::ConsumerSocket *icn_socket, - ContentReassembledCallback *content_callback, - TransportProtocol *next_interest); + virtual void reassemble(core::ContentObject::Ptr &&content_object) = 0; + virtual void reassemble( + std::unique_ptr<core::ContentObjectManifest> &&manifest) = 0; + virtual void reInitialize() = 0; + virtual void setIndexer(Indexer *indexer) { index_manager_ = indexer; } protected: - virtual void reassemble(ContentObject::Ptr &&content_object) override; - - virtual void copyContent(const ContentObject &content_object); - - virtual void reset() override; - - private: - void notifyApplication(); + virtual void notifyApplication(); protected: - // The consumer socket interface::ConsumerSocket *reassembly_consumer_socket_; - std::unique_ptr<IncrementalIndexManager> incremental_index_manager_; - std::unique_ptr<ManifestIndexManager> manifest_index_manager_; - IndexVerificationManager *index_manager_; - std::unordered_map<std::uint32_t, ContentObject::Ptr> received_packets_; - - uint32_t index_; + TransportProtocol *transport_protocol_; + Indexer *index_manager_; std::unique_ptr<utils::MemBuf> read_buffer_; }; |