| // Copyright 2017 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef SRC_LIB_CMX_RUNTIME_H_ | |
| #define SRC_LIB_CMX_RUNTIME_H_ | |
| #include <string> | |
| #include "rapidjson/document.h" | |
| #include "src/lib/json_parser/json_parser.h" | |
| namespace component { | |
| class RuntimeMetadata { | |
| public: | |
| // Returns true if parsing succeeded. If a config is missing the runtime but | |
| // otherwise there are no errors, parsing succeeds and IsNull() is true. | |
| // |json_parser| is used to report any errors. | |
| bool ParseFromFileAt(int dirfd, const std::string& file, json::JSONParser* json_parser); | |
| bool ParseFromDocument(const rapidjson::Document& document, json::JSONParser* json_parser); | |
| bool IsNull() const { return null_; } | |
| const std::string& runner() const { return runner_; } | |
| private: | |
| bool null_ = true; | |
| std::string runner_; | |
| }; | |
| } // namespace component | |
| #endif // SRC_LIB_CMX_RUNTIME_H_ |