#ifndef CHROME_UPDATER_CRASH_CLIENT_H_
#define CHROME_UPDATER_CRASH_CLIENT_H_
#include <memory>
#include <string>
#include "base/no_destructor.h"
#include "base/sequence_checker.h"
namespace crashpad {
class CrashReportDatabase;
}
namespace updater {
enum class UpdaterScope;
class CrashClient {
public:
CrashClient(const CrashClient&) = delete;
CrashClient& operator=(const CrashClient&) = delete;
static CrashClient* GetInstance();
static std::string GetClientId();
[[nodiscard]] bool InitializeCrashReporting(UpdaterScope updater_scope);
[[nodiscard]] bool InitializeDatabaseOnly(UpdaterScope updater_scope);
bool SetUploadsEnabled(bool enabled);
private:
friend class base::NoDestructor<CrashClient>;
CrashClient();
~CrashClient();
SEQUENCE_CHECKER(sequence_checker_);
std::unique_ptr<crashpad::CrashReportDatabase> database_;
};
}
#endif