Files
funstraw/tlv.h

28 lines
626 B
C
Raw Normal View History

#include <stdint.h>
#include <list>
#include <string>
class TLVNode {
public:
TLVNode(const uint16_t type);
TLVNode(const uint16_t type, const std::string value);
~TLVNode();
static std::unique_ptr<TLVNode> Decode(const std::string& input);
void AppendChild(TLVNode* child);
TLVNode* FindChild(const uint16_t type) const;
void Encode(std::string* output) const;
bool IsContainer() const;
uint16_t GetType() const;
const std::string& GetValue() const;
2015-02-07 16:04:40 -08:00
const std::list<TLVNode*>& GetChildren() const;
2015-02-06 16:27:47 +00:00
private:
const uint16_t type_;
const std::string value_;
std::list<TLVNode*> children_;
};