.. _program_listing_file_applications_lunanet_sat_app.h: Program Listing for File lunanet_sat_app.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``applications/lunanet_sat_app.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include "lupnt/applications/application.h" #include "lupnt/core/definitions.h" namespace lupnt { class LunaNetSatApp; class LunaNetSubApp { public: LunaNetSubApp() = default; explicit LunaNetSubApp(std::string name) : name_(std::move(name)) {} virtual ~LunaNetSubApp() = default; virtual void Setup(LunaNetSatApp& app); virtual void Step(Real t) = 0; virtual void Finish(); const std::string& GetName() const { return name_; } void SetName(std::string name) { name_ = std::move(name); } protected: std::string name_ = "lunanet_subapp"; }; class LunaNetSatApp : public Application { public: LunaNetSatApp() = default; explicit LunaNetSatApp(Config& config); void AddSubApp(Ptr app); const std::vector>& GetSubApps() const { return sub_apps_; } void Setup() override; void Step(Real t) override; void Finish(); private: std::vector> sub_apps_; }; } // namespace lupnt