Replace static monitor handler tables with dynamic handler registry
[trust_router.git] / include / mons_handlers.h
similarity index 85%
rename from mon/mons_handlers.h
rename to include/mons_handlers.h
index 03e2847..50bdd43 100644 (file)
 #ifndef TRUST_ROUTER_MONS_HANDLERS_H
 #define TRUST_ROUTER_MONS_HANDLERS_H
 
+typedef json_t *(MONS_HANDLER_FUNC)(void *);
+
+struct mons_dispatch_table_entry {
+  MON_CMD command;
+  MON_OPT_TYPE opt_type;
+  MONS_HANDLER_FUNC *handler;
+  void *cookie;
+};
+
 /* mons_handlers.c */
 MON_RESP *mons_handle_request(TALLOC_CTX *mem_ctx, MONS_INSTANCE *mons, MON_REQ *req);
-
-/* mons_handlers_show.c */
-MON_RESP *mons_handle_show(TALLOC_CTX *mem_ctx, MONS_INSTANCE *mons, MON_REQ *req);
+MON_RC mons_register_handler(MONS_INSTANCE *mons, MON_CMD cmd, MON_OPT_TYPE opt_type, MONS_HANDLER_FUNC *f, void *cookie);
 
 #endif //TRUST_ROUTER_MONS_HANDLERS_H