22#include <condition_variable>
26#include "fruit/fruit.h"
41 enum class ModeType : uint8_t { kAndroidMode = 55, kConfUI_Mode = 77 };
65 <<
"checking atomic Android mode";
68 <<
"returns as it is already Android mode";
71 auto check = [
this]() ->
bool {
74 std::unique_lock<std::mutex> lock(
mode_mtx_);
77 <<
"awakes from cond var waiting for Android mode";
82 <<
" tries to acquire the lock in SetMode";
83 std::lock_guard<std::mutex> lock(
mode_mtx_);
85 <<
" acquired the lock in SetMode";
89 <<
" signals kAndroidMode in SetMode";
94 <<
"signals kConfUI_Mode in SetMode";
111 return host_mode_controller;
Definition: host_mode_ctrl.h:39
auto GetMode()
Definition: host_mode_ctrl.h:98
void WaitAndroidMode()
Definition: host_mode_ctrl.h:63
auto IsAndroidMode()
Definition: host_mode_ctrl.h:107
static HostModeCtrl & Get()
Definition: host_mode_ctrl.h:109
std::condition_variable confui_mode_cv_
Definition: host_mode_ctrl.h:117
void SetMode(const ModeType mode)
Definition: host_mode_ctrl.h:80
auto IsConfirmatioUiMode()
Definition: host_mode_ctrl.h:103
std::condition_variable and_mode_cv_
Definition: host_mode_ctrl.h:116
std::atomic< ModeType > atomic_mode_
Definition: host_mode_ctrl.h:118
std::mutex mode_mtx_
Definition: host_mode_ctrl.h:115
INJECT(HostModeCtrl())
Definition: host_mode_ctrl.h:42
ModeType
Definition: host_mode_ctrl.h:41
#define ConfUiLogDebug
Definition: utils.h:61
#define check(p)
Definition: fec_private.h:203
std::string GetName(const std::thread::id tid)
Definition: host_utils.cc:63
Definition: alloc_driver.h:20