Android-cuttlefish cvd tool
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
cuttlefish::confui::Session Class Reference

#include <session.h>

Collaboration diagram for cuttlefish::confui::Session:
Collaboration graph
[legend]

Public Member Functions

 Session (const std::string &session_name, const std::uint32_t display_num, ConfUiRenderer &host_renderer, HostModeCtrl &host_mode_ctrl, const std::string &locale="en")
 
std::string GetId ()
 
MainLoopState GetState ()
 
MainLoopState Transition (SharedFD &hal_cli, const FsmInput fsm_input, const ConfUiMessage &conf_ui_message)
 
bool Suspend (SharedFD hal_cli)
 
bool Restore (SharedFD hal_cli)
 
void Abort ()
 
void UserAbort (SharedFD hal_cli)
 
bool IsSuspended () const
 
void CleanUp ()
 
bool IsConfirm (const int x, const int y)
 
bool IsCancel (const int x, const int y)
 
bool IsReadyForUserInput () const
 

Private Types

using Clock = std::chrono::steady_clock
 
using TimePoint = std::chrono::time_point< Clock >
 

Private Member Functions

bool IsUserInput (const FsmInput fsm_input)
 
bool RenderDialog ()
 
bool HandleInit (SharedFD hal_cli, const FsmInput fsm_input, const ConfUiMessage &conf_ui_message)
 
bool HandleWaitStop (SharedFD hal_cli, const FsmInput fsm_input)
 
bool HandleInSession (SharedFD hal_cli, const FsmInput fsm_input, const ConfUiMessage &conf_ui_msg)
 
bool ReportErrorToHal (SharedFD hal_cli, const std::string &msg)
 
void ScheduleToTerminate ()
 

Private Attributes

const std::string session_id_
 
const std::uint32_t display_num_
 
ConfUiRendererrenderer_
 
HostModeCtrlhost_mode_ctrl_
 
std::string prompt_text_
 
std::string locale_
 
std::vector< teeui::UIOptionui_options_
 
std::vector< std::uint8_t > extra_data_
 
std::vector< std::uint8_t > signed_confirmation_
 
std::vector< std::uint8_t > message_
 
std::unique_ptr< Cborcbor_
 
std::atomic< MainLoopStatestate_
 
MainLoopState saved_state_
 
std::unique_ptr< TimePointstart_time_
 

Detailed Description

Confirmation UI Session

E.g. Two guest apps could drive confirmation UI respectively, and both are alive at the moment. Each needs one session

Member Typedef Documentation

◆ Clock

using cuttlefish::confui::Session::Clock = std::chrono::steady_clock
private

◆ TimePoint

using cuttlefish::confui::Session::TimePoint = std::chrono::time_point<Clock>
private

Constructor & Destructor Documentation

◆ Session()

cuttlefish::confui::Session::Session ( const std::string &  session_name,
const std::uint32_t  display_num,
ConfUiRenderer host_renderer,
HostModeCtrl host_mode_ctrl,
const std::string &  locale = "en" 
)

Member Function Documentation

◆ Abort()

void cuttlefish::confui::Session::Abort ( )

◆ CleanUp()

void cuttlefish::confui::Session::CleanUp ( )

◆ GetId()

std::string cuttlefish::confui::Session::GetId ( )
inline

◆ GetState()

MainLoopState cuttlefish::confui::Session::GetState ( )
inline

◆ HandleInit()

bool cuttlefish::confui::Session::HandleInit ( SharedFD  hal_cli,
const FsmInput  fsm_input,
const ConfUiMessage conf_ui_message 
)
private

◆ HandleInSession()

bool cuttlefish::confui::Session::HandleInSession ( SharedFD  hal_cli,
const FsmInput  fsm_input,
const ConfUiMessage conf_ui_msg 
)
private

◆ HandleWaitStop()

bool cuttlefish::confui::Session::HandleWaitStop ( SharedFD  hal_cli,
const FsmInput  fsm_input 
)
private

◆ IsCancel()

bool cuttlefish::confui::Session::IsCancel ( const int  x,
const int  y 
)
inline

◆ IsConfirm()

bool cuttlefish::confui::Session::IsConfirm ( const int  x,
const int  y 
)
inline

◆ IsReadyForUserInput()

bool cuttlefish::confui::Session::IsReadyForUserInput ( ) const

◆ IsSuspended()

bool cuttlefish::confui::Session::IsSuspended ( ) const

◆ IsUserInput()

bool cuttlefish::confui::Session::IsUserInput ( const FsmInput  fsm_input)
inlineprivate

◆ RenderDialog()

bool cuttlefish::confui::Session::RenderDialog ( )
private

create a frame, and render it on the webRTC client

note that this does not check host_ctrl_mode_

◆ ReportErrorToHal()

bool cuttlefish::confui::Session::ReportErrorToHal ( SharedFD  hal_cli,
const std::string &  msg 
)
private

◆ Restore()

bool cuttlefish::confui::Session::Restore ( SharedFD  hal_cli)

this make a transition from kRestore to the saved state

◆ ScheduleToTerminate()

void cuttlefish::confui::Session::ScheduleToTerminate ( )
private

◆ Suspend()

bool cuttlefish::confui::Session::Suspend ( SharedFD  hal_cli)

this make a transition from kWaitStop or kInSession to kSuspend

◆ Transition()

MainLoopState cuttlefish::confui::Session::Transition ( SharedFD hal_cli,
const FsmInput  fsm_input,
const ConfUiMessage conf_ui_message 
)

◆ UserAbort()

void cuttlefish::confui::Session::UserAbort ( SharedFD  hal_cli)

Member Data Documentation

◆ cbor_

std::unique_ptr<Cbor> cuttlefish::confui::Session::cbor_
private

◆ display_num_

const std::uint32_t cuttlefish::confui::Session::display_num_
private

◆ extra_data_

std::vector<std::uint8_t> cuttlefish::confui::Session::extra_data_
private

◆ host_mode_ctrl_

HostModeCtrl& cuttlefish::confui::Session::host_mode_ctrl_
private

◆ locale_

std::string cuttlefish::confui::Session::locale_
private

◆ message_

std::vector<std::uint8_t> cuttlefish::confui::Session::message_
private

◆ prompt_text_

std::string cuttlefish::confui::Session::prompt_text_
private

◆ renderer_

ConfUiRenderer& cuttlefish::confui::Session::renderer_
private

◆ saved_state_

MainLoopState cuttlefish::confui::Session::saved_state_
private

◆ session_id_

const std::string cuttlefish::confui::Session::session_id_
private

◆ signed_confirmation_

std::vector<std::uint8_t> cuttlefish::confui::Session::signed_confirmation_
private

◆ start_time_

std::unique_ptr<TimePoint> cuttlefish::confui::Session::start_time_
private

◆ state_

std::atomic<MainLoopState> cuttlefish::confui::Session::state_
private

◆ ui_options_

std::vector<teeui::UIOption> cuttlefish::confui::Session::ui_options_
private

The documentation for this class was generated from the following files: