/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* This file is part of the HiGHS linear optimization suite */ /* */ /* Written and engineered 2008-2022 at the University of Edinburgh */ /* */ /* Available as open-source under the MIT License */ /* */ /* Authors: Julian Hall, Ivet Galabova, Leona Gottwald and Michael */ /* Feldmeier */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /**@file HighsComponent.h * @brief The HiGHS class */ #ifndef UTIL_HIGHS_COMPONENT_H_ #define UTIL_HIGHS_COMPONENT_H_ #include "lp_data/HighsOptions.h" // HighsComponentData is a placeholder for structs which we will keep after // run() is done, internally. struct HighsComponentData { bool is_valid = false; }; // HighsComponentInfo is a placeholder for details we want to query from outside // of HiGHS like execution information. struct HighsComponentInfo { bool is_valid = false; }; // HighsComponentOptions is a placeholder for options specific to this component struct HighsComponentOptions { bool is_valid = false; }; class HighsComponent { public: virtual void clear() = 0; HighsStatus run(); HighsStatus setOptions(const HighsOptions& options); const HighsComponentInfo& getInfo() { return info_; } const HighsComponentData& getData() { return data_; } const HighsComponentOptions& getOptions() { return options_; } virtual ~HighsComponent() = default; private: // bool has_run_ = false; HighsComponentInfo info_; HighsComponentData data_; HighsComponentOptions options_; }; #endif