/* * ISetupStep.h * * Created on: 15 нояб. 2018 г. * Author: titov */ #ifndef SOURCE_APPLICATION_ISETUPSTEP_H_ #define SOURCE_APPLICATION_ISETUPSTEP_H_ #include "../configuration/Environment.hh" namespace application { //!Интерфейс шага инициализации. struct ISetupStep { typedef configuration::Environment Environment; //!Шаг сбора внешних зависимостей приложения. /*!Функция вызывается многократно до тех пор пока не вернет true. * \return Возращает признак получения всех необходимых внешних зависимостей. */ virtual bool input( Environment & env ) = 0; //!Шаг подготовки к построению приложения. /*!Функция вызывается многократно до тех пор пока не вернет true. * \return Возращает признак завершения подготовки шага инициализации. */ virtual bool prepare(); //!Шаг построения приложения. /*!Функция вызывается однократно. */ virtual void build( Environment & env ) = 0; //!Уведомление о успешном завершении построения приложения. /*!Функция вызывается однократно * \return N/A */ virtual void finalize() {} //!Деструктор вызывается по завершению построения полного приложения. virtual ~ISetupStep() = default; }; } #endif /* SOURCE_APPLICATION_ISETUPSTEP_H_ */