/* * AppBuilderRobust.hh * * Created on: 9 сент. 2020 г. * Author: LeonidTitov */ #ifndef UMLIBRARY_CONFIGURATION_SOFTWARE_APPBUILDERROBUST_HH_ #define UMLIBRARY_CONFIGURATION_SOFTWARE_APPBUILDERROBUST_HH_ #include "AppBuilder.hh" #include "../../systemic/SystemException.hh" namespace configuration { namespace software { class AppBuilderRobust : public AppBuilder { public: AppBuilderRobust( BuildedItem * items, std::size_t items_size, Environment & env ) : AppBuilder( items, items_size, env ) {} struct AppBuilderException : public systemic::SystemException { static const std::size_t self_id = 0x0AA0; std::size_t id() const noexcept; std::pair binary() const noexcept; const char * what() const noexcept; static const std::size_t description_size = 64; static char description[description_size]; static const std::size_t data_size = 64; static char data[data_size]; }; protected: virtual bool do_input( Environment & env, application::ISetupStep * & ) override; virtual bool do_prepare( application::ISetupStep * & ) override; virtual bool do_build( Environment & env, application::ISetupStep * & ) override; virtual bool do_end( Environment & env, application::ISetupStep * & ) override; }; }} #endif /* UMLIBRARY_CONFIGURATION_SOFTWARE_APPBUILDERROBUST_HH_ */