aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/core/listener.h
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2020-09-23 17:50:52 +0200
committerJordan Augé <jordan.auge+fdio@cisco.com>2020-09-28 18:25:30 +0200
commit32dccec98e4c7d7e4ce902e19ba8d1b29b823758 (patch)
tree95c5dec2083a3774c13bd5f896743cd6c5c42a7a /hicn-light/src/hicn/core/listener.h
parent7356408ca1554468c9d7b9840aaaee28b4341c8d (diff)
[HICN-570] Message buffer (incl. CS and PIT changes)
Change-Id: I4c508e4b04dee3acbfc3da1d26e1770cb826f22b Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'hicn-light/src/hicn/core/listener.h')
-rw-r--r--hicn-light/src/hicn/core/listener.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/hicn-light/src/hicn/core/listener.h b/hicn-light/src/hicn/core/listener.h
index ea2a5d3d8..eb1ec6893 100644
--- a/hicn-light/src/hicn/core/listener.h
+++ b/hicn-light/src/hicn/core/listener.h
@@ -23,10 +23,11 @@
#include <hicn/core/address_pair.h>
#include <hicn/face.h>
-#include <hicn/base/loop.h>
+
+#include "msgbuf.h"
+#include "../base/loop.h"
struct forwarder_s;
-struct batch_buffer_s;
typedef struct {
address_t address;
@@ -89,11 +90,21 @@ void listener_setup_local_ipv4(const struct forwarder_s * forwarder, uint16_t p
void listener_process_packet(const listener_t * listener,
const uint8_t * packet, size_t size);
-ssize_t listener_read_callback(struct forwarder_s * forwarder, listener_t * listener,
- int fd, address_t * local_addr, uint8_t * packet, size_t size);
-void listener_batch_read_callback(struct forwarder_s * forwarder,
- listener_t * listener, int fd, address_t * local_addr,
- struct batch_buffer_s * bb);
+ssize_t listener_read_single(listener_t * listener);
+ssize_t listener_read_batch(listener_t * listener);
+
+/**
+ * @brief Callback helper function for batch reading data from listener fd.
+ *
+ * This function is usually called from the listener read callback to proceed to
+ * actual reading of data from the fd.
+ *
+ * @see listener_read_callback
+ *
+ * NOTE: the function returns size_t as for TCP we might need to know how much
+ * data we can consume from the socket.
+ */
+ssize_t listener_read_callback(listener_t * listener, int fd, void * user_data);
#endif /* HICNLIGHT_LISTENER_H */