9 #ifndef CLUON_ENVELOPE_HPP    10 #define CLUON_ENVELOPE_HPP    14 #include "cluon/cluonDataStructures.hpp"    33     std::string dataToSend;
    35         std::stringstream sstr;
    38         envelope.accept(protoEncoder);
    41         uint32_t length{
static_cast<uint32_t
>(tmp.size())};
    43         length = htole32(length);
    46         constexpr 
unsigned char OD4_HEADER_BYTE0 = 0x0D;
    47         constexpr 
unsigned char OD4_HEADER_BYTE1 = 0xA4;
    48         sstr.put(static_cast<char>(OD4_HEADER_BYTE0));
    49         auto posByte1 = sstr.tellp();
    50         sstr.write(reinterpret_cast<char *>(&length), static_cast<std::streamsize>(
sizeof(uint32_t)));
    51         auto posByte5 = sstr.tellp();
    53         sstr.put(static_cast<char>(OD4_HEADER_BYTE1));
    57         sstr.write(tmp.data(), 
static_cast<std::streamsize
>(tmp.size()));
    59         dataToSend = sstr.str();
    75 inline std::pair<bool, cluon::data::Envelope> 
extractEnvelope(std::istream &in) noexcept {
    77     cluon::data::Envelope env;
    79         constexpr uint8_t OD4_HEADER_SIZE{5};
    80         std::vector<char> buffer;
    81         buffer.reserve(OD4_HEADER_SIZE);
    82 #ifdef WIN32                                           // LCOV_EXCL_LINE    85         for (uint8_t i{0}; i < OD4_HEADER_SIZE; i++) { 
    92 #else                 // LCOV_EXCL_LINE    93         in.read(&buffer[0], OD4_HEADER_SIZE);
    94         if (OD4_HEADER_SIZE == in.gcount()) {
    96             if ((0x0D == static_cast<uint8_t>(buffer[0])) && (0xA4 == 
static_cast<uint8_t
>(buffer[1]))) {
    97                 const uint32_t LENGTH{le32toh(*reinterpret_cast<uint32_t *>(&buffer[1])) >> 8};
    98                 buffer.reserve(LENGTH);
    99 #ifdef WIN32                                           // LCOV_EXCL_LINE   101                 for (uint32_t i{0}; i < LENGTH; i++) { 
   107 #else // LCOV_EXCL_LINE   108                 in.read(&buffer[0], static_cast<std::streamsize>(LENGTH));
   109                 retVal = 
static_cast<int32_t
>(LENGTH) == in.gcount();
   112                     std::stringstream sstr(std::string(buffer.begin(), buffer.begin() + 
static_cast<std::streamsize
>(LENGTH)));
   119     return std::make_pair(
retVal, env);
   125 template <
typename T>
   129     std::stringstream sstr(envelope.serializedData());
 
Definition: FromProtoVisitor.hpp:28
 
std::string serializeEnvelope(cluon::data::Envelope &&envelope) noexcept
Definition: Envelope.hpp:32
 
void decodeFrom(std::istream &in) noexcept
Definition: FromProtoVisitor.cpp:35
 
std::pair< bool, cluon::data::Envelope > extractEnvelope(std::istream &in) noexcept
Definition: Envelope.hpp:75
 
std::string encodedData() const noexcept
Definition: ToProtoVisitor.cpp:15
 
T extractMessage(cluon::data::Envelope &&envelope) noexcept
Definition: Envelope.hpp:126
 
std::pair< std::vector< MetaMessage >, MessageParserErrorCodes > retVal
Definition: MessageParser.cpp:291
 
Definition: ToProtoVisitor.hpp:23