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

#include <transport.h>

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

Public Member Functions

 BlockingConnectionAdapter (std::unique_ptr< BlockingConnection > connection)
 
virtual ~BlockingConnectionAdapter ()
 
virtual bool Write (std::unique_ptr< apacket > packet) override final
 
virtual bool Start () override final
 
virtual void Stop () override final
 
virtual bool DoTlsHandshake (RSA *key, std::string *auth_key) override final
 
virtual void Reset () override final
 
- 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 StartReadThread () REQUIRES(mutex_)
 
bool started_ GUARDED_BY (mutex_)
 
bool stopped_ 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::unique_ptr< BlockingConnectionunderlying_
 
std::mutex mutex_
 
std::condition_variable cv_
 
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

◆ BlockingConnectionAdapter()

BlockingConnectionAdapter::BlockingConnectionAdapter ( std::unique_ptr< BlockingConnection connection)
explicit

◆ ~BlockingConnectionAdapter()

BlockingConnectionAdapter::~BlockingConnectionAdapter ( )
virtual

Member Function Documentation

◆ DoTlsHandshake()

bool BlockingConnectionAdapter::DoTlsHandshake ( RSA *  key,
std::string *  auth_key 
)
finaloverridevirtual

Implements Connection.

◆ GUARDED_BY() [1/5]

bool started_ BlockingConnectionAdapter::GUARDED_BY ( mutex_  )
private

◆ GUARDED_BY() [2/5]

bool stopped_ BlockingConnectionAdapter::GUARDED_BY ( mutex_  )
private

◆ GUARDED_BY() [3/5]

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

◆ GUARDED_BY() [4/5]

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

◆ GUARDED_BY() [5/5]

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

◆ Reset()

void BlockingConnectionAdapter::Reset ( )
finaloverridevirtual

Reimplemented from Connection.

◆ Start()

bool BlockingConnectionAdapter::Start ( )
finaloverridevirtual

Implements Connection.

◆ StartReadThread()

void BlockingConnectionAdapter::StartReadThread ( )
private

◆ Stop()

void BlockingConnectionAdapter::Stop ( )
finaloverridevirtual

Implements Connection.

◆ Write()

bool BlockingConnectionAdapter::Write ( std::unique_ptr< apacket packet)
finaloverridevirtual

Implements Connection.

Member Data Documentation

◆ cv_

std::condition_variable BlockingConnectionAdapter::cv_
private

◆ error_flag_

std::once_flag BlockingConnectionAdapter::error_flag_
private

◆ mutex_

std::mutex BlockingConnectionAdapter::mutex_
private

◆ underlying_

std::unique_ptr<BlockingConnection> BlockingConnectionAdapter::underlying_
private

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