20#include <condition_variable>
25#include <fruit/fruit.h>
40 enum class ModeType : std::uint8_t { kAndroidMode = 55, kConfUI_Mode = 77 };
64 <<
"checking atomic Android mode";
67 <<
"returns as it is already Android mode";
70 auto check = [
this]() ->
bool {
73 std::unique_lock<std::mutex> lock(
mode_mtx_);
76 <<
"awakes from cond var waiting for Android mode";
81 <<
" tries to acquire the lock in SetMode";
82 std::lock_guard<std::mutex> lock(
mode_mtx_);
84 <<
" acquired the lock in SetMode";
88 <<
" signals kAndroidMode in SetMode";
93 <<
"signals kConfUI_Mode in SetMode";
110 return host_mode_controller;
Definition: host_mode_ctrl.h:38
auto GetMode()
Definition: host_mode_ctrl.h:97
void WaitAndroidMode()
Definition: host_mode_ctrl.h:62
ModeType
Definition: host_mode_ctrl.h:40
auto IsAndroidMode()
Definition: host_mode_ctrl.h:106
static HostModeCtrl & Get()
Definition: host_mode_ctrl.h:108
std::condition_variable confui_mode_cv_
Definition: host_mode_ctrl.h:116
void SetMode(const ModeType mode)
Definition: host_mode_ctrl.h:79
auto IsConfirmatioUiMode()
Definition: host_mode_ctrl.h:102
std::condition_variable and_mode_cv_
Definition: host_mode_ctrl.h:115
std::atomic< ModeType > atomic_mode_
Definition: host_mode_ctrl.h:117
std::mutex mode_mtx_
Definition: host_mode_ctrl.h:114
INJECT(HostModeCtrl())
Definition: host_mode_ctrl.h:41
#define ConfUiLog(LOG_LEVEL)
Definition: utils.h:61
#define check(p)
Definition: fec_private.h:203
@ DEBUG
Definition: logging.h:89
std::string GetName(const std::thread::id tid)
Definition: host_utils.cc:63
Definition: alloc_utils.cpp:23