19#ifndef CWIST_NET_GRAPHQL_WS_H
20#define CWIST_NET_GRAPHQL_WS_H
24#include <cjson/cJSON.h>
47 const cJSON *variables,
74 const uint8_t *initial,
size_t initial_len);
Full-featured, production-ready GraphQL query & mutation execution engine.
struct cwist_graphql_schema cwist_graphql_schema_t
void cwist_graphql_event_source_destroy(cwist_graphql_event_source_t *src)
Destroy an event source, freeing all topic strings and the set.
bool cwist_graphql_event_source_add_topic(cwist_graphql_event_source_t *src, const char *topic)
Add a topic to an event source.
cwist_graphql_event_source_t *(* cwist_graphql_subscribe_fn)(const cJSON *args, const cJSON *variables, void *ctx)
bool cwist_graphql_ws_attach(cwist_graphql_ws_t *gws, int fd, cwist_reactor_t *reactor, const uint8_t *initial, size_t initial_len)
struct cwist_graphql_event_source cwist_graphql_event_source_t
bool cwist_graphql_ws_add_subscription(cwist_graphql_ws_t *gws, const char *field, cwist_graphql_subscribe_fn subscribe_fn, void *ctx)
Register (or replace) the resolver for a subscription root field.
cwist_graphql_ws_t * cwist_graphql_ws_create(cwist_graphql_schema_t *schema)
Create a graphql-ws endpoint holding a subscription field registry.
struct cwist_graphql_ws cwist_graphql_ws_t
size_t cwist_graphql_publish(const char *topic, const cJSON *payload)
cwist_graphql_event_source_t * cwist_graphql_event_source_create(void)
Create an empty event source (topic interest set).
void cwist_graphql_ws_destroy(cwist_graphql_ws_t *gws)
Destroy an endpoint and its subscription field registry.
struct cwist_reactor cwist_reactor_t