#ifndef TOR_DISPATCH_ST_H
#define TOR_DISPATCH_ST_H
#ifdef DISPATCH_PRIVATE
#include "lib/container/smartlist.h"
typedef struct dispatch_rcv_t {
subsys_id_t sys;
bool enabled;
recv_fn_t fn;
} dispatch_rcv_t;
typedef struct dtbl_entry_t {
uint16_t n_enabled;
channel_id_t channel;
msg_type_id_t type;
uint16_t n_fns;
dispatch_rcv_t rcv[FLEXIBLE_ARRAY_MEMBER];
} dtbl_entry_t;
typedef struct dqueue_t {
TOR_SIMPLEQ_HEAD( , msg_t) queue;
dispatch_alertfn_t alert_fn;
void *alert_fn_arg;
} dqueue_t ;
struct dispatch_t {
size_t n_msgs;
size_t n_queues;
size_t n_types;
dqueue_t *queues;
dtbl_entry_t **table;
dispatch_typefns_t *typefns;
};
#endif
#endif