12#if defined(__amigaos4__) && defined(__NEWLIB__) && defined(__STRICT_ANSI__)
13#define snprintf(str, size, format, ...) sprintf((str), (format), __VA_ARGS__)
23 stream <<
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
31void XmlWriter::Write<bool>(
const bool& val) {
33 stream << (val ?
"T" :
"F");
37void XmlWriter::Write<int32_t>(
const int32_t& val) {
43void XmlWriter::Write<int8_t>(
const int8_t& val) {
48void XmlWriter::Write<uint8_t>(
const uint8_t& val) {
53void XmlWriter::Write<int16_t>(
const int16_t& val) {
58void XmlWriter::Write<uint32_t>(
const uint32_t& val) {
64void XmlWriter::Write<double>(
const double& val) {
70void XmlWriter::Write<std::string>(
const std::string& val) {
72 std::string::const_iterator it;
73 for (it = val.begin(); it != val.end(); it++) {
95 if (c >= 0 && c < 32) {
97 snprintf(temp,10,
"&#x%04x;", 0xE000 + c);
108void XmlWriter::Write<std::vector<int32_t>>(
const std::vector<int32_t>& val) {
109 WriteVector<int32_t>(val);
113void XmlWriter::Write<std::vector<bool>>(
const std::vector<bool>& val) {
114 WriteVector<bool>(val);
118void XmlWriter::Write<std::vector<uint8_t>>(
const std::vector<uint8_t>& val) {
119 WriteVector<uint8_t>(val);
123void XmlWriter::Write<std::vector<int16_t>>(
const std::vector<int16_t>& val) {
124 WriteVector<int16_t>(val);
128void XmlWriter::Write<std::vector<uint32_t>>(
const std::vector<uint32_t>& val) {
129 WriteVector<uint32_t>(val);
133void XmlWriter::Write<std::vector<double>>(
const std::vector<double>& val) {
134 WriteVector<double>(val);
144 typename std::vector<T>::const_iterator it;
146 for (it = val.begin(); it != val.end(); it++) {
164 stream <<
"<" << name <<
">";
172 snprintf(temp, 6,
"%04d", ID);
173 stream <<
"<" << name <<
" id=\"" << temp <<
"\">";
180 stream <<
"</" << name <<
">";
194 for (
int i = 0; i <
indent; i++)
203template void XmlWriter::WriteNode<bool>(
const std::string& name,
const bool& val);
204template void XmlWriter::WriteNode<uint8_t>(
const std::string& name,
const uint8_t& val);
205template void XmlWriter::WriteNode<int16_t>(
const std::string& name,
const int16_t& val);
206template void XmlWriter::WriteNode<uint32_t>(
const std::string& name,
const uint32_t& val);
207template void XmlWriter::WriteNode<int32_t>(
const std::string& name,
const int32_t& val);
208template void XmlWriter::WriteNode<double>(
const std::string& name,
const double& val);
209template void XmlWriter::WriteNode<std::string>(
const std::string& name,
const std::string& val);
211template void XmlWriter::WriteNode<std::vector<bool>>(
const std::string& name,
const std::vector<bool>& val);
212template void XmlWriter::WriteNode<std::vector<uint8_t>>(
const std::string& name,
const std::vector<uint8_t>& val);
213template void XmlWriter::WriteNode<std::vector<int16_t>>(
const std::string& name,
const std::vector<int16_t>& val);
214template void XmlWriter::WriteNode<std::vector<uint32_t>>(
const std::string& name,
const std::vector<uint32_t>& val);
215template void XmlWriter::WriteNode<std::vector<int32_t>>(
const std::string& name,
const std::vector<int32_t>& val);
void BeginElement(const std::string &name)
XmlWriter(std::ostream &filestream)
void EndElement(const std::string &name)
void WriteVector(const std::vector< T > &val)
void WriteNode(const std::string &name, const T &val)