Hikyuu
IniParser.h
浏览该文件的文档.
1 /*
2  * IniFile.h
3  *
4  * Created on: 2010-5-19
5  * Author: fasiondog
6  */
7 
8 #ifndef INIPARSER_H_
9 #define INIPARSER_H_
10 
11 #include <stdexcept>
12 #include <string>
13 #include <list>
14 #include <map>
15 #include <boost/utility.hpp>
16 #include <boost/shared_ptr.hpp>
17 
18 #if defined(BOOST_MSVC)
19 #pragma warning(disable: 4251)
20 #pragma warning(disable: 4275)
21 #pragma warning(disable: 4290)
22 #endif
23 
24 #ifndef HKU_API
25 #define HKU_API
26 #endif
27 
28 namespace hku {
29 
55 class HKU_API IniParser : boost::noncopyable {
56 public:
57  typedef std::list<std::string> StringList;
58  typedef boost::shared_ptr<std::list<std::string> > StringListPtr;
59  IniParser();
60  virtual ~IniParser();
61 
62  void read(const std::string& filename);
63  void clear();
64 
65  bool hasSection(const std::string& section) const;
66  bool hasOption(const std::string& section, const std::string& option) const;
67 
68  StringListPtr getSectionList() const;
69  StringListPtr getOptionList(const std::string& section) const;
70 
71  std::string get(const std::string& section, const std::string& option,
72  const std::string& default_str = std::string()) const;
73 
74  //以下默认值类型使用string的原因是因为int/float/double/bool类型没有空对象
75  int getInt(const std::string& section, const std::string& option,
76  const std::string& default_str = std::string()) const;
77 
78  float getFloat(const std::string& section, const std::string& option,
79  const std::string& default_str = std::string()) const;
80 
81  double getDouble(const std::string& section, const std::string& option,
82  const std::string& default_str = std::string()) const;
83 
84  bool getBool(const std::string& section, const std::string& option,
85  const std::string& default_str = std::string()) const;
86 
87 private:
88  typedef std::map<std::string, std::string> item_map_type;
89  typedef std::map<std::string, item_map_type> section_map_type;
90  section_map_type m_sections;
91 };
92 
93 } /* namespace */
94 
95 #endif /* INIFILE_H_ */
std::list< std::string > StringList
Definition: IniParser.h:57
std::string string
Definition: DataType.h:55
支持简单的ini格式文件的读取
Definition: IniParser.h:55
boost::shared_ptr< std::list< std::string > > StringListPtr
Definition: IniParser.h:58
#define HKU_API
Definition: IniParser.h:25
Hikyuu核心命名空间,包含股票数据的管理、指标实现、交易系统框架等
Definition: Block.cpp:11