big merge

This commit is contained in:
Philippe G
2021-12-18 21:04:23 -08:00
parent 955692f8ad
commit 898998efb0
583 changed files with 84472 additions and 1965 deletions

View File

@@ -0,0 +1,42 @@
#ifndef PBCOMMON_H
#define PBCOMMON_H
#include <cstdint>
#include <PbWriter.h>
#include <optional>
#include <PbReader.h>
class BaseProtobufMessage
{
private:
public:
bool firstField = true;
uint32_t lastMessagePosition;
void parseFromVector(std::vector<uint8_t> const &rawData)
{
auto reader = std::make_shared<PbReader>(rawData);
parseWithReader(reader);
}
void encodeToVector(std::vector<uint8_t> &rawData)
{
auto writer = std::make_shared<PbWriter>(rawData);
encodeWithWriter(writer);
}
void parseWithReader(std::shared_ptr<PbReader> reader)
{
firstField = true;
while (reader->next())
{
if (!decodeField(reader))
{
reader->skip();
} else {
firstField = false;
}
}
}
virtual void encodeWithWriter(std::shared_ptr<PbWriter> writer) = 0;
virtual bool decodeField(std::shared_ptr<PbReader> reader) = 0;
};
#endif