blob: af851b70bb7e08dc069cf4ff05a204ae66db9362 [file] [log] [blame]
// 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_