/****************************************************************************
|
| Copyright (c) 2006 Novell, Inc.
| All Rights Reserved.
|
| This program is free software; you can redistribute it and/or
| modify it under the terms of version 2 of the GNU General Public License as
| published by the Free Software Foundation.
|
| This program 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 this program; if not, contact Novell, Inc.
|
| To contact Novell about this file by physical or electronic mail,
| you may find current contact information at www.novell.com
|
|***************************************************************************
/**
@author Brad Nicholes
*/
#ifndef OMC_OMCCLPCONF_H_INCLUDE_GUARD_
#define OMC_OMCCLPCONF_H_INCLUDE_GUARD_
#include "stlini.h"
#include <iostream>
#include <stdarg.h>
#include <openwbem/OW_String.hpp>
#include <openwbem/OW_Reference.hpp>
using namespace OW_NAMESPACE;
using std::cout;
using std::endl;
namespace OMCCLP {
class OMCCLPConfiguration;
typedef Reference<OMCCLPConfiguration> OMCCLPConfigurationRef;
class OMCCLPConfiguration {
public:
OMCCLPConfiguration();
OMCCLPConfiguration(const char *pszFilename);
OMCCLPConfiguration(const String filename);
virtual ~OMCCLPConfiguration(){}
String GetIniSetting(const char *pszSection, const char *pszKey, const char *pszDefaultVal="");
String GetIniSetting(const String section, const String key, const String defaultVal="")
{
return GetIniSetting(section.c_str(), key.c_str(), defaultVal.c_str());
}
String GetIniKeys(const char *pszSection, const char *pszDefaultVal="");
String GetIniKeys(const String section, const String defaultVal="")
{
return GetIniKeys(section.c_str(), defaultVal.c_str());
}
String GetIniSectionsByKey(const char *key, const char *pszDefaultVal="");
String GetIniSectionsByKey(const String key, const String defaultVal="")
{
return GetIniSectionsByKey(key.c_str(), defaultVal.c_str());
}
void PutIniSetting(const char *pszSection, const char *pszKey=NULL, const char *pszValue="");
void PutIniSetting(const String section, const String key="", const String value="")
{
PutIniSetting(section.c_str(), key.c_str(), value.c_str());
}
void RemoveIniSetting(const char *pszSection, const char *pszKey);
void RemoveIniSetting(const String section, const String key)
{
RemoveIniSetting(section.c_str(), key.c_str());
}
void setConfigurationFilename(const char *pszFilename);
void setConfigurationFilename(const String filename)
{
setConfigurationFilename(filename.c_str());
}
void SaveConfigurationFile();
const String getConfigurationFilename() const {return m_filename;}
const bool isConfigurationFileOpen() const {return m_isOpen;}
StlIni::INIFile getDataIni() {return m_data_ini;}
bool isOpen() {return m_isOpen;}
private:
void openConfigurationFile();
private:
String m_filename;
StlIni::INIFile m_data_ini;
bool m_isOpen;
};
}
#endif