1
0
forked from jchomaz/Vulture

Tracking de l'application VNode (moteur du jeu, services, broker.. etc

This commit is contained in:
2025-05-11 18:06:20 +02:00
parent 89e9db9b62
commit 4b4060bc8b
187 changed files with 29906 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
#ifndef EXCHANGE_H
#define EXCHANGE_H
#include <stddef.h>
#include "core/nng_impl.h"
#include "nng/supplemental/nanolib/conf.h"
// Exchange MQ
#define EXCHANGE_NAME_LEN 32
#define TOPIC_NAME_LEN 128
#define RINGBUFFER_MAX 64
typedef struct exchange_s exchange_t;
struct exchange_s {
char name[EXCHANGE_NAME_LEN];
char topic[TOPIC_NAME_LEN];
ringBuffer_t *rbs[RINGBUFFER_MAX];
unsigned int rb_count;
};
NNG_DECL int exchange_client_get_msg_by_key(void *arg, uint64_t key, nni_msg **msg);
NNG_DECL int exchange_client_get_msgs_by_key(void *arg, uint64_t key, uint32_t count, nng_msg ***list);
NNG_DECL int exchange_client_get_msgs_fuzz(void *arg, uint64_t start, uint64_t end, uint32_t *count, nng_msg ***list);
NNG_DECL int exchange_init(exchange_t **ex, char *name, char *topic,
unsigned int *rbsCaps, char **rbsName, uint8_t *rbsFullOp, unsigned int rbsCount);
NNG_DECL int exchange_add_rb(exchange_t *ex, ringBuffer_t *rb);
NNG_DECL int exchange_release(exchange_t *ex);
NNG_DECL int exchange_handle_msg(exchange_t *ex, uint64_t key, void *msg, nng_aio *aio);
NNG_DECL int exchange_get_ringBuffer(exchange_t *ex, char *rbName, ringBuffer_t **rb);
#endif