Index: sources/update/UiProtocol.h =================================================================== diff -u -r61c46e9379ca82d826fbe7fae018b8362a107d9d -r7cf31f6cfef97bb564a103c263821a3b722c8a2b --- sources/update/UiProtocol.h (.../UiProtocol.h) (revision 61c46e9379ca82d826fbe7fae018b8362a107d9d) +++ sources/update/UiProtocol.h (.../UiProtocol.h) (revision 7cf31f6cfef97bb564a103c263821a3b722c8a2b) @@ -13,25 +13,25 @@ * \date (original) 23-Jan-2023 * */ + #ifndef UI_PROTOCOL_H_ #define UI_PROTOCOL_H_ +#include "IDataProvider.h" +#include "IEnterBootLoader.h" #include "HalStdTypes.h" #include "MsgLink.h" #include "UpdateProtocol.h" #include "UiUpdateStatus.h" -#include "IDataProvider.h" + #include #include #include #include namespace SwUpdate { -/** Forward declare. */ -class IDataProvider; - /*! * This class uses a thread plus a waitable condition variable * to impliment a linear procedure to update one firmware @@ -114,14 +114,15 @@ * \brief Start updating. * * \param pProvider Data provider. - * \param pNext Next if the updates occur in a chain. + * \param pEnterBoot The enter bootloader object or nullpointer. * * \return True on started ok. */ - void setProvider(IDataProvider* pProvider) { + void setProvider(IDataProvider* pProvider, SwUpdate::IEnterBootLoader *pEnterBoot) { std::lock_guard lockApi(_apiMutex); _pProvider = pProvider; _maxTransfer = pProvider->totalSize; + _pEnterBL = pEnterBoot; } static uint8 getNextMsgSlotId(); @@ -227,6 +228,7 @@ ::std::thread* _pThread; ///< Thread. ::std::mutex _apiMutex; ///< Mutex API. bool _completedOk; ///< Completed ok, false is either not started or in progress. + IEnterBootLoader * _pEnterBL; ///< Enter bootloader class. }; /*!