VideoTools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
gstrings.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2017 Graeme Walker
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 // ===
17 ///
18 /// \file gstrings.h
19 ///
20 
21 #ifndef G_STRINGS_H
22 #define G_STRINGS_H
23 
24 #include "gdef.h"
25 #include <string>
26 #include <list>
27 #include <vector>
28 #include <map>
29 #include <stdexcept>
30 
31 namespace G
32 {
33  typedef std::vector<std::string> StringArray ; ///< A std::vector of std::strings.
34  typedef std::map<std::string,std::string> StringMap ; ///< A std::map of std::strings.
35 }
36 
37 namespace G
38 {
39  class StringMapReader ;
40 }
41 
42 /// \class G::StringMapReader
43 /// An adaptor for reading a const map<string,string> with at(key).
44 ///
46 {
47 public:
48  StringMapReader( const StringMap & map_ ) ;
49  ///< Implicit constructor.
50 
51  const std::string & at( const std::string & key ) const ;
52  ///< Returns the value from the map, or throws.
53 
54  const std::string & at( const std::string & key , const std::string & default_ ) const ;
55  ///< Returns the value from the map, or the default.
56 
57  StringArray keys( unsigned int limit = 0U , const char * elipsis = nullptr ) const ;
58  ///< Returns a list of the keys in the map (optionally up to some limit).
59 
60 private:
61  const StringMap & m_map ;
62 } ;
63 
64 #endif
StringMapReader(const StringMap &map_)
Implicit constructor.
Definition: gstrings.cpp:29
An adaptor for reading a const map<string,string> with at(key).
Definition: gstrings.h:45
std::vector< std::string > StringArray
A std::vector of std::strings.
Definition: gstrings.h:33
const std::string & at(const std::string &key) const
Returns the value from the map, or throws.
Definition: gstrings.cpp:34
StringArray keys(unsigned int limit=0U, const char *elipsis=nullptr) const
Returns a list of the keys in the map (optionally up to some limit).
Definition: gstrings.cpp:48
std::map< std::string, std::string > StringMap
A std::map of std::strings.
Definition: gstrings.h:34