26RCSIDH(control_h,
"$Id: 19c5b4e784addbcd824fd837832fbb90ff190a4a $")
28#include <freeradius-devel/io/atomic_queue.h>
29#include <freeradius-devel/io/ring_buffer.h>
30#include <freeradius-devel/util/time.h>
31#include <freeradius-devel/util/event.h>
50#define FR_CONTROL_MAX_MESSAGES (1024)
51#define FR_CONTROL_MAX_SIZE (64)
Structure to hold the atomic queue.
int fr_control_gc(fr_control_t *c, fr_ring_buffer_t *rb)
ssize_t fr_control_message_pop(fr_atomic_queue_t *aq, uint32_t *p_id, void *data, size_t data_size)
Pop control-plane message.
int fr_control_open(fr_control_t *c)
Open the control-plane signalling path.
int fr_control_message_send(fr_control_t *c, fr_ring_buffer_t *rb, uint32_t id, void *data, size_t data_size)
Send a control-plane message.
int fr_control_message_push(fr_control_t *c, fr_ring_buffer_t *rb, uint32_t id, void *data, size_t data_size)
Push a control-plane message.
fr_control_t * fr_control_create(TALLOC_CTX *ctx, fr_event_list_t *el, fr_atomic_queue_t *aq, size_t num_callbacks))
Create a control-plane signaling path.
int fr_control_same_thread(fr_control_t *c)
int fr_control_callback_delete(fr_control_t *c, uint32_t id)
Delete a callback for an ID.
void(* fr_control_callback_t)(void *ctx, void const *data, size_t data_size, fr_time_t now)
void fr_control_wait(fr_control_t *c)
Wait for a plane control to become readable.
int fr_control_callback_add(fr_control_t **c, uint32_t id, void *ctx, fr_control_callback_t callback))
Register a callback for an ID.
static fr_atomic_queue_t ** aq
uint32_t num_callbacks
the size of the callback array
Stores all information relating to an event list.
static fr_event_list_t * el