// SPDX-License-Identifier: MIT
#ifndef LIBELOS_MESSAGE_H
#define LIBELOS_MESSAGE_H
#include <stdint.h>
typedef struct elosMessage {
uint8_t version;
uint8_t message;
uint16_t length;
char json[];
} __attribute__((aligned(1))) elosMessage_t;
#define ELOS_PROTOCOL_VERSION 0x01
#define ELOS_MESSAGE_INVALID 0x00
#define ELOS_MESSAGE_GET_VERSION 0x01
#define ELOS_MESSAGE_EVENT_PUBLISH 0x02
#define ELOS_MESSAGE_EVENT_SUBSCRIBE 0x03
#define ELOS_MESSAGE_LOG_FIND_EVENT 0x04
#define ELOS_MESSAGE_EVENTQUEUE_READ 0x05
#define ELOS_MESSAGE_EVENT_UNSUBSCRIBE 0x06
#define ELOS_MESSAGE_RESPONSE_BIT 0x80
#define ELOS_MESSAGE_RESPONSE_INVALID ELOS_MESSAGE_RESPONSE_BIT
#define ELOS_MESSAGE_RESPONSE_GET_VERSION (ELOS_MESSAGE_GET_VERSION | ELOS_MESSAGE_RESPONSE_BIT)
#define ELOS_MESSAGE_RESPONSE_EVENT_PUBLISH (ELOS_MESSAGE_EVENT_PUBLISH | ELOS_MESSAGE_RESPONSE_BIT)
#define ELOS_MESSAGE_RESPONSE_EVENT_SUBSCRIBE (ELOS_MESSAGE_EVENT_SUBSCRIBE | ELOS_MESSAGE_RESPONSE_BIT)
#define ELOS_MESSAGE_RESPONSE_EVENT_UNSUBSCRIBE (ELOS_MESSAGE_EVENT_UNSUBSCRIBE | ELOS_MESSAGE_RESPONSE_BIT)
#define ELOS_MESSAGE_RESPONSE_LOG_FIND_EVENT (ELOS_MESSAGE_LOG_FIND_EVENT | ELOS_MESSAGE_RESPONSE_BIT)
#define ELOS_MESSAGE_RESPONSE_EVENTQUEUE_READ (ELOS_MESSAGE_EVENTQUEUE_READ | ELOS_MESSAGE_RESPONSE_BIT)
#endif