XfcTransportProtocol/Inc/XfcProtTable.h

34 lines
905 B
C

//
// Created by xemon on 01.11.22.
//
#ifndef XFC_TRANSPORT_PROTOCOL_XFCPROTTABLE_H
#define XFC_TRANSPORT_PROTOCOL_XFCPROTTABLE_H
#include "XfcProtProcessor.h"
typedef struct {
tXfcProtProcessor *items;
uint16_t count;
uint16_t limit;
} tXfcProtTable;
void XfcProtTable_Init(tXfcProtTable *env, tXfcProtProcessor *allocatedMem, uint16_t memLimit);
#define XfcProtTable_InitStatic(ENV, MEM) XfcProtTable_Init(ENV,MEM, sizeof(MEM) / sizeof(tXfcProtProcessor))
bool XfcProtTable_Add(
tXfcProtTable *env,
char *staticStringTextId,
uint8_t textIdLen,
tXfcProtMethod method,
void *args
);
#define XfcProtTable_AddStatic(ENV, TEXT_ID, METHOD, ARGS) XfcProtTable_Add(ENV, TEXT_ID,sizeof(TEXT_ID)-1,(tXfcProtMethod)METHOD, ARGS)
tXfcProtProcessor *XfcProtTable_GetForId(tXfcProtTable *env, uint16_t id);
#endif //XFC_TRANSPORT_PROTOCOL_XFCPROTTABLE_H