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

#include <transport.h>

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

Public Types

using ReconnectCallback = std::function< ReconnectResult(atransport *)>
 

Public Member Functions

 atransport (TransportType t, ReconnectCallback reconnect, ConnectionState state)
 
 atransport (TransportType t, ConnectionState state=kCsOffline)
 
 ~atransport ()
 
int Write (apacket *p)
 
void Reset ()
 
void Kick ()
 
bool kicked () const
 
ConnectionState GetConnectionState () const
 
void SetConnectionState (ConnectionState state)
 
void SetConnection (std::shared_ptr< Connection > connection)
 
std::shared_ptr< Connectionconnection ()
 
bool HandleRead (std::unique_ptr< apacket > p)
 
void HandleError (const std::string &error)
 
int get_tls_version () const
 
bool IsTcpDevice () const
 
std::string serial_name () const
 
void update_version (int version, size_t payload)
 
int get_protocol_version () const
 
size_t get_max_payload () const
 
const FeatureSetfeatures () const
 
bool has_feature (const std::string &feature) const
 
bool SupportsDelayedAck () const
 
void SetFeatures (const std::string &features_string)
 
void AddDisconnect (adisconnect *disconnect)
 
void RemoveDisconnect (adisconnect *disconnect)
 
void RunDisconnects ()
 
- Public Member Functions inherited from enable_weak_from_this< atransport >
 ~enable_weak_from_this ()
 
weak_ptr< atransportweak ()
 
void schedule_deletion ()
 

Public Attributes

const TransportId id
 
bool online = false
 
TransportType type = kTransportAny
 
std::string serial
 
std::string product
 
std::string model
 
std::string device
 
std::string devpath
 
bool use_tls = false
 
int tls_version = A_STLS_VERSION
 
std::string auth_key
 
std::optional< uint64_t > auth_id
 
char token [TOKEN_SIZE] = {}
 
size_t failed_auth_attempts = 0
 

Private Member Functions

std::shared_ptr< Connection > connection_ GUARDED_BY (mutex_)
 
 DISALLOW_COPY_AND_ASSIGN (atransport)
 

Private Attributes

std::atomic< bool > kicked_
 
FeatureSet features_
 
int protocol_version
 
size_t max_payload
 
std::list< adisconnect * > disconnects_
 
std::atomic< ConnectionStateconnection_state_
 
ReconnectCallback reconnect_
 
std::mutex mutex_
 
bool delayed_ack_ = false
 

Member Typedef Documentation

◆ ReconnectCallback

Constructor & Destructor Documentation

◆ atransport() [1/2]

atransport::atransport ( TransportType  t,
ReconnectCallback  reconnect,
ConnectionState  state 
)
inline

◆ atransport() [2/2]

atransport::atransport ( TransportType  t,
ConnectionState  state = kCsOffline 
)
inline

◆ ~atransport()

atransport::~atransport ( )

Member Function Documentation

◆ AddDisconnect()

void atransport::AddDisconnect ( adisconnect disconnect)

◆ connection()

std::shared_ptr< Connection > atransport::connection ( )
inline

◆ DISALLOW_COPY_AND_ASSIGN()

atransport::DISALLOW_COPY_AND_ASSIGN ( atransport  )
private

◆ features()

const FeatureSet & atransport::features ( ) const
inline

◆ get_max_payload()

size_t atransport::get_max_payload ( ) const

◆ get_protocol_version()

int atransport::get_protocol_version ( ) const

◆ get_tls_version()

int atransport::get_tls_version ( ) const

◆ GetConnectionState()

ConnectionState atransport::GetConnectionState ( ) const

◆ GUARDED_BY()

std::shared_ptr< Connection > connection_ atransport::GUARDED_BY ( mutex_  )
private

◆ HandleError()

void atransport::HandleError ( const std::string &  error)

◆ HandleRead()

bool atransport::HandleRead ( std::unique_ptr< apacket p)

◆ has_feature()

bool atransport::has_feature ( const std::string &  feature) const

◆ IsTcpDevice()

bool atransport::IsTcpDevice ( ) const
inline

◆ Kick()

void atransport::Kick ( )

◆ kicked()

bool atransport::kicked ( ) const
inline

◆ RemoveDisconnect()

void atransport::RemoveDisconnect ( adisconnect disconnect)

◆ Reset()

void atransport::Reset ( )

◆ RunDisconnects()

void atransport::RunDisconnects ( )

◆ serial_name()

std::string atransport::serial_name ( ) const
inline

◆ SetConnection()

void atransport::SetConnection ( std::shared_ptr< Connection connection)

◆ SetConnectionState()

void atransport::SetConnectionState ( ConnectionState  state)

◆ SetFeatures()

void atransport::SetFeatures ( const std::string &  features_string)

◆ SupportsDelayedAck()

bool atransport::SupportsDelayedAck ( ) const
inline

◆ update_version()

void atransport::update_version ( int  version,
size_t  payload 
)

◆ Write()

int atransport::Write ( apacket p)

Member Data Documentation

◆ auth_id

std::optional<uint64_t> atransport::auth_id

◆ auth_key

std::string atransport::auth_key

◆ connection_state_

std::atomic<ConnectionState> atransport::connection_state_
private

◆ delayed_ack_

bool atransport::delayed_ack_ = false
private

◆ device

std::string atransport::device

◆ devpath

std::string atransport::devpath

◆ disconnects_

std::list<adisconnect*> atransport::disconnects_
private

◆ failed_auth_attempts

size_t atransport::failed_auth_attempts = 0

◆ features_

FeatureSet atransport::features_
private

◆ id

const TransportId atransport::id

◆ kicked_

std::atomic<bool> atransport::kicked_
private

◆ max_payload

size_t atransport::max_payload
private

◆ model

std::string atransport::model

◆ mutex_

std::mutex atransport::mutex_
private

◆ online

bool atransport::online = false

◆ product

std::string atransport::product

◆ protocol_version

int atransport::protocol_version
private

◆ reconnect_

ReconnectCallback atransport::reconnect_
private

◆ serial

std::string atransport::serial

◆ tls_version

int atransport::tls_version = A_STLS_VERSION

◆ token

char atransport::token[TOKEN_SIZE] = {}

◆ type

TransportType atransport::type = kTransportAny

◆ use_tls

bool atransport::use_tls = false

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