aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/core/listener.h
diff options
context:
space:
mode:
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 */