You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.5 KiB
C++
66 lines
2.5 KiB
C++
/*
|
|
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
|
* its licensors.
|
|
*
|
|
* For complete copyright and license terms please see the LICENSE at the root of this
|
|
* distribution (the "License"). All use of this software is governed by the License,
|
|
* or, if provided, by the license below or the license accompanying this file. Do not
|
|
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
*
|
|
*/
|
|
// Original file Copyright Crytek GMBH or its affiliates, used under license.
|
|
|
|
#ifndef CRYINCLUDE_TOOLS_RC_RESOURCECOMPILER_ICFGFILE_H
|
|
#define CRYINCLUDE_TOOLS_RC_RESOURCECOMPILER_ICFGFILE_H
|
|
#pragma once
|
|
|
|
enum EConfigPriority : uint32_t;
|
|
class IConfigSink;
|
|
|
|
/** Configuration file interface.
|
|
Use format similar to windows .ini files.
|
|
*/
|
|
class ICfgFile
|
|
{
|
|
public:
|
|
virtual ~ICfgFile() {}
|
|
|
|
//! Delete instance of configuration file class.
|
|
virtual void Release() = 0;
|
|
|
|
//! Load configuration file.
|
|
//! @return true=success, false otherwise
|
|
virtual bool Load(const string& fileName) = 0;
|
|
|
|
//! Save configuration file, with the stored name in m_fileName
|
|
//! @return true=success, false otherwise
|
|
virtual bool Save() = 0;
|
|
|
|
//! @param inszSection
|
|
//! @param inszKey
|
|
//! @param inszValue
|
|
virtual void UpdateOrCreateEntry(const char* inszSection, const char* inszKey, const char* inszValue) = 0;
|
|
|
|
//! @param inszSection
|
|
//! @param inszKey
|
|
virtual void RemoveEntry(const char* inszSection, const char* inszKey) = 0;
|
|
|
|
//! Copy section keys to config specified by the 'config' parameter.
|
|
// keySuffixes is a non-empty string containing one or more comma-separated suffixes:
|
|
// copies keys named <name>:<suffix> and <name>, suffix is stripped out.
|
|
// keySuffixes is an empty string:
|
|
// copies keys named <name>. keys in format <name>:<suffix> are ignored.
|
|
// keySuffixes is 0:
|
|
// copies all keys "as is".
|
|
virtual void CopySectionKeysToConfig(EConfigPriority ePri, int sectionIndex, const char* keySuffixes, IConfigSink* config) const = 0;
|
|
|
|
// can be used to iterate through the section names
|
|
//! @return 0 if sectionIndex is < 0 or >= than number of sections.
|
|
virtual const char* GetSectionName(int sectionIndex) const = 0;
|
|
//! @return section index or -1 if section not found.
|
|
virtual int FindSection(const char* sectionName) const = 0;
|
|
};
|
|
|
|
#endif // CRYINCLUDE_TOOLS_RC_RESOURCECOMPILER_ICFGFILE_H
|