24#if !defined(BD129D5E0E8B45CEAAF056C54F9E6806)
25#define BD129D5E0E8B45CEAAF056C54F9E6806
27#include <miktex/Core/config.h>
36#include <miktex/Util/OptionSet>
37#include <miktex/Util/PathName>
41MIKTEX_CORE_BEGIN_NAMESPACE;
59class MIKTEXNOVTABLE
Cfg
66 virtual MIKTEXTHISCALL
~Value()
noexcept = 0;
68 virtual std::string MIKTEXTHISCALL GetName()
const = 0;
70 virtual std::string MIKTEXTHISCALL AsString()
const = 0;
72 virtual std::vector<std::string> AsStringVector()
const = 0;
74 virtual std::vector<std::string>::const_iterator MIKTEXTHISCALL begin()
const = 0;
76 virtual std::vector<std::string>::const_iterator MIKTEXTHISCALL end()
const = 0;
78 virtual std::string MIKTEXTHISCALL GetDocumentation()
const = 0;
80 virtual bool IsCommentedOut()
const = 0;
100 MIKTEXCORETHISAPI(std::shared_ptr<Value>) operator*()
const;
106 MIKTEXCORETHISAPI(
bool) operator!=(
const ValueIterator& other);
109 std::unique_ptr<impl> pimpl;
122 virtual MIKTEXTHISCALL
~Key()
noexcept = 0;
124 virtual std::string MIKTEXTHISCALL GetName()
const = 0;
126 virtual std::shared_ptr<Value> MIKTEXTHISCALL GetValue(
const std::string& valueName)
const = 0;
150 MIKTEXCORETHISAPI(std::shared_ptr<Key>) operator*()
const;
156 MIKTEXCORETHISAPI(
bool) operator!=(
const KeyIterator& other);
159 std::unique_ptr<impl> pimpl;
170 static MIKTEXCORECEEAPI(std::unique_ptr<Cfg>)
Create();
173 virtual MIKTEXTHISCALL
~Cfg() noexcept = 0;
200 virtual bool MIKTEXTHISCALL
Empty()
const = 0;
213 virtual std::shared_ptr<Value> MIKTEXTHISCALL
GetValue(
const std::string& keyName,
const std::string& valueName)
const = 0;
222 virtual bool MIKTEXTHISCALL
TryGetValueAsString(
const std::string& keyName,
const std::string& valueName, std::string& value)
const = 0;
231 virtual bool MIKTEXTHISCALL
TryGetValueAsStringVector(
const std::string& keyName,
const std::string& valueName, std::vector<std::string>& value)
const = 0;
249 virtual void MIKTEXTHISCALL
PutValue(
const std::string& keyName,
const std::string& valueName,
const std::string& value) = 0;
260 virtual void MIKTEXTHISCALL
PutValue(
const std::string& keyName,
const std::string& valueName,
const std::string& value,
const std::string& documentation,
bool commentedOut) = 0;
270 virtual void MIKTEXTHISCALL
Read(std::istream& reader) = 0;
282 virtual void MIKTEXTHISCALL
Read(std::istream& reader,
bool mustBeSigned) = 0;
318 virtual std::shared_ptr<Key>
GetKey(
const std::string& keyName)
const = 0;
323 virtual void MIKTEXTHISCALL
DeleteKey(
const std::string& keyName) = 0;
329 virtual void MIKTEXTHISCALL
DeleteValue(
const std::string& keyName,
const std::string& valueName) = 0;
335 virtual bool MIKTEXTHISCALL
ClearValue(
const std::string& keyName,
const std::string& valueName) = 0;
356MIKTEX_CORE_END_NAMESPACE;
An instance of this class provides the interface to an INI section.
Definition: Cfg.h:120
Implements an interator for INI sections.
Definition: Cfg.h:136
An instance of this class provides the interface to an INI value.
Definition: Cfg.h:64
Implements an interator for INI values.
Definition: Cfg.h:86
INI container.
Definition: Cfg.h:60
virtual bool ClearValue(const std::string &keyName, const std::string &valueName)=0
virtual void Read(std::istream &reader)=0
virtual void Write(const MiKTeX::Util::PathName &path)=0
virtual MD5 GetDigest() const =0
virtual void SetOptions(Options options)=0
Option
INI options.
Definition: Cfg.h:178
virtual bool TryGetValueAsString(const std::string &keyName, const std::string &valueName, std::string &value) const =0
virtual void Read(std::istream &reader, bool mustBeSigned)=0
virtual void Write(const MiKTeX::Util::PathName &path, const std::string &header, IPrivateKeyProvider *privateKeyProvider)=0
virtual Options GetOptions() const =0
virtual void DeleteValue(const std::string &keyName, const std::string &valueName)=0
virtual void Write(const MiKTeX::Util::PathName &path, const std::string &header)=0
virtual void Read(std::istream &reader, const MiKTeX::Util::PathName &publicKeyFile)=0
virtual KeyIterator end()=0
Gets an iterator referring to the past-the-end section.
virtual void PutValue(const std::string &keyName, const std::string &valueName, const std::string &value, const std::string &documentation, bool commentedOut)=0
virtual void Read(const MiKTeX::Util::PathName &path)=0
virtual bool IsModified() const =0
Tests whether this INI container has been modified.
virtual bool TryGetValueAsStringVector(const std::string &keyName, const std::string &valueName, std::vector< std::string > &value) const =0
virtual std::shared_ptr< Value > GetValue(const std::string &keyName, const std::string &valueName) const =0
virtual std::shared_ptr< Key > GetKey(const std::string &keyName) const =0
virtual void Read(const MiKTeX::Util::PathName &path, bool mustBeSigned)=0
virtual bool IsSigned() const =0
virtual KeyIterator begin()=0
Gets an iterator to the first container section.
virtual void SetModified(bool b)=0
virtual std::size_t GetSize() const =0
static std::unique_ptr< Cfg > Create()
virtual void DeleteKey(const std::string &keyName)=0
virtual void Read(const MiKTeX::Util::PathName &path, const MiKTeX::Util::PathName &publicKeyFile)=0
virtual void PutValue(const std::string &keyName, const std::string &valueName, const std::string &value)=0
virtual bool Empty() const =0
Tests whether this INI container is empty.
Access a private key file.
Definition: Cfg.h:45
virtual MiKTeX::Util::PathName GetPrivateKeyFile()=0
virtual bool GetPassphrase(std::string &passphrase)=0
Instances of this struct represent MD5 values.
Definition: MD5.h:46
Definition: OptionSet.h:37
Instances of this class can be used to store path names.
Definition: PathName.h:73
bool operator==(const VersionNumber &v1, const VersionNumber &v2)
Definition: VersionNumber.h:177