File: config_includer_file.hpp

package info (click to toggle)
cpp-hocon 0.3.0-1.2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,320 kB
  • sloc: cpp: 12,223; makefile: 4
file content (30 lines) | stat: -rw-r--r-- 1,099 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include "export.h"
#include "types.hpp"

namespace hocon {

    /**
     * Implement this <em>in addition to</em> {@link config_includer} if you want to
     * support inclusion of files with the {@code include file("filename")} syntax.
     * If you do not implement this but do implement {@link config_includer},
     * attempts to load files will use the default includer.
     */
    class LIBCPP_HOCON_EXPORT config_includer_file {
    public:
        /**
         * Parses another item to be included. The returned object typically would
         * not have substitutions resolved. You can throw a config_exception here to
         * abort parsing, or return an empty object, but may not return null.
         *
         * @param context
         *            some info about the include context
         * @param what
         *            the include statement's argument (a file path)
         * @return a non-null config_object
         */
        virtual shared_object include_file(shared_include_context context, std::string what) const = 0;
    };

}  // namespace hocon