|  | // Copyright 2018 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_CONNECTIVITY_NETWORK_TESTING_NETEMUL_RUNNER_MODEL_ENVIRONMENT_H_ | 
|  | #define SRC_CONNECTIVITY_NETWORK_TESTING_NETEMUL_RUNNER_MODEL_ENVIRONMENT_H_ | 
|  |  | 
|  | #include "launch_app.h" | 
|  | #include "launch_service.h" | 
|  | #include "logger_options.h" | 
|  | #include "src/lib/fxl/macros.h" | 
|  | #include "src/lib/json_parser/json_parser.h" | 
|  |  | 
|  | namespace netemul { | 
|  | namespace config { | 
|  |  | 
|  | class Environment { | 
|  | public: | 
|  | Environment() = default; | 
|  | Environment(Environment&& other) = default; | 
|  |  | 
|  | void DisableLogging(bool recursive); | 
|  |  | 
|  | bool ParseFromJSON(const rapidjson::Value& value, json::JSONParser* parser); | 
|  |  | 
|  | const std::string& name() const; | 
|  | const std::vector<Environment>& children() const; | 
|  | const std::vector<std::string>& devices() const; | 
|  | const std::vector<LaunchService>& services() const; | 
|  | const std::vector<LaunchApp>& test() const; | 
|  | const std::vector<LaunchApp>& apps() const; | 
|  | const std::vector<LaunchApp>& setup() const; | 
|  | const LoggerOptions& logger_options() const; | 
|  | bool inherit_services() const; | 
|  |  | 
|  | private: | 
|  | std::string name_; | 
|  | std::vector<Environment> children_; | 
|  | std::vector<std::string> devices_; | 
|  | std::vector<LaunchService> services_; | 
|  | std::vector<LaunchApp> test_; | 
|  | std::vector<LaunchApp> apps_; | 
|  | std::vector<LaunchApp> setup_; | 
|  | bool inherit_services_{}; | 
|  | LoggerOptions logger_options_; | 
|  |  | 
|  | FXL_DISALLOW_COPY_AND_ASSIGN(Environment); | 
|  | }; | 
|  |  | 
|  | }  // namespace config | 
|  | }  // namespace netemul | 
|  | #endif  // SRC_CONNECTIVITY_NETWORK_TESTING_NETEMUL_RUNNER_MODEL_ENVIRONMENT_H_ |