XfcTransportProtocol/Inc/XfcProtRespondent.h

61 lines
1.4 KiB
C

//
// Created by CFIF on 05.05.2022.
//
#ifndef PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H
#define PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H
#define XFC_COMINT_COUNTING
#include "XfcCounting.h"
#include "XfcProtDecoder.h"
#include "XfcProtProcessor.h"
#include "XfcProtEncoder.h"
#include "XfcProtTable.h"
#include "XfcProtCommon.h"
typedef struct {
#ifdef XFC_COMINT_COUNTING
struct {
uint32_t rx;
uint32_t tx;
uint32_t rx_skip;
uint32_t tx_skip;
} counters;
#endif
void *commonArgs;
tXfcProtDecoder requestDecoder;
tXfcProtEncoder responseEncoder;
tXfcArray requestBuffer;
tXfcArray responseBuffer;
tXfcProtTable *processors;
} tXfcProtRespondent;
//Этот вид обработчика слушает комманды во входном потоке данных
//находит обработчик по id, и возвращает ответ (в отличии от Listener)
void XfcProtRespondent_Init(
tXfcProtRespondent *env,
void *commonArgs,
tXfcProtTable *processors,
tXfcArray requestBuffer,
tXfcArray responseBuffer,
tXfcProtMagicNumbers magicNumbers
);
bool XfcProtRespondent_Step(tXfcProtRespondent *env);
void XfcProtRespondent_SkipCurrentRequest(tXfcProtRespondent *env);
void XfcProtRespondent_AddBytes(tXfcProtRespondent *env, uint8_t *bytes, uint16_t size);
#endif //PDM_FIR_TEST_XFCTRANSPACKRESPONSER_H