Files
pip/piconfig.h
2011-03-01 06:07:16 +03:00

75 lines
3.7 KiB
C++

#ifndef PICONFIG_H
#define PICONFIG_H
#include "pifile.h"
class PIConfig: public PIFile
{
public:
PIConfig(const PIString & path, Flags<Mode> mode = Read | Write);
~PIConfig() {;}
PIString getValue(const PIString & vname, const PIString & def = "", bool * exist = 0) const;
PIString getValue(const PIString & vname, const char * def = "", bool * exist = 0) const {return getValue(vname, PIString(def), exist);}
PIStringList getValue(const PIString & vname, const PIStringList & def = PIStringList(), bool * exist = 0) const;
bool getValue(const PIString & vname, const bool def = false, bool * exist = 0) const;
char getValue(const PIString & vname, const char def = 0, bool * exist = 0) const;
short getValue(const PIString & vname, const short def = 0, bool * exist = 0) const;
int getValue(const PIString & vname, const int def = 0, bool * exist = 0) const;
long getValue(const PIString & vname, const long def = 0, bool * exist = 0) const;
uchar getValue(const PIString & vname, const uchar def = 0, bool * exist = 0) const;
ushort getValue(const PIString & vname, const ushort def = 0, bool * exist = 0) const;
uint getValue(const PIString & vname, const uint def = 0, bool * exist = 0) const;
ulong getValue(const PIString & vname, const ulong def = 0, bool * exist = 0) const;
float getValue(const PIString & vname, const float def = 0., bool * exist = 0) const;
double getValue(const PIString & vname, const double def = 0., bool * exist = 0) const;
void setValue(const PIString & name, const PIString & value, const PIString & type = "s", bool write = true);
void setValue(const PIString & name, const PIStringList & value, bool write = true);
void setValue(const PIString & name, const char * value, bool write = true);
void setValue(const PIString & name, const bool value, bool write = true);
void setValue(const PIString & name, const char value, bool write = true);
void setValue(const PIString & name, const short value, bool write = true);
void setValue(const PIString & name, const int value, bool write = true);
void setValue(const PIString & name, const long value, bool write = true);
void setValue(const PIString & name, const uchar value, bool write = true);
void setValue(const PIString & name, const ushort value, bool write = true);
void setValue(const PIString & name, const uint value, bool write = true);
void setValue(const PIString & name, const ulong value, bool write = true);
void setValue(const PIString & name, const float value, bool write = true);
void setValue(const PIString & name, const double value, bool write = true);
PIString getValue(uint number) const {return settval[number];}
PIString getName(uint number) const {return settname[number];}
PIString getComment(uint number) const {return settcom[number];}
void setValue(uint number, const PIString & value, bool write = true);
bool existsValue(const PIString & name);
char getType(uint number) const {return setttype[number][0];}
int getNumber(const PIString & name);
void setName(uint number, const PIString & name);
void setType(uint number, const PIString & type);
void setComment(uint number, const PIString & comment);
int numValues() const {return settval.size();}
void addLine(const PIString & name, const PIString & value, const PIString & type = "s");
void insertLine(uint number, const PIString & name, const PIString & value, const PIString & type = "s");
void deleteLine(const PIString & name);
void deleteLine(uint number);
void readAll();
void writeAll();
private:
void parse();
PIVector<PIString> settname;
PIVector<PIString> settval;
PIVector<PIString> settcom;
PIVector<PIString> setttab;
PIVector<PIString> setttype;
PIVector<PIString> all;
PIVector<uint> settlines;
uint lines;
};
#endif // PICONFIG_H