mirror of
https://github.com/reactos/CMake.git
synced 2024-12-13 14:27:23 +00:00
de955e4b6d
This converts the KWSys license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the KWSys copyright to cover the full development time range.
108 lines
2.7 KiB
C++
108 lines
2.7 KiB
C++
/*============================================================================
|
|
KWSys - Kitware System Library
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef @KWSYS_NAMESPACE@_Registry_hxx
|
|
#define @KWSYS_NAMESPACE@_Registry_hxx
|
|
|
|
#include <@KWSYS_NAMESPACE@/Configure.h>
|
|
|
|
#include <@KWSYS_NAMESPACE@/stl/string>
|
|
|
|
namespace @KWSYS_NAMESPACE@
|
|
{
|
|
|
|
class RegistryHelper;
|
|
|
|
/** \class Registry
|
|
* \brief Portable registry class
|
|
*
|
|
* This class abstracts the storing of data that can be restored
|
|
* when the program executes again. On Win32 platform it is
|
|
* implemented using the registry and on unix as a file in
|
|
* the user's home directory.
|
|
*/
|
|
class @KWSYS_NAMESPACE@_EXPORT Registry
|
|
{
|
|
public:
|
|
enum RegistryType
|
|
{
|
|
#ifdef _WIN32
|
|
WIN32_REGISTRY,
|
|
#endif
|
|
FILE_REGISTRY
|
|
};
|
|
|
|
#ifdef _WIN32
|
|
Registry(RegistryType registryType = WIN32_REGISTRY);
|
|
#else
|
|
Registry(RegistryType registryType = FILE_REGISTRY);
|
|
#endif
|
|
|
|
virtual ~Registry();
|
|
|
|
//! Read a value from the registry.
|
|
bool ReadValue(const char *subkey, const char *key, const char **value);
|
|
|
|
//! Delete a key from the registry.
|
|
bool DeleteKey(const char *subkey, const char *key);
|
|
|
|
//! Delete a value from a given key.
|
|
bool DeleteValue(const char *subkey, const char *key);
|
|
|
|
//! Set value in a given key.
|
|
bool SetValue(const char *subkey, const char *key,
|
|
const char *value);
|
|
|
|
//! Open the registry at toplevel/subkey.
|
|
bool Open(const char *toplevel, const char *subkey,
|
|
int readonly);
|
|
|
|
//! Close the registry.
|
|
bool Close();
|
|
|
|
//! Read from local or global scope. On Windows this mean from local machine
|
|
// or local user. On unix this will read from $HOME/.Projectrc or
|
|
// /etc/Project
|
|
void GlobalScopeOn() { this->SetGlobalScope(1); }
|
|
void GlobalScopeOff() { this->SetGlobalScope(0); }
|
|
void SetGlobalScope(bool b);
|
|
bool GetGlobalScope();
|
|
|
|
// Set or get the toplevel registry key.
|
|
void SetTopLevel(const char* tl);
|
|
const char* GetTopLevel();
|
|
|
|
// Return true if registry opened
|
|
bool GetOpened() { return m_Opened; }
|
|
|
|
// Should the registry be locked?
|
|
bool GetLocked() { return m_Locked; }
|
|
|
|
enum {
|
|
READONLY,
|
|
READWRITE
|
|
};
|
|
|
|
// Return true if the character is space.
|
|
int IsSpace(char c);
|
|
|
|
private:
|
|
RegistryHelper* Helper;
|
|
|
|
bool m_Opened;
|
|
|
|
bool m_Locked;
|
|
}; // End Class: Registry
|
|
|
|
} // namespace @KWSYS_NAMESPACE@
|
|
|
|
#endif
|