// // 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