7 #ifndef ATLAS_CODECS_BACH_H
8 #define ATLAS_CODECS_BACH_H
10 #include <Atlas/Codec.h>
15 namespace Atlas {
namespace Codecs {
27 virtual void poll(
bool can_read =
true);
33 virtual void mapMapItem(
const std::string& name);
35 virtual void mapIntItem(
const std::string& name,
long);
36 virtual void mapFloatItem(
const std::string& name,
double);
37 virtual void mapStringItem(
const std::string& name,
const std::string&);
47 unsigned linenum()
const {
return m_linenum;}
51 std::iostream& m_socket;
71 bool stringmode()
const;
73 std::string m_name, m_data;
74 std::stack<State> m_state;
76 inline void parseInit(
char);
77 inline void parseStream(
char);
78 inline void parseMap(
char);
79 inline void parseList(
char);
80 inline void parseData(
char);
81 inline void parseInt(
char);
82 inline void parseFloat(
char);
83 inline void parseString(
char);
84 inline void parseLiteral(
char);
85 inline void parseName(
char);
86 inline void parseComment(
char);
88 inline const std::string encodeString(
const std::string &);
89 inline const std::string decodeString(
const std::string &);
91 void writeIntItem(
const std::string &,
long);
92 void writeFloatItem(
const std::string &,
double);
93 void writeStringItem(
const std::string &,
const std::string &);
94 void writeLine(
const std::string &,
bool=
true,
bool=
false);
99 #endif // ATLAS_CODECS_BACH_H