MCPcopy Create free account
hub / github.com/3rdparty/libprocess / DataEncoder

Class DataEncoder

src/encoder.hpp:59–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57
58
59class DataEncoder : public Encoder
60{
61public:
62 DataEncoder(const std::string& _data)
63 : data(_data), index(0) {}
64
65 DataEncoder(std::string&& _data)
66 : data(std::move(_data)), index(0) {}
67
68 ~DataEncoder() override {}
69
70 Kind kind() const override
71 {
72 return Encoder::DATA;
73 }
74
75 virtual const char* next(size_t* length)
76 {
77 size_t temp = index;
78 index = data.size();
79 *length = data.size() - temp;
80 return data.data() + temp;
81 }
82
83 void backup(size_t length) override
84 {
85 if (index >= length) {
86 index -= length;
87 }
88 }
89
90 size_t remaining() const override
91 {
92 return data.size() - index;
93 }
94
95private:
96 const std::string data;
97 size_t index;
98};
99
100
101class MessageEncoder : public DataEncoder

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected