Android-cuttlefish cvd tool
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
transport.h File Reference
#include <sys/types.h>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <deque>
#include <functional>
#include <list>
#include <memory>
#include <mutex>
#include <optional>
#include <string>
#include <string_view>
#include <thread>
#include <unordered_map>
#include <vector>
#include <android-base/macros.h>
#include <android-base/thread_annotations.h>
#include <openssl/rsa.h>
#include "adb.h"
#include "adb_unique_fd.h"
#include "types.h"
Include dependency graph for transport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Connection
 
struct  BlockingConnection
 
struct  BlockingConnectionAdapter
 
struct  FdConnection
 
class  ConnectionWaitable
 
class  atransport
 

Namespaces

namespace  adb
 
namespace  adb::tls
 

Typedefs

using FeatureSet = std::vector< std::string >
 

Enumerations

enum class  ReconnectResult { Retry , Success , Abort }
 

Functions

const FeatureSetsupported_features ()
 
std::string FeatureSetToString (const FeatureSet &features)
 
FeatureSet StringToFeatureSet (const std::string &features_string)
 
bool CanUseFeature (const FeatureSet &feature_set, const std::string &feature)
 
TransportId NextTransportId ()
 
void transport_set_one_device (const char *adb_one_device)
 
const char * transport_get_one_device ()
 
bool transport_server_owns_device (std::string_view serial)
 
bool transport_server_owns_device (std::string_view dev_path, std::string_view serial)
 
atransportacquire_one_transport (TransportType type, const char *serial, TransportId transport_id, bool *is_ambiguous, std::string *error_out, bool accept_any_state=false)
 
void kick_transport (atransport *t, bool reset=false)
 
void update_transports ()
 
bool iterate_transports (std::function< bool(const atransport *)> fn)
 
void init_reconnect_handler ()
 
void init_mdns_transport_discovery ()
 
void kick_all_transports ()
 
void kick_all_tcp_tls_transports ()
 
void kick_all_transports_by_auth_key (std::string_view auth_key)
 
void register_transport (atransport *transport)
 
void connect_device (const std::string &address, std::string *response)
 
int init_socket_transport (atransport *t, unique_fd s, int port, bool is_emulator)
 
bool register_socket_transport (unique_fd s, std::string serial, int port, bool is_emulator, atransport::ReconnectCallback reconnect, bool use_tls, int *error=nullptr)
 
bool check_header (apacket *p, atransport *t)
 
void close_usb_devices (bool reset=false)
 
void close_usb_devices (std::function< bool(const atransport *)> predicate, bool reset=false)
 
void send_packet (apacket *p, atransport *t)
 

Variables

const char *const kFeatureShell2
 
const char *const kFeatureCmd
 
const char *const kFeatureStat2
 
const char *const kFeatureLs2
 
const char *const kFeatureLibusb
 
const char *const kFeaturePushSync
 
const char *const kFeatureApex
 
const char *const kFeatureFixedPushMkdir
 
const char *const kFeatureAbb
 
const char *const kFeatureAbbExec
 
const char *const kFeatureFixedPushSymlinkTimestamp
 
const char *const kFeatureRemountShell
 
const char *const kFeatureTrackApp
 
const char *const kFeatureSendRecv2
 
const char *const kFeatureSendRecv2Brotli
 
const char *const kFeatureSendRecv2LZ4
 
const char *const kFeatureSendRecv2Zstd
 
const char *const kFeatureSendRecv2DryRunSend
 
const char *const kFeatureDelayedAck
 
const char *const kFeatureDevRaw
 

Typedef Documentation

◆ FeatureSet

using FeatureSet = std::vector<std::string>

Enumeration Type Documentation

◆ ReconnectResult

enum class ReconnectResult
strong
Enumerator
Retry 
Success 
Abort 

Function Documentation

◆ acquire_one_transport()

atransport * acquire_one_transport ( TransportType  type,
const char *  serial,
TransportId  transport_id,
bool *  is_ambiguous,
std::string *  error_out,
bool  accept_any_state = false 
)

◆ CanUseFeature()

bool CanUseFeature ( const FeatureSet feature_set,
const std::string &  feature 
)

◆ check_header()

bool check_header ( apacket p,
atransport t 
)

◆ close_usb_devices() [1/2]

void close_usb_devices ( bool  reset = false)

◆ close_usb_devices() [2/2]

void close_usb_devices ( std::function< bool(const atransport *)>  predicate,
bool  reset = false 
)

◆ connect_device()

void connect_device ( const std::string &  address,
std::string *  response 
)

◆ FeatureSetToString()

std::string FeatureSetToString ( const FeatureSet features)

◆ init_mdns_transport_discovery()

void init_mdns_transport_discovery ( )

◆ init_reconnect_handler()

void init_reconnect_handler ( )

◆ init_socket_transport()

int init_socket_transport ( atransport t,
unique_fd  s,
int  port,
bool  is_emulator 
)

◆ iterate_transports()

bool iterate_transports ( std::function< bool(const atransport *)>  fn)

◆ kick_all_tcp_tls_transports()

void kick_all_tcp_tls_transports ( )

◆ kick_all_transports()

void kick_all_transports ( )

◆ kick_all_transports_by_auth_key()

void kick_all_transports_by_auth_key ( std::string_view  auth_key)

◆ kick_transport()

void kick_transport ( atransport t,
bool  reset = false 
)

◆ NextTransportId()

TransportId NextTransportId ( )

◆ register_socket_transport()

bool register_socket_transport ( unique_fd  s,
std::string  serial,
int  port,
bool  is_emulator,
atransport::ReconnectCallback  reconnect,
bool  use_tls,
int *  error = nullptr 
)

◆ register_transport()

void register_transport ( atransport transport)

◆ send_packet()

void send_packet ( apacket p,
atransport t 
)

◆ StringToFeatureSet()

FeatureSet StringToFeatureSet ( const std::string &  features_string)

◆ supported_features()

const FeatureSet & supported_features ( )

◆ transport_get_one_device()

const char * transport_get_one_device ( )

◆ transport_server_owns_device() [1/2]

bool transport_server_owns_device ( std::string_view  dev_path,
std::string_view  serial 
)

◆ transport_server_owns_device() [2/2]

bool transport_server_owns_device ( std::string_view  serial)

◆ transport_set_one_device()

void transport_set_one_device ( const char *  adb_one_device)

◆ update_transports()

void update_transports ( )

Variable Documentation

◆ kFeatureAbb

const char* const kFeatureAbb
extern

◆ kFeatureAbbExec

const char* const kFeatureAbbExec
extern

◆ kFeatureApex

const char* const kFeatureApex
extern

◆ kFeatureCmd

const char* const kFeatureCmd
extern

◆ kFeatureDelayedAck

const char* const kFeatureDelayedAck
extern

◆ kFeatureDevRaw

const char* const kFeatureDevRaw
extern

◆ kFeatureFixedPushMkdir

const char* const kFeatureFixedPushMkdir
extern

◆ kFeatureFixedPushSymlinkTimestamp

const char* const kFeatureFixedPushSymlinkTimestamp
extern

◆ kFeatureLibusb

const char* const kFeatureLibusb
extern

◆ kFeatureLs2

const char* const kFeatureLs2
extern

◆ kFeaturePushSync

const char* const kFeaturePushSync
extern

◆ kFeatureRemountShell

const char* const kFeatureRemountShell
extern

◆ kFeatureSendRecv2

const char* const kFeatureSendRecv2
extern

◆ kFeatureSendRecv2Brotli

const char* const kFeatureSendRecv2Brotli
extern

◆ kFeatureSendRecv2DryRunSend

const char* const kFeatureSendRecv2DryRunSend
extern

◆ kFeatureSendRecv2LZ4

const char* const kFeatureSendRecv2LZ4
extern

◆ kFeatureSendRecv2Zstd

const char* const kFeatureSendRecv2Zstd
extern

◆ kFeatureShell2

const char* const kFeatureShell2
extern

◆ kFeatureStat2

const char* const kFeatureStat2
extern

◆ kFeatureTrackApp

const char* const kFeatureTrackApp
extern