diff options
author | Mauro Sardara <msardara@cisco.com> | 2019-02-11 10:44:29 +0100 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2019-02-18 10:48:38 +0000 |
commit | 79e0d4f89c4d532189aae06cc5dfbc14e3269703 (patch) | |
tree | adc83eccb824c019c3c43cc48bcd4de6656eea8d /libtransport/src/hicn/transport/core/forwarder_interface.h | |
parent | 7d2b217bd01a8da1a2ac57aaad59b3179c7af916 (diff) |
[HICN-50] Added udp application connector.
Change-Id: I0c5afad4b404ec485f50b1342b81e70ef85a5163
Signed-off-by: Mauro Sardara <msardara@cisco.com>
Signed-off-by: michele papalini <micpapal@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/core/forwarder_interface.h')
-rw-r--r-- | libtransport/src/hicn/transport/core/forwarder_interface.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libtransport/src/hicn/transport/core/forwarder_interface.h b/libtransport/src/hicn/transport/core/forwarder_interface.h index e7b6fb1a6..de9f3b568 100644 --- a/libtransport/src/hicn/transport/core/forwarder_interface.h +++ b/libtransport/src/hicn/transport/core/forwarder_interface.h @@ -16,7 +16,7 @@ #pragma once #include <hicn/transport/core/prefix.h> -#include <hicn/transport/core/socket_connector.h> +#include <hicn/transport/core/udp_socket_connector.h> #include <hicn/transport/portability/portability.h> #include <deque> @@ -54,8 +54,6 @@ class ForwarderInterface { } public: - static constexpr uint8_t ack_code = 102; - virtual ~ForwarderInterface() {} TRANSPORT_ALWAYS_INLINE void connect(bool is_consumer = true) { @@ -70,6 +68,20 @@ class ForwarderInterface { return static_cast<Implementation &>(*this).getMtu(); } + TRANSPORT_ALWAYS_INLINE static bool isControlMessage(const uint8_t *message) { + return Implementation::isControlMessageImpl(message); + } + + template <typename R> + TRANSPORT_ALWAYS_INLINE void processControlMessageReply(R &&packet_buffer) { + return static_cast<Implementation &>(*this).processControlMessageReplyImpl( + std::forward<R &&>(packet_buffer)); + } + + TRANSPORT_ALWAYS_INLINE void closeConnection() { + return static_cast<Implementation &>(*this).closeConnection(); + } + template < typename R, typename = std::enable_if_t< @@ -97,7 +109,7 @@ class ForwarderInterface { counters_.tx_bytes += len; // Perfect forwarding - connector_.send(packet, len, std::forward<Handler>(packet_sent)); + connector_.send(packet, len, std::forward<Handler &&>(packet_sent)); } TRANSPORT_ALWAYS_INLINE void shutdown() { connector_.close(); } |