ircproxy The Ultimate Cyborg |
Definition in file PersistXML.h.
#include <string>
#include <fstream>
#include <stdexcept>
#include <vector>
#include <list>
#include <stack>
#include <sstream>
#include <libxml/parser.h>
#include <boost/shared_ptr.hpp>
#include <boost/optional/optional.hpp>
#include "debug.h"
#include "exceptions.h"
Go to the source code of this file.
Classes | |
class | xml_invalid_label |
Exception class used to signal an invalid XML label. More... | |
class | xml_parse_error |
Exception class used to signal a failure in parsing an XML document. More... | |
class | Indentation |
A class to control output indentation. More... | |
class | PersistXML |
A persistent object archiver. More... | |
class | XMLLabel |
An XML label. More... | |
Defines | |
#define | SERIALIZE_BUILTINTYPE(type) |
Functions | |
bool | valid_label (std::string const &label) |
Returns true if the label is valid. |
#define SERIALIZE_BUILTINTYPE | ( | type | ) |
Value:
template<> inline void PersistXML::serialize(std::string const& label, type& builtin) \ { this->serialize_builtin(label, builtin); }
For internal use only.
Helper macro to define serialization specializations for the builtin types.
Definition at line 467 of file PersistXML.h.
bool valid_label | ( | std::string const & | label | ) |
Returns true if the label is valid.
Definition at line 93 of file PersistXML.cc.
Referenced by PersistXML::serialize().
00094 { 00095 if (label.size() == 0) 00096 return false; 00097 char first_char = label[0]; 00098 if (first_char != '_' && !std::isalpha(first_char)) 00099 return false; 00100 if (label.size() >= 3 && 00101 std::tolower(first_char) == 'x' && 00102 std::tolower(label[1]) == 'm' && 00103 std::tolower(label[2]) == 'l') 00104 return false; 00105 std::string::const_iterator iter = label.begin(); 00106 while (++iter != label.end()) 00107 { 00108 char next_character = *iter; 00109 if (!std::isalpha(next_character) && !std::isdigit(next_character) && !std::ispunct(next_character)) 00110 return false; 00111 } 00112 return true; 00113 }
Copyright © 2005-2007 Carlo Wood. All rights reserved. |
---|