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;
88 MIKTEXCOREEXPORT MIKTEXTHISCALL ValueIterator();
90 ValueIterator(
const ValueIterator& other) =
delete;
92 ValueIterator& operator=(
const ValueIterator& other) =
delete;
94 MIKTEXCOREEXPORT MIKTEXTHISCALL ValueIterator(ValueIterator&& other);
96 MIKTEXCORETHISAPI(ValueIterator&) operator=(ValueIterator&& other);
98 virtual MIKTEXCOREEXPORT MIKTEXTHISCALL ~ValueIterator();
100 MIKTEXCORETHISAPI(std::shared_ptr<Value>) operator*()
const;
102 MIKTEXCORETHISAPI(ValueIterator&) operator++();
104 MIKTEXCORETHISAPI(
bool) operator==(
const ValueIterator& other);
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;
138 MIKTEXCOREEXPORT MIKTEXTHISCALL KeyIterator();
140 KeyIterator(
const KeyIterator& other) =
delete;
142 KeyIterator& operator=(
const KeyIterator& other) =
delete;
144 MIKTEXCOREEXPORT MIKTEXTHISCALL KeyIterator(KeyIterator&& other);
146 MIKTEXCORETHISAPI(KeyIterator&) operator=(KeyIterator&& other);
148 virtual MIKTEXCOREEXPORT MIKTEXTHISCALL ~KeyIterator();
150 MIKTEXCORETHISAPI(std::shared_ptr<Key>) operator*()
const;
152 MIKTEXCORETHISAPI(KeyIterator&) operator++();
154 MIKTEXCORETHISAPI(
bool) operator==(
const KeyIterator& other);
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:26
Instances of this class can be used to store path names.
Definition PathName.h:64