// config.cpp
//
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Matthew Flood
// See file AUTHORS for contact information
//
// This file is part of RudeConfig.
//
// RudeConfig is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
//
// RudeConfig is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with RudeConfig; (see COPYING) if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//------------------------------------------------------------------------
#include "config.h"
#ifndef INCLUDED_RUDE_CONFIGIMPL_H
#include "ConfigImpl.h"
#endif
#ifndef INCLUDED_IOSTREAM
#include <iostream>
#define INCLUDED_IOSTREAM
#endif
#ifndef INCLUDED_STRING
#include <string>
#define INCLUDED_STRING
#endif
using namespace rude::config;
namespace rude{
//////////////////////////////////////////
// STATIC Methods
//////////////////////////////////////////
const char *Config::version()
{
static std::string ver="3.";
ver += ConfigImpl::version();
return ver.c_str();
}
void Config::setDefaultConfigFile(const char *filepath)
{
ConfigImpl::setDefaultConfigFile(filepath);
}
const char *Config::getDefaultConfigFile()
{
return ConfigImpl::getDefaultConfigFile();
}
void Config::setDefaultCommentCharacter(char c)
{
ConfigImpl::setDefaultCommentCharacter(c);
}
char Config::getDefaultCommentCharacter()
{
return ConfigImpl::getDefaultCommentCharacter();
}
void Config::setDefaultDelimiter(char c)
{
ConfigImpl::setDefaultDelimiter(c);
}
char Config::getDefaultDelimiter()
{
return ConfigImpl::getDefaultDelimiter();
}
void Config::setDefaultPreserveDeleted(bool shouldPreserve)
{
ConfigImpl::setDefaultPreserveDeleted(shouldPreserve);
}
bool Config::getDefaultPreserveDeleted()
{
return ConfigImpl::getDefaultPreserveDeleted();
}
//////////////////////////////////////////
// INSTANCE Methods
//////////////////////////////////////////
Config::Config()
{
d_implementation = new ConfigImpl();
}
Config::~Config()
{
delete d_implementation;
d_implementation = 0;
}
void Config::setConfigFile(const char *filepath)
{
d_implementation->setConfigFile(filepath);
}
const char * Config::getConfigFile()
{
return d_implementation->getConfigFile();
}
void Config::setCommentCharacter(char commentchar)
{
d_implementation->setCommentCharacter(commentchar);
}
void Config::preserveDeletedData(bool shouldPreserve)
{
d_implementation->preserveDeletedData(shouldPreserve);
}
void Config::setDelimiter(char delimiter)
{
d_implementation->setDelimiter(delimiter);
}
bool Config::load()
{
return d_implementation->load();
}
bool Config::load(const char *filename)
{
return d_implementation->load(filename);
}
bool Config::save()
{
return d_implementation->save();
}
bool Config::save(const char *filepath)
{
return d_implementation->save(filepath);
}
void Config::clear()
{
d_implementation->clear();
}
const char *Config::getError()
{
return d_implementation->getError();
}
//////////////////////////////////////////
// Section Methods
//////////////////////////////////////////
int Config::getNumSections() const
{
return d_implementation->getNumSections();
}
const char *Config::getSectionNameAt(int index) const
{
return d_implementation->getSectionNameAt(index);
}
bool Config::setSection(const char *sectionname, bool shouldCreate)
{
return d_implementation->setSection(sectionname, shouldCreate);
}
bool Config::setSection(const char *sectionname)
{
return d_implementation->setSection(sectionname, true);
}
bool Config::deleteSection(const char *sectionname)
{
return d_implementation->deleteSection(sectionname);
}
//////////////////////////////////////////
// Data Methods
//////////////////////////////////////////
int Config::getNumDataMembers() const
{
return d_implementation->getNumDataMembers();
}
const char *Config::getDataNameAt(int index) const
{
return d_implementation->getDataNameAt(index);
}
bool Config::exists(const char *name) const
{
return d_implementation->exists(name);
}
void Config::setBoolValue(const char *name, bool value)
{
d_implementation->setStringValue(name, ConfigImpl::boolToString(value));
// d_implementation->setBoolValue(name, value);
}
bool Config::getBoolValue(const char *name) const
{
return ConfigImpl::stringToBool(d_implementation->getStringValue(name));
//return d_implementation->getBoolValue(name);
}
void Config::setIntValue(const char *name, int value)
{
d_implementation->setStringValue(name, ConfigImpl::intToString(value));
// d_implementation->setIntValue(name, value);
}
int Config::getIntValue(const char *name) const
{
return ConfigImpl::stringToInt(d_implementation->getStringValue(name));
//return d_implementation->getIntValue(name);
}
void Config::setDoubleValue(const char *name, double value)
{
d_implementation->setStringValue(name, ConfigImpl::doubleToString(value));
// d_implementation->setDoubleValue(name, value);
}
double Config::getDoubleValue(const char *name) const
{
return ConfigImpl::stringToDouble(d_implementation->getStringValue(name));
//return d_implementation->getDoubleValue(name);
}
void Config::setStringValue(const char *name, const char *value)
{
d_implementation->setStringValue(name, value);
}
const char * Config::getStringValue(const char *name) const
{
return d_implementation->getStringValue(name);
}
void Config::setValue(const char *name, const char *value)
{
d_implementation->setStringValue(name, value);
}
const char * Config::getValue(const char *name) const
{
return d_implementation->getStringValue(name);
}
bool Config::deleteData(const char *name)
{
return d_implementation->deleteData(name);
}
} // end namespace rude
syntax highlighted by Code2HTML, v. 0.9.1