#include "icsneo/communication/message/genericapistatusmessage.h" #include "icsneo/communication/message/extendedresponsemessage.h" #include "icsneo/communication/command.h" using namespace icsneo; std::shared_ptr GenericAPIStatusMessage::DecodeToMessage(const std::vector& bytestream) { if(bytestream.size() < sizeof(ExtendedResponseMessage::ResponseHeader)) return nullptr; const auto* hdr = reinterpret_cast(bytestream.data()); if(hdr->command != ExtendedCommand::ReadGenericAPIStatus) return nullptr; const size_t required = sizeof(ExtendedResponseMessage::ResponseHeader) + sizeof(GenericAPIStatusResponsePacket); if(bytestream.size() < required) return nullptr; auto msg = std::make_shared(); const auto* packet = reinterpret_cast(bytestream.data() + sizeof(ExtendedResponseMessage::ResponseHeader)); msg->functionId = packet->functionId; msg->finishedProcessing = static_cast(packet->finishedProcessing); msg->functionError = packet->functionError; msg->callbackError = packet->callbackError; return msg; }