10#ifndef xmlBase_IFile_h
11#define xmlBase_IFile_h
20#include <xercesc/util/XercesDefs.hpp>
22XERCES_CPP_NAMESPACE_BEGIN
25XERCES_CPP_NAMESPACE_END
31 XERCES_CPP_NAMESPACE_USE
46 : itemname( name ), itemstring( value ) {}
47 std::string&
title() {
return itemname; };
48 std::string&
comment() {
return itemcomment; };
49 std::string&
mystring() {
return itemstring; };
53 std::string itemstring;
54 std::string itemcomment;
58 class IFile_Section :
public std::map<std::string, IFile_Item*, std::less<std::string>> {
66 std::string&
title() {
return sectionname; };
69 bool contains( std::string name ) {
return find( name ) != end(); }
71 IFile_Item* lookUp( std::string name ) {
72 iterator it = find( name );
73 return ( it == end() ) ? 0 : ( *it ).second;
75 std::string sectionname;
80 class IFile :
protected std::map<std::string, IFile_Section*, std::less<std::string>> {
84 IFile(
const char* filename );
85 IFile(
const DOMDocument* instrument );
87 IFile(
const DOMElement* instrument );
94 virtual bool contains(
const char* section,
const char* item );
97 virtual int getInt(
const char* section,
const char* item );
98 virtual double getDouble(
const char* section,
const char* item );
99 virtual int getBool(
const char* section,
const char* item );
100 virtual const char*
getString(
const char* section,
const char* item );
105 virtual int getInt(
const char* section,
const char* item,
int defValue );
106 virtual double getDouble(
const char* section,
const char* item,
double defValue );
107 virtual int getBool(
const char* section,
const char* item,
int defValue );
108 virtual const char*
getString(
const char* section,
const char* item,
109 const char* defValue );
116 void setString(
const char* section,
const char* item,
const char* newString );
120 virtual void printOn( std::ostream& out = std::cout );
131 static void stripBlanks(
char* str1,
const char* str2,
int flags );
132 static int stricmp(
const char* str1,
const char* str2 );
141 void addSection(
const DOMElement* elt );
142 void domToIni(
const DOMDocument* doc );
143 void domToIni(
const DOMElement* doc );
144 virtual const char* _getstring(
const char* section,
const char* item,
145 int failIfNotFoundFlag = 1 );
IFileException(std::string err)
IFile_Item(std::string name, std::string value)
friend class IFile_Section
IFile_Section(std::string name)
virtual int getInt(const char *section, const char *item)
std::vector< double > doubleVector
void setString(const char *section, const char *item, const char *newString)
virtual intVector getIntVector(const char *section, const char *item)
std::vector< int > intVector
virtual bool contains(const char *section, const char *item)
static void stripBlanks(char *str1, const char *str2, int flags)
virtual doubleVector getDoubleVector(const char *section, const char *item)
IFile(const char *filename)
virtual const char * getString(const char *section, const char *item)
virtual double getDouble(const char *section, const char *item)
virtual void printOn(std::ostream &out=std::cout)
static int stricmp(const char *str1, const char *str2)
virtual int getBool(const char *section, const char *item)
friend class IFile_Section