blob: 8143bccf131ef5326a580a699b674a86760a8a2c [file] [log] [blame]
/*
* BaSyxNativeProvider.h
*
* Created on: 07.08.2018
* Author: schnicke
*/
#ifndef VAB_VAB_PROVIDER_BASYX_FRAME_BASYXNATIVEFRAMEPROCESSOR_H
#define VAB_VAB_PROVIDER_BASYX_FRAME_BASYXNATIVEFRAMEPROCESSOR_H
#include <string>
#include <BaSyx/vab/backend/connector/JSONProvider.h>
#include <BaSyx/vab/provider/native/frame/BaSyxNativeFrameHelper.h>
#include <BaSyx/vab/core/IModelProvider.h>
#include <BaSyx/shared/serialization/json.h>
namespace basyx {
namespace vab {
namespace provider {
namespace native {
namespace frame {
class BaSyxNativeFrameProcessor {
public:
BaSyxNativeFrameProcessor(vab::core::IModelProvider* providerBackend);
~BaSyxNativeFrameProcessor();
/**
* Processes a rxFrame and performs the encoded command
*
* The following structure is assumed:
* 1 byte command
* x byte depending on command
*/
void processInputFrame(char const* rxFrame, std::size_t rxSize, char* txFrame, std::size_t* txSize);
private:
JSONProvider<vab::core::IModelProvider> jsonProvider;
void processGet(char const* rxFrame, char* txFrame, std::size_t* txSize);
void processSet(char const* rxFrame, char* txFrame, std::size_t* txSize);
void processCreate(char const* rxFrame, char* txFrame, std::size_t* txSize);
void processDelete(char const* rxFrame, std::size_t rxSize, char* txFrame, std::size_t* txSize);
void processInvoke(char const* rxFrame, char* txFrame, std::size_t* txSize);
};
}
}
}
}
}
#endif /* VAB_VAB_PROVIDER_BASYX_FRAME_BASYXNATIVEFRAMEPROCESSOR_H */