diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-03-24 02:08:08 -0500 |
---|---|---|
committer | Matthew Harmsen <mharmsen@redhat.com> | 2012-03-26 15:10:41 -0700 |
commit | 4a7ec07c942544b7ca27718a11dac00505c4de7b (patch) | |
tree | cceeb31a92d7b8b307300305fba77e642b7a6495 /base/tps/src/include/main/ConfigStore.h | |
parent | 007bc68f666ef5658274a1e27989d75f2a681a20 (diff) | |
download | pki-4a7ec07c942544b7ca27718a11dac00505c4de7b.tar.gz pki-4a7ec07c942544b7ca27718a11dac00505c4de7b.tar.xz pki-4a7ec07c942544b7ca27718a11dac00505c4de7b.zip |
Removed unnecessary pki folder.
Previously the source code was located inside a pki folder.
This folder was created during svn migration and is no longer
needed. This folder has now been removed and the contents have
been moved up one level.
Ticket #131
Diffstat (limited to 'base/tps/src/include/main/ConfigStore.h')
-rw-r--r-- | base/tps/src/include/main/ConfigStore.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/base/tps/src/include/main/ConfigStore.h b/base/tps/src/include/main/ConfigStore.h new file mode 100644 index 000000000..d34e0ce7b --- /dev/null +++ b/base/tps/src/include/main/ConfigStore.h @@ -0,0 +1,126 @@ +/* --- BEGIN COPYRIGHT BLOCK --- + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + * + * Copyright (C) 2007 Red Hat, Inc. + * All rights reserved. + * --- END COPYRIGHT BLOCK --- + */ + +#ifndef CONFIG_STORE_H +#define CONFIG_STORE_H + +#ifdef HAVE_CONFIG_H +#ifndef AUTOTOOLS_CONFIG_H +#define AUTOTOOLS_CONFIG_H + +/* Eliminate warnings when using Autotools */ +#undef PACKAGE_BUGREPORT +#undef PACKAGE_NAME +#undef PACKAGE_STRING +#undef PACKAGE_TARNAME +#undef PACKAGE_VERSION + +#include <config.h> +#endif /* AUTOTOOLS_CONFIG_H */ +#endif /* HAVE_CONFIG_H */ + +#include "plhash.h" +#include "main/Buffer.h" + +#ifdef XP_WIN32 +#define TPS_PUBLIC __declspec(dllexport) +#else /* !XP_WIN32 */ +#define TPS_PUBLIC +#endif /* !XP_WIN32 */ + +#ifdef XP_WIN32 +#define TOKENDB_PUBLIC __declspec(dllexport) +#else /* !XP_WIN32 */ +#define TOKENDB_PUBLIC +#endif /* !XP_WIN32 */ + +class ConfigStoreRoot; + +class ConfigStore +{ + public: + ConfigStore(ConfigStoreRoot* root, const char *subStoreName); + //ConfigStore::ConfigStore(const ConfigStore &X); + + ~ConfigStore(); + static ConfigStore *Parse(const char *s, const char *separator); + static ConfigStore *CreateFromConfigFile(const char *cfg_path); + + int IsNameDefined(const char *name); + void SetFilePath(const char* cfg_file_path); + void Add(const char *name, const char *value); + void Remove(const char *name); + const char * GetConfig(const char *name); + int Size(); + const char * GetNameAt(int pos); + ConfigStore GetSubStore(const char*name); + ConfigStore *GetPatternSubStore(const char* pattern); + + // Retrieve config parameters + Buffer * GetConfigAsBuffer(const char *key); + Buffer * GetConfigAsBuffer(const char *key, const char *def); + int GetConfigAsInt(const char *key); + TPS_PUBLIC int GetConfigAsInt(const char *key, int def); + unsigned int GetConfigAsUnsignedInt(const char *key); + TPS_PUBLIC unsigned int GetConfigAsUnsignedInt(const char *key, + unsigned int def); + bool GetConfigAsBool(const char *key); + TPS_PUBLIC bool GetConfigAsBool(const char *key, bool def); + TOKENDB_PUBLIC const char *GetConfigAsString(const char *key, const char *def); + TPS_PUBLIC int Commit(const bool backup, char* error_msg, int len); + TPS_PUBLIC const char *GetConfigAsString(const char *key); + TPS_PUBLIC const char *GetOrderedList(); + /** + * operator[] is used to look up config strings in the ConfigStore. + * For example: + * <PRE> + * const char *param = cfg["filename"]; // equivalent + * const char *param = cfg.GetConfig("filename"); // equivalent + * </PRE> + */ + const char * operator[](const char*key); + + private: + char *m_substore_name; + ConfigStoreRoot *m_root; + char *m_cfg_file_path; + PRLock *m_lock; +}; + +class ConfigStoreRoot +{ + friend class ConfigStore; + public: + ConfigStoreRoot(); + ~ConfigStoreRoot(); + void addref(); + void release(); + + private: + PLHashTable* getSet(); + PLHashTable *m_set; + int m_set_refcount; + +}; + + + +#endif /* CONFIG_STORE_H */ |