Android-cuttlefish cvd tool
Classes | Macros | Functions | Variables
transport_emulator.cpp File Reference
#include "sysdeps.h"
#include "transport.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <condition_variable>
#include <functional>
#include <memory>
#include <mutex>
#include <thread>
#include <unordered_map>
#include <vector>
#include <android-base/parsenetaddress.h>
#include <android-base/stringprintf.h>
#include <android-base/thread_annotations.h>
#include <cutils/sockets.h>
#include "adb.h"
#include "adb_io.h"
#include "adb_unique_fd.h"
#include "adb_utils.h"
#include "fdevent/fdevent.h"
#include "socket_spec.h"
#include "sysdeps/chrono.h"
Include dependency graph for transport_emulator.cpp:

Classes

struct  RetryPort
 
struct  EmulatorConnection
 

Macros

#define TRACE_TAG   TRANSPORT
 

Functions

static void adb_local_transport_max_port_env_override ()
 
static std::unordered_map< int, atransport * > emulator_transports GUARDED_BY (emulator_transports_lock)
 
bool connect_emulator (int port)
 
void connect_device (const std::string &address, std::string *response)
 
int connect_emulator_arbitrary_ports (int console_port, int adb_port, std::string *error)
 
static void PollAllLocalPortsForEmulator ()
 
static void client_socket_thread (std::string_view)
 
void init_emulator_scanner (const std::string &addr)
 
static atransportfind_emulator_transport_by_adb_port_locked (int adb_port) REQUIRES(emulator_transports_lock)
 
atransportfind_emulator_transport_by_adb_port (int adb_port)
 
atransportfind_emulator_transport_by_console_port (int console_port)
 
std::string getEmulatorSerialString (int console_port)
 
int init_socket_transport (atransport *t, unique_fd fd, int adb_port, bool is_emulator)
 

Variables

static int adb_local_transport_max_port = DEFAULT_ADB_LOCAL_TRANSPORT_PORT + 16 * 2 - 1
 
static std::mutex & emulator_transports_lock = *new std::mutex()
 
static constexpr uint32_t LOCAL_PORT_RETRY_COUNT = 60
 
static constexpr auto LOCAL_PORT_RETRY_INTERVAL = 1s
 
static std::vector< RetryPort > & retry_ports = *new std::vector<RetryPort>
 
std::mutex & retry_ports_lock = *new std::mutex
 
std::condition_variable & retry_ports_cond = *new std::condition_variable
 

Macro Definition Documentation

◆ TRACE_TAG

#define TRACE_TAG   TRANSPORT

Function Documentation

◆ adb_local_transport_max_port_env_override()

static void adb_local_transport_max_port_env_override ( )
static

◆ client_socket_thread()

static void client_socket_thread ( std::string_view  )
static

◆ connect_device()

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

◆ connect_emulator()

bool connect_emulator ( int  port)

◆ connect_emulator_arbitrary_ports()

int connect_emulator_arbitrary_ports ( int  console_port,
int  adb_port,
std::string *  error 
)

◆ find_emulator_transport_by_adb_port()

atransport * find_emulator_transport_by_adb_port ( int  adb_port)

◆ find_emulator_transport_by_adb_port_locked()

static atransport * find_emulator_transport_by_adb_port_locked ( int  adb_port)
static

◆ find_emulator_transport_by_console_port()

atransport * find_emulator_transport_by_console_port ( int  console_port)

◆ getEmulatorSerialString()

std::string getEmulatorSerialString ( int  console_port)

◆ GUARDED_BY()

static std::unordered_map< int, atransport * > emulator_transports GUARDED_BY ( emulator_transports_lock  )
static

◆ init_emulator_scanner()

void init_emulator_scanner ( const std::string &  addr)

◆ init_socket_transport()

int init_socket_transport ( atransport t,
unique_fd  fd,
int  adb_port,
bool  is_emulator 
)

◆ PollAllLocalPortsForEmulator()

static void PollAllLocalPortsForEmulator ( )
static

Variable Documentation

◆ adb_local_transport_max_port

int adb_local_transport_max_port = DEFAULT_ADB_LOCAL_TRANSPORT_PORT + 16 * 2 - 1
static

◆ emulator_transports_lock

std::mutex& emulator_transports_lock = *new std::mutex()
static

◆ LOCAL_PORT_RETRY_COUNT

constexpr uint32_t LOCAL_PORT_RETRY_COUNT = 60
staticconstexpr

◆ LOCAL_PORT_RETRY_INTERVAL

constexpr auto LOCAL_PORT_RETRY_INTERVAL = 1s
staticconstexpr

◆ retry_ports

std::vector<RetryPort>& retry_ports = *new std::vector<RetryPort>
static

◆ retry_ports_cond

std::condition_variable& retry_ports_cond = *new std::condition_variable

◆ retry_ports_lock

std::mutex& retry_ports_lock = *new std::mutex