Android-cuttlefish cvd tool
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
cuttlefish::run_cvd_impl::ServerLoopImpl Class Reference

#include <server_loop_impl.h>

Inheritance diagram for cuttlefish::run_cvd_impl::ServerLoopImpl:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::run_cvd_impl::ServerLoopImpl:
Collaboration graph
[legend]

Public Types

enum class  DeviceStatus : int { kUnknown = 0 , kActive = 1 , kSuspended = 2 }
 

Public Member Functions

 INJECT (ServerLoopImpl(const CuttlefishConfig &config, const CuttlefishConfig::InstanceSpecific &instance, AutoSnapshotControlFiles::Type &snapshot_control_files, WebRtcController &webrtc_controller))
 
Result< void > LateInject (fruit::Injector<> &injector) override
 
Result< void > Run () override
 
std::string Name () const override
 
- Public Member Functions inherited from cuttlefish::ServerLoop
virtual ~ServerLoop ()
 
virtual Result< void > Run ()=0
 
- Public Member Functions inherited from cuttlefish::SetupFeature
virtual ~SetupFeature ()
 
virtual bool Enabled () const
 
- Public Member Functions inherited from cuttlefish::Feature< SetupFeature >
virtual ~Feature ()=default
 
virtual std::string Name () const=0
 
- Public Member Functions inherited from cuttlefish::LateInjected
virtual ~LateInjected ()=default
 
virtual Result< void > LateInject (fruit::Injector<> &injector)=0
 

Private Member Functions

std::unordered_set< SetupFeature * > Dependencies () const override
 
Result< void > ResultSetup () override
 
Result< void > HandleExtended (const LauncherActionInfo &action_info, ProcessMonitor &process_monitor)
 
Result< void > HandleSuspend (ProcessMonitor &process_monitor)
 
Result< void > HandleResume (ProcessMonitor &process_monitor)
 
Result< void > HandleSnapshotTake (const run_cvd::SnapshotTake &snapshot_take)
 
Result< void > HandleStartScreenRecording ()
 
Result< void > HandleStopScreenRecording ()
 
Result< void > HandleScreenshotDisplay (const run_cvd::ScreenshotDisplay &request)
 
void HandleActionWithNoData (const LauncherAction action, const SharedFD &client, ProcessMonitor &process_monitor)
 
void DeleteFifos ()
 
bool PowerwashFiles ()
 
void RestartRunCvd (int notification_fd)
 
Result< void > SuspendGuest ()
 
Result< void > ResumeGuest ()
 
Result< std::string > VmControlSocket () const
 
Result< void > TakeGuestSnapshot (VmmMode, const std::string &)
 
Result< void > TakeCrosvmGuestSnapshot (const Json::Value &)
 

Static Private Member Functions

static bool CreateQcowOverlay (const std::string &crosvm_path, const std::string &backing_file, const std::string &output_overlay_path)
 
static std::unordered_map< std::string, std::string > InitializeVmToControlSockPath (const CuttlefishConfig::InstanceSpecific &)
 

Private Attributes

const CuttlefishConfigconfig_
 
const CuttlefishConfig::InstanceSpecificinstance_
 
AutoSnapshotControlFiles::Type & snapshot_control_files_
 
WebRtcControllerwebrtc_controller_
 
std::vector< CommandSource * > command_sources_
 
SharedFD server_
 
std::unordered_map< std::string, std::string > vm_name_to_control_sock_
 
std::atomic< DeviceStatusdevice_status_
 

Additional Inherited Members

- Static Public Member Functions inherited from cuttlefish::SetupFeature
static Result< void > RunSetup (const std::vector< SetupFeature * > &features)
 
- Static Public Member Functions inherited from cuttlefish::Feature< SetupFeature >
static Result< void > TopologicalVisit (const std::unordered_set< SetupFeature * > &features, const std::function< Result< void >(SetupFeature *)> &callback)
 

Member Enumeration Documentation

◆ DeviceStatus

Enumerator
kUnknown 
kActive 
kSuspended 

Member Function Documentation

◆ CreateQcowOverlay()

bool cuttlefish::run_cvd_impl::ServerLoopImpl::CreateQcowOverlay ( const std::string &  crosvm_path,
const std::string &  backing_file,
const std::string &  output_overlay_path 
)
staticprivate

◆ DeleteFifos()

