Download reasoning/hyperkitty_bus.h from Snapkitty/hyperkitty-constraint-dsl: direct link, hf CLI and curl.
- Browser
- Download file 3.22 kB
-
https://huggingface.co/Snapkitty/hyperkitty-constraint-dsl/resolve/main/reasoning/hyperkitty_bus.h
- Command line
-
hf download hf://Snapkitty/hyperkitty-constraint-dsl/reasoning/hyperkitty_bus.h
-
curl -L -o hyperkitty_bus.h https://huggingface.co/Snapkitty/hyperkitty-constraint-dsl/resolve/main/reasoning/hyperkitty_bus.h
3.22 kB
| /* hyperkitty_bus.h — Hyperkitty C-- Bus - Bare-metal twin of hc_bus.cpp */ | |
| /* ---- constants ---- */ | |
| /* ---- wire message ---- */ | |
| typedef struct { | |
| char type[32]; | |
| char from[64]; | |
| char to[64]; | |
| char topic[128]; | |
| uint64_t corr; | |
| char body[HK_MAX_BODY]; | |
| } hk_message_t; | |
| /* ---- subscription slot ---- */ | |
| typedef struct { | |
| char topic[HK_MAX_TOPIC_LEN]; | |
| bool active; | |
| } hk_subscription_t; | |
| /* ---- per-connection queue entry ---- */ | |
| typedef struct { | |
| hk_message_t msg; | |
| bool used; | |
| } hk_queue_entry_t; | |
| /* ---- per-connection state ---- */ | |
| typedef struct hk_conn hk_conn_t; | |
| struct hk_conn { | |
| char id[HK_MAX_ID_LEN]; | |
| int fd; /* socket fd, -1 = closed */ | |
| hk_subscription_t subs[HK_MAX_SUBS_PER_CONN]; | |
| uint32_t sub_count; | |
| pthread_mutex_t q_lock; | |
| pthread_cond_t q_cond; | |
| hk_queue_entry_t queue[HK_QUEUE_MAX]; | |
| uint32_t q_head; | |
| uint32_t q_tail; | |
| uint32_t q_count; | |
| pthread_t thread; | |
| bool active; | |
| struct hk_bus *bus; | |
| /* stats */ | |
| uint64_t msgs_sent; | |
| uint64_t msgs_recv; | |
| uint64_t drops; | |
| }; | |
| /* ---- bus instance ---- */ | |
| typedef struct hk_bus { | |
| pthread_mutex_t lock; | |
| hk_conn_t *conns[HK_MAX_CONNS]; | |
| uint32_t conn_count; | |
| int server_fd; | |
| pthread_t accept_thread; | |
| bool running; | |
| /* stats */ | |
| uint64_t total_published; | |
| uint64_t total_routed; | |
| uint64_t total_dropped; | |
| } hk_bus_t; | |
| /* ---- API ---- */ | |
| int hk_msg_encode (const hk_message_t *m, char *out, size_t out_sz); | |
| int hk_msg_decode (const char *data, size_t len, hk_message_t *out); | |
| int hk_bus_init (hk_bus_t *bus, const char *sock_path); | |
| void hk_bus_destroy (hk_bus_t *bus); | |
| int hk_bus_connect (hk_bus_t *bus, const char *id, hk_conn_t **out); | |
| void hk_bus_disconnect(hk_bus_t *bus, hk_conn_t *conn); | |
| int hk_bus_publish (hk_bus_t *bus, const hk_message_t *msg); | |
| int hk_bus_subscribe (hk_conn_t *conn, const char *topic); | |
| int hk_bus_unsubscribe(hk_conn_t *conn, const char *topic); | |
| /* Route: deliver msg to the best matching connected conn. | |
| * Returns 0 on delivery, -1 if no subscriber found. */ | |
| int hk_bus_route (hk_bus_t *bus, const hk_message_t *msg); | |
| /* Poll next message from a connection's queue (timeout_ms=0 → non-blocking). | |
| * Returns 0 on success, 1 if queue empty, -1 on error. */ | |
| int hk_bus_recv (hk_conn_t *conn, hk_message_t *out, uint32_t timeout_ms); | |
| /* Stats snapshot */ | |
| typedef struct { | |
| uint64_t total_published; | |
| uint64_t total_routed; | |
| uint64_t total_dropped; | |
| uint32_t active_connections; | |
| } hk_bus_stats_t; | |
| void hk_bus_get_stats(const hk_bus_t *bus, hk_bus_stats_t *out); | |