cpp-hocon  0.3.0
types.hpp
1 #pragma once
2 
3 #include <memory>
4 #include <vector>
5 #include <unordered_map>
6 #pragma GCC diagnostic push
7 #pragma GCC diagnostic ignored "-Waddress"
8 #if defined(__GNUC__) && __GNUC__ > 5
9 #pragma GCC diagnostic ignored "-Wnonnull-compare"
10 #endif
11 #include "boost/variant.hpp"
12 #pragma GCC diagnostic pop
13 
14 namespace hocon {
15 
21  using duration = std::pair<int64_t, int>;
22 
23  class config;
24  using shared_config = std::shared_ptr<const config>;
25 
26  class config_object;
27  using shared_object = std::shared_ptr<const config_object>;
28 
29  class config_origin;
30  using shared_origin = std::shared_ptr<const config_origin>;
31 
32  class path;
33 
34  class config_value;
35  using shared_value = std::shared_ptr<const config_value>;
36 
37  class config_list;
38  using shared_list = std::shared_ptr<const config_list>;
39 
40  typedef boost::make_recursive_variant<boost::blank, std::string, int64_t, double, int, bool,
41  std::vector<boost::recursive_variant_>, std::unordered_map<std::string,
42  boost::recursive_variant_>>::type unwrapped_value;
43 
44  class container;
45  using shared_container = std::shared_ptr<const container>;
46 
48  using shared_node = std::shared_ptr<const abstract_config_node>;
49  using shared_node_list = std::vector<shared_node>;
50 
51  using shared_string = std::shared_ptr<const std::string>;
52 
54 
55  class config_includer;
56  using shared_includer = std::shared_ptr<const config_includer>;
57 
59  using shared_include_context = std::shared_ptr<const config_include_context>;
60 
61  class config_parseable;
62  using shared_parseable = std::shared_ptr<const config_parseable>;
63 } // namespace hocon
hocon::abstract_config_node
Definition: abstract_config_node.hpp:9
hocon::config
An immutable map from config paths to config values.
Definition: config.hpp:172
hocon::config_parseable
An opaque handle to something that can be parsed, obtained from config_include_context.
Definition: config_parseable.hpp:19
hocon
Factory for creating config_document instances.
Definition: config.hpp:18
hocon::config_includer
Implement this interface and provide an instance to config_parse_options.set_includer() to customize ...
Definition: config_includer.hpp:15
hocon::duration
std::pair< int64_t, int > duration
A duration represented as a 64-bit integer of seconds plus a 32-bit number of nanoseconds representin...
Definition: types.hpp:21
hocon::config_include_context
Context provided to a config_includer; this interface is only useful inside a.
Definition: config_include_context.hpp:21
hocon::config_parse_options
A set of options related to parsing.
Definition: config_parse_options.hpp:25
hocon::path
Definition: path.hpp:13
hocon::config_value
An immutable value, following the JSON type schema.
Definition: config_value.hpp:39
hocon::container
An Abstractconfig_value which contains other values.
Definition: container.hpp:12
hocon::config_list
Subtype of config_value representing a list value, as in JSON's.
Definition: config_list.hpp:37
hocon::config_object
Definition: config_object.hpp:11
hocon::config_origin
Represents the origin (such as filename and line number) of a config_value for use in error messages.
Definition: config_origin.hpp:31