#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "chrome/test/chromedriver/net/adb_client_socket.h"
#include <stddef.h>
#include <memory>
#include <utility>
#include "base/compiler_specific.h"
#include "base/containers/span.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/address_list.h"
#include "net/base/completion_repeating_callback.h"
#include "net/base/ip_address.h"
#include "net/base/net_errors.h"
#include "net/log/net_log_source.h"
#include "net/socket/tcp_client_socket.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
#include "third_party/blink/public/public_buildflags.h"
namespace {
const int kBufferSize = …;
const int kBufferGrowthRate = …;
const size_t kAdbDataChunkSize = …;
const char kOkayResponse[] = …;
const char kFailResponse[] = …;
const char kHostTransportCommand[] = …;
const char kLocalAbstractCommand[] = …;
const char kSyncCommand[] = …;
const char kSendCommand[] = …;
const char kDataCommand[] = …;
const char kDoneCommand[] = …;
const int kAdbFailure = …;
const int kAdbSuccess = …;
CommandCallback;
SocketCallback;
ParserCallback;
std::string EncodeMessage(const std::string& message) { … }
class AdbTransportSocket : public AdbClientSocket { … };
class HttpOverAdbSocket { … };
class AdbQuerySocket : AdbClientSocket { … };
class AdbSendFileSocket : AdbClientSocket { … };
}
void AdbClientSocket::AdbQuery(int port,
const std::string& query,
const CommandCallback& callback) { … }
void AdbClientSocket::SendFile(int port,
const std::string& serial,
const std::string& filename,
const std::string& content,
const CommandCallback& callback) { … }
void AdbClientSocket::TransportQuery(int port,
const std::string& serial,
const std::string& socket_name,
const SocketCallback& callback) { … }
void AdbClientSocket::HttpQuery(int port,
const std::string& serial,
const std::string& socket_name,
const std::string& request_path,
const CommandCallback& callback) { … }
void AdbClientSocket::HttpQuery(int port,
const std::string& serial,
const std::string& socket_name,
const std::string& request_path,
const SocketCallback& callback) { … }
AdbClientSocket::AdbClientSocket(int port) : … { … }
AdbClientSocket::~AdbClientSocket() { … }
void AdbClientSocket::Connect(net::CompletionOnceCallback callback) { … }
void AdbClientSocket::SendCommand(const std::string& command,
bool has_output,
bool has_length,
const CommandCallback& response_callback) { … }
void AdbClientSocket::ReadResponse(const CommandCallback& response_callback,
bool has_output,
bool has_length,
int result) { … }
void AdbClientSocket::ReadStatusOutput(
const CommandCallback& response_callback,
scoped_refptr<net::IOBuffer> socket_buffer,
int socket_result) { … }
void AdbClientSocket::ReadUntilEOF(
const ParserCallback& parse_output_callback,
const CommandCallback& response_callback,
scoped_refptr<net::GrowableIOBuffer> socket_buffer,
int socket_result) { … }
void AdbClientSocket::ParseOutput(bool has_length,
const CommandCallback& response_callback,
const std::string& adb_output) { … }