7#ifndef ATLAS_CODECS_PACKED_H
8#define ATLAS_CODECS_PACKED_H
11#include <Atlas/Codec.h>
57 void mapIntItem(std::string name, std::int64_t)
override;
83 std::istream &m_istream;
84 std::ostream &m_ostream;
100 std::stack<State> m_state;
114 void parsingBegins(
char);
116 void parseStream(
char);
120 void parseList(
char);
122 void parseMapBegin(
char);
124 void parseListBegin(
char);
128 void parseFloat(
char);
130 void parseString(
char);
132 void parseName(
char);
134 inline std::string hexEncode(std::string data) {
136 for (
size_t i = 0; i < data.size(); i++) {
137 char currentChar = data[i];
139 switch (currentChar) {
151 m_encoded.reserve(data.size() + (data.size() / 4));
153 for (; i < data.size(); i++) {
154 currentChar = data[i];
156 switch (currentChar) {
186 inline std::string hexDecode(std::string data) {
189 for (
size_t i = 0; i < data.size(); i++) {
190 char currentChar = data[i];
191 if (currentChar ==
'+') {
197 for (; i < data.size(); i++) {
198 currentChar = data[i];
199 if (currentChar ==
'+') {
std::string charToHex(char c)
Convert an ASCII char to its hexadecimal value.
char hexToChar(const char *hex)
Convert a string with a hexadecimal value (2 characters) to an ASCII char.
void streamBegin() override
void streamEnd() override
void streamMessage() override
void mapListItem(std::string name) override
void listNoneItem() override
void listMapItem() override
void mapNoneItem(std::string name) override
void mapFloatItem(std::string name, double) override
void listListItem() override
void mapMapItem(std::string name) override
void mapStringItem(std::string name, std::string) override
void listIntItem(std::int64_t) override
void listStringItem(std::string) override
void listFloatItem(double) override
void mapIntItem(std::string name, std::int64_t) override