// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include class AbstractTechnicalInformationRepository { public: using OnReadCallback = std::function; virtual ~AbstractTechnicalInformationRepository() noexcept = default; virtual void readImei(OnReadCallback callback) = 0; virtual std::string getImei() = 0; }; class TechnicalInformationRepository : public AbstractTechnicalInformationRepository, public app::AsyncCallbackReceiver { public: explicit TechnicalInformationRepository(app::ApplicationCommon *application); void readImei(OnReadCallback callback) override; std::string getImei() override; private: app::ApplicationCommon *application{}; std::string imeiStr; };