aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/protocols/protocol.h
diff options
context:
space:
mode:
authorAlberto Compagno <acompagn+fdio@cisco.com>2020-03-09 13:25:28 +0000
committerGerrit Code Review <gerrit@fd.io>2020-03-09 13:25:28 +0000
commit01d76a603fba7db5cfb83a1fbc3b369f2e4a4823 (patch)
tree486f541ca2ca90ed1d117dad1920f23725eed38e /libtransport/src/protocols/protocol.h
parent0f7b6da4aeeb6ed9baffb47d72aa176556145501 (diff)
parentafe807c61372fe2481e73af63c8382af1e1d3011 (diff)
Merge "[HICN-540] Optimizations for libhicntransport"
Diffstat (limited to 'libtransport/src/protocols/protocol.h')
-rw-r--r--libtransport/src/protocols/protocol.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/libtransport/src/protocols/protocol.h b/libtransport/src/protocols/protocol.h
index 949380959..db4524133 100644
--- a/libtransport/src/protocols/protocol.h
+++ b/libtransport/src/protocols/protocol.h
@@ -17,6 +17,8 @@
#include <atomic>
+#include <hicn/transport/interfaces/callbacks.h>
+#include <hicn/transport/interfaces/socket_consumer.h>
#include <hicn/transport/interfaces/statistics.h>
#include <hicn/transport/utils/object_pool.h>
@@ -34,6 +36,8 @@ using namespace core;
class IndexVerificationManager;
+using ReadCallback = interface::ConsumerSocket::ReadCallback;
+
class TransportProtocolCallback {
virtual void onContentObject(const core::Interest &interest,
const core::ContentObject &content_object) = 0;
@@ -89,6 +93,20 @@ class TransportProtocol : public implementation::BasePortal::ConsumerCallback,
// True if it si the first time we schedule an interest
std::atomic<bool> is_first_;
interface::TransportStatistics *stats_;
+
+ // Callbacks
+ interface::ConsumerInterestCallback *on_interest_retransmission_;
+ interface::ConsumerInterestCallback *on_interest_output_;
+ interface::ConsumerInterestCallback *on_interest_timeout_;
+ interface::ConsumerInterestCallback *on_interest_satisfied_;
+ interface::ConsumerContentObjectCallback *on_content_object_input_;
+ interface::ConsumerContentObjectVerificationCallback
+ *on_content_object_verification_;
+ interface::ConsumerContentObjectCallback *on_content_object_;
+ interface::ConsumerTimerCallback *stats_summary_;
+ interface::ConsumerContentObjectVerificationFailedCallback
+ *verification_failed_callback_;
+ ReadCallback *on_payload_;
};
} // end namespace protocol