Sha256: 7cc3e75eafc1567d8e9da92e26fb21cb0b476a4bdefff27bff62d77e102734f3

Contents?: true

Size: 1.95 KB

Versions: 16

Compression:

Stored size: 1.95 KB

Contents

#pragma once

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

namespace hocon {

    /**
     * Context provided to a {@link config_includer}; this interface is only useful
     * inside a {@code config_includer} implementation, and is not intended for apps
     * to implement.
     *
     * <p>
     * <em>Do not implement this interface</em>; it should only be implemented by
     * the config library. Arbitrary implementations will not work because the
     * library internals assume a specific concrete implementation. Also, this
     * interface is likely to grow new methods over time, so third-party
     * implementations will break.
     */
    class LIBCPP_HOCON_EXPORT config_include_context {
    public:
        /**
         * Tries to find a name relative to whatever is doing the including, for
         * example in the same directory as the file doing the including. Returns
         * null if it can't meaningfully create a relative name. The returned
         * parseable may not exist; this function is not required to do any IO, just
         * compute what the name would be.
         *
         * The passed-in filename has to be a complete name (with extension), not
         * just a basename. (Include statements in config files are allowed to give
         * just a basename.)
         *
         * @param filename
         *            the name to make relative to the resource doing the including
         * @return parseable item relative to the resource doing the including, or
         *         null
         */
        virtual shared_parseable relative_to(std::string file_name) const = 0;

        /**
         * Parse options to use (if you use another method to get a
         * {@link config_parseable} then use {@link config_parseable#options()}
         * instead though).
         *
         * @return the parse options
         */
        virtual config_parse_options parse_options() const = 0;
    };

}  // namespace hocon

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
facter-3.12.2.cfacter.20181217 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.12.1.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.6.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.12.1.cfacter.20181023 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.5.cfacter.20181022 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.12.0.cfacter.20181004 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.12.0.cfacter.20181001 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.12.0.cfacter.20180918 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.4.cfacter.20180821 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.3.cfacter.20180716 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.2.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.9.6.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.2.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.9.6.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
facter-3.11.0.cfacter.20180319 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp
cfacter-3.11.0.rc.20180314 ext/facter/cpp-hocon/lib/inc/hocon/config_include_context.hpp