diff options
Diffstat (limited to 'hicn-light/src/hicn/core/listener.h')
-rw-r--r-- | hicn-light/src/hicn/core/listener.h | 25 |
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 */ |