Android-cuttlefish cvd tool
Public Member Functions | Private Member Functions | Private Attributes | List of all members
LibUsbConnection Struct Reference

#include <usb_libusb.h>

Inheritance diagram for LibUsbConnection:
Inheritance graph
[legend]
Collaboration diagram for LibUsbConnection:
Collaboration graph
[legend]

Public Member Functions

 LibUsbConnection (std::unique_ptr< LibUsbDevice > device)
 
 ~LibUsbConnection () override
 
void Init ()
 
bool Write (std::unique_ptr< apacket > packet) override
 
bool Start () override
 
void Stop () override
 
bool DoTlsHandshake (RSA *key, std::string *auth_key) override
 
void Reset () override
 
uint64_t NegotiatedSpeedMbps () override
 
uint64_t MaxSpeedMbps () override
 
bool SupportsDetach () const override
 
bool Attach (std::string *error) override
 
bool Detach (std::string *error) override
 
bool IsDetached ()
 
void OnError (const std::string &error)
 
uint64_t GetSessionId () const
 
- Public Member Functions inherited from Connection
 Connection ()=default
 
virtual ~Connection ()=default
 
void SetTransport (atransport *transport)
 
virtual bool Write (std::unique_ptr< apacket > packet)=0
 
virtual bool Start ()=0
 
virtual void Stop ()=0
 
virtual bool DoTlsHandshake (RSA *key, std::string *auth_key=nullptr)=0
 
virtual void Reset ()
 
virtual bool SupportsDetach () const
 
virtual bool Attach (std::string *error)
 
virtual bool Detach (std::string *error)
 
std::string Serial () const
 
virtual uint64_t NegotiatedSpeedMbps ()
 
virtual uint64_t MaxSpeedMbps ()
 

Private Member Functions

void HandleStop (const std::string &reason)
 
void StartReadThread () REQUIRES(mutex_)
 
void StartWriteThread () REQUIRES(mutex_)
 
bool running_ GUARDED_BY (mutex_)
 
std::thread read_thread_ GUARDED_BY (mutex_)
 
std::thread write_thread_ GUARDED_BY (mutex_)
 
std::deque< std::unique_ptr< apacket > > write_queue_ GUARDED_BY (mutex_)
 

Private Attributes

std::atomic< bool > detached_ = false
 
std::unique_ptr< LibUsbDevicedevice_
 
std::mutex mutex_
 
std::condition_variable cv_write_
 
std::once_flag error_flag_
 

Additional Inherited Members

- Static Public Member Functions inherited from Connection
static std::unique_ptr< ConnectionFromFd (unique_fd fd)
 
- Public Attributes inherited from Connection
atransporttransport_ = nullptr
 

Constructor & Destructor Documentation

◆ LibUsbConnection()

LibUsbConnection::LibUsbConnection ( std::unique_ptr< LibUsbDevice device)
explicit

◆ ~LibUsbConnection()

LibUsbConnection::~LibUsbConnection ( )
override

Member Function Documentation

◆ Attach()

bool LibUsbConnection::Attach ( std::string *  error)
overridevirtual

Reimplemented from Connection.

◆ Detach()

bool LibUsbConnection::Detach ( std::string *  error)
overridevirtual

Reimplemented from Connection.

◆ DoTlsHandshake()

bool LibUsbConnection::DoTlsHandshake ( RSA *  key,
std::string *  auth_key 
)
overridevirtual

Implements Connection.

◆ GetSessionId()

uint64_t LibUsbConnection::GetSessionId ( ) const

◆ GUARDED_BY() [1/4]

bool running_ LibUsbConnection::GUARDED_BY ( mutex_  )
private

◆ GUARDED_BY() [2/4]

std::thread read_thread_ LibUsbConnection::GUARDED_BY ( mutex_  )
private

◆ GUARDED_BY() [3/4]

std::thread write_thread_ LibUsbConnection::GUARDED_BY ( mutex_  )
private

◆ GUARDED_BY() [4/4]

std::deque< std::unique_ptr< apacket > > write_queue_ LibUsbConnection::GUARDED_BY ( mutex_  )
private

◆ HandleStop()

void LibUsbConnection::HandleStop ( const std::string &  reason)
private

◆ Init()

void LibUsbConnection::Init ( )

◆ IsDetached()

bool LibUsbConnection::IsDetached ( )

◆ MaxSpeedMbps()

uint64_t LibUsbConnection::MaxSpeedMbps ( )
overridevirtual

Reimplemented from Connection.

◆ NegotiatedSpeedMbps()

uint64_t LibUsbConnection::NegotiatedSpeedMbps ( )
overridevirtual

Reimplemented from Connection.

◆ OnError()

void LibUsbConnection::OnError ( const std::string &  error)

◆ Reset()

void LibUsbConnection::Reset ( )
overridevirtual

Reimplemented from Connection.

◆ Start()

bool LibUsbConnection::Start ( )
overridevirtual

Implements Connection.

◆ StartReadThread()

void LibUsbConnection::StartReadThread ( )
private

◆ StartWriteThread()

void LibUsbConnection::StartWriteThread ( )
private

◆ Stop()

void LibUsbConnection::Stop ( )
overridevirtual

Implements Connection.

◆ SupportsDetach()

bool LibUsbConnection::SupportsDetach ( ) const
overridevirtual

Reimplemented from Connection.

◆ Write()

bool LibUsbConnection::Write ( std::unique_ptr< apacket packet)
overridevirtual

Implements Connection.

Member Data Documentation

◆ cv_write_

std::condition_variable LibUsbConnection::cv_write_
private

◆ detached_

std::atomic<bool> LibUsbConnection::detached_ = false
private

◆ device_

std::unique_ptr<LibUsbDevice> LibUsbConnection::device_
private

◆ error_flag_

std::once_flag LibUsbConnection::error_flag_
private

◆ mutex_

std::mutex LibUsbConnection::mutex_
private

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