libzypp 17.28.8
IniDict.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_PARSER_INIDICT_H
13#define ZYPP_PARSER_INIDICT_H
14
15#include <iosfwd>
16#include <map>
17#include <string>
18
19#include <zypp/base/PtrTypes.h>
21#include <zypp/base/Iterator.h>
22#include <zypp/base/Iterable.h>
24
26namespace zypp
27{
29 namespace parser
30 {
31
33 //
34 // CLASS NAME : IniDict
35 //
41 class IniDict : public IniParser
42 {
43 friend std::ostream & operator<<( std::ostream & str, const IniDict & obj );
44 public:
45 typedef std::map<std::string, std::string> EntrySet;
46 typedef std::map<std::string, EntrySet> SectionSet;
48 typedef EntrySet::const_iterator entry_const_iterator;
49
67
82 entry_const_iterator entriesBegin(const std::string &section) const;
83 entry_const_iterator entriesEnd(const std::string &section) const;
84 Iterable<entry_const_iterator> entries(const std::string &section) const;
86
91 IniDict( const InputStream &is,
93
97 IniDict();
98
100 ~IniDict();
101
106 void read( const InputStream &is,
108
115 void insertEntry( const std::string &section,
116 const std::string &key,
117 const std::string &value );
118
125 void deleteSection( const std::string &section );
126
131 bool hasSection( const std::string &section ) const;
132
141 bool hasEntry( const std::string &section,
142 const std::string &entry ) const;
143 public:
144
146 virtual void consume( const std::string &section );
148 virtual void consume( const std::string &section,
149 const std::string &key,
150 const std::string &value );
151
152 private:
160 };
162
164 std::ostream & operator<<( std::ostream & str, const IniDict & obj );
165
167 } // namespace parser
170} // namespace zypp
172#endif // ZYPP_PARSER_INIDICT_H
Helper to create and pass std::istream.
Definition: InputStream.h:57
function< bool(const ProgressData &)> ReceiverFnc
Most simple version of progress reporting The percentage in most cases.
Definition: ProgressData.h:139
Parses a INI file and offers its structure as a dictionary.
Definition: IniDict.h:42
section_const_iterator sectionsEnd() const
Definition: IniDict.cc:110
friend std::ostream & operator<<(std::ostream &str, const IniDict &obj)
Definition: IniDict.cc:160
void read(const InputStream &is, const ProgressData::ReceiverFnc &progress=ProgressData::ReceiverFnc())
Fill a dictionary from a InputStream containing a ini structured file.
Definition: IniDict.cc:47
bool hasSection(const std::string &section) const
True if there is a section with that name.
Definition: IniDict.cc:133
void deleteSection(const std::string &section)
add an entry
Definition: IniDict.cc:128
EntrySet::const_iterator entry_const_iterator
Definition: IniDict.h:48
MapKVIteratorTraits< SectionSet >::Key_const_iterator section_const_iterator
Definition: IniDict.h:47
Iterable< section_const_iterator > sections() const
Definition: IniDict.cc:115
entry_const_iterator entriesBegin(const std::string &section) const
Definition: IniDict.cc:72
Iterable< entry_const_iterator > entries(const std::string &section) const
Definition: IniDict.cc:94
void insertEntry(const std::string &section, const std::string &key, const std::string &value)
add an entry
Definition: IniDict.cc:120
section_const_iterator sectionsBegin() const
Definition: IniDict.cc:105
bool hasEntry(const std::string &section, const std::string &entry) const
True if an entry exists in the section.
Definition: IniDict.cc:141
IniDict()
Creates a mepty dictionary.
Definition: IniDict.cc:43
virtual void consume(const std::string &section)
Called when a section is found.
Definition: IniDict.cc:61
SectionSet _dict
Definition: IniDict.h:153
EntrySet _empty_map
empty map used to simulate iteration in non existant sections
Definition: IniDict.h:159
std::map< std::string, std::string > EntrySet
Definition: IniDict.h:45
entry_const_iterator entriesEnd(const std::string &section) const
Definition: IniDict.cc:83
std::map< std::string, EntrySet > SectionSet
Definition: IniDict.h:46
Simple INI-file parser.
Definition: IniParser.h:42
String related utilities and Regular expression matching.
std::ostream & operator<<(std::ostream &str, const IniDict &obj)
Definition: IniDict.cc:160
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
transform_iterator< GetPairFirst< typename MapType::value_type >, typename MapType::const_iterator > Key_const_iterator
The key iterator type.
Definition: Iterator.h:218