Sha256: 80c9075525fceeb91a76d55189aebbb799d8a919a4acfd5f361ebe8f391e9f8e

Contents?: true

Size: 1.57 KB

Versions: 16

Compression:

Stored size: 1.57 KB

Contents

#pragma once

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

namespace hocon {

    /**
     * An opaque handle to something that can be parsed, obtained from
     * {@link config_include_context}.
     *
     * <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_parseable {
    public:
        /**
         * Parse whatever it is. The options should come from
         * {@link config_parseable#options()} but you could tweak them if you
         * like.
         *
         * @param options
         *            parse options, should be based on the ones from
         *            {@link config_parseable#options()}
         * @return the parsed object
         */
        virtual shared_object parse(config_parse_options const& options) const = 0;

        /**
         * Returns a config_origin describing the origin of the paresable item.
         */
        virtual shared_origin origin() const = 0;

        /**
         * Get the initial options, which can be modified then passed to parse().
         * These options will have the right description, includer, and other
         * parameters already set up.
         * @return the initial options
         */
        virtual config_parse_options const& 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_parseable.hpp
facter-3.12.1.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.6.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.12.1.cfacter.20181023 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.5.cfacter.20181022 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.12.0.cfacter.20181004 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.12.0.cfacter.20181001 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.12.0.cfacter.20180918 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.4.cfacter.20180821 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.3.cfacter.20180716 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.2.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.9.6.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.2.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.9.6.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
facter-3.11.0.cfacter.20180319 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp
cfacter-3.11.0.rc.20180314 ext/facter/cpp-hocon/lib/inc/hocon/config_parseable.hpp