#pragma once #include #include class OtaUpdater { bool updateAvailable = false; std::string latestVersion; std::string otaUrl; size_t otaSize = 0; public: enum OtaUpdaterError { OK = 0, NO_UPDATE, HTTP_ERROR, JSON_PARSE_ERROR, UPDATE_OLDER_ERROR, INTERNAL_UPDATE_ERROR, OOM_ERROR, }; size_t processedSize = 0; size_t totalSize = 0; OtaUpdater() = default; bool isUpdateNewer(); const std::string& getLatestVersion(); OtaUpdaterError checkForUpdate(); OtaUpdaterError installUpdate(const std::function& onProgress); };