void cuttlefish::run_cvd_impl::ServerLoopImpl::DeleteFifos ( )
private

◆ Dependencies()

std::unordered_set< SetupFeature * > cuttlefish::run_cvd_impl::ServerLoopImpl::Dependencies ( ) const
inlineoverrideprivatevirtual

◆ HandleActionWithNoData()

void cuttlefish::run_cvd_impl::ServerLoopImpl::HandleActionWithNoData ( const LauncherAction  action,
const SharedFD client,
ProcessMonitor process_monitor 
)
private

◆ HandleExtended()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleExtended ( const LauncherActionInfo action_info,
ProcessMonitor process_monitor 
)
private

◆ HandleResume()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleResume ( ProcessMonitor process_monitor)
private

◆ HandleScreenshotDisplay()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleScreenshotDisplay ( const run_cvd::ScreenshotDisplay &  request)
private

◆ HandleSnapshotTake()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleSnapshotTake ( const run_cvd::SnapshotTake &  snapshot_take)
private

◆ HandleStartScreenRecording()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleStartScreenRecording ( )
private

◆ HandleStopScreenRecording()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleStopScreenRecording ( )
private

◆ HandleSuspend()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::HandleSuspend ( ProcessMonitor process_monitor)
private

◆ InitializeVmToControlSockPath()

std::unordered_map< std::string, std::string > cuttlefish::run_cvd_impl::ServerLoopImpl::InitializeVmToControlSockPath ( const CuttlefishConfig::InstanceSpecific instance)
staticprivate

◆ INJECT()

cuttlefish::run_cvd_impl::ServerLoopImpl::INJECT ( ServerLoopImpl(const CuttlefishConfig &config, const CuttlefishConfig::InstanceSpecific &instance, AutoSnapshotControlFiles::Type &snapshot_control_files, WebRtcController &webrtc_controller)  )

◆ LateInject()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::LateInject ( fruit::Injector<> &  injector)
overridevirtual

◆ Name()

std::string cuttlefish::run_cvd_impl::ServerLoopImpl::Name ( ) const
inlineoverridevirtual

◆ PowerwashFiles()

bool cuttlefish::run_cvd_impl::ServerLoopImpl::PowerwashFiles ( )
private

◆ RestartRunCvd()

void cuttlefish::run_cvd_impl::ServerLoopImpl::RestartRunCvd ( int  notification_fd)
private

◆ ResultSetup()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::ResultSetup ( )
overrideprivatevirtual

◆ ResumeGuest()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::ResumeGuest ( )
private

◆ Run()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::Run ( )
overridevirtual

◆ SuspendGuest()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::SuspendGuest ( )
private

◆ TakeCrosvmGuestSnapshot()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::TakeCrosvmGuestSnapshot ( const Json::Value &  meta_json)
private

◆ TakeGuestSnapshot()

Result< void > cuttlefish::run_cvd_impl::ServerLoopImpl::TakeGuestSnapshot ( VmmMode  vm_manager,
const std::string &  json_path 
)
private

◆ VmControlSocket()

Result< std::string > cuttlefish::run_cvd_impl::ServerLoopImpl::VmControlSocket ( ) const
private

Member Data Documentation

◆ command_sources_

std::vector<CommandSource*> cuttlefish::run_cvd_impl::ServerLoopImpl::command_sources_
private

◆ config_

const CuttlefishConfig& cuttlefish::run_cvd_impl::ServerLoopImpl::config_
private

◆ device_status_

std::atomic<DeviceStatus> cuttlefish::run_cvd_impl::ServerLoopImpl::device_status_
private

◆ instance_

const CuttlefishConfig::InstanceSpecific& cuttlefish::run_cvd_impl::ServerLoopImpl::instance_
private

◆ server_

SharedFD cuttlefish::run_cvd_impl::ServerLoopImpl::server_
private

◆ snapshot_control_files_

AutoSnapshotControlFiles::Type& cuttlefish::run_cvd_impl::ServerLoopImpl::snapshot_control_files_
private

◆ vm_name_to_control_sock_

std::unordered_map<std::string, std::string> cuttlefish::run_cvd_impl::ServerLoopImpl::vm_name_to_control_sock_
private

◆ webrtc_controller_

WebRtcController& cuttlefish::run_cvd_impl::ServerLoopImpl::webrtc_controller_
private

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