blob: d35d705854116042f02b57ce2538d36e3a80ee7f [file] [log] [blame]
Spencer Low142ec752015-05-06 16:13:42 -07001/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080017#ifndef _ADB_CLIENT_H_
18#define _ADB_CLIENT_H_
19
20#include "adb.h"
Felipe Leme698e0652016-07-19 17:07:22 -070021#include "sysdeps.h"
Josh Gaof3f6a1d2016-01-31 19:12:26 -080022#include "transport.h"
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080023
Elliott Hughes078f0fc2015-04-29 08:35:59 -070024#include <string>
25
Spencer Low142ec752015-05-06 16:13:42 -070026// Connect to adb, connect to the named service, and return a valid fd for
27// interacting with that service upon success or a negative number on failure.
Josh Gaoa166e712016-01-29 12:08:34 -080028int adb_connect(const std::string& service, std::string* _Nonnull error);
29int _adb_connect(const std::string& service, std::string* _Nonnull error);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080030
Elliott Hughes424af022015-05-29 17:55:19 -070031// Connect to adb, connect to the named service, returns true if the connection
32// succeeded AND the service returned OKAY. Outputs any returned error otherwise.
33bool adb_command(const std::string& service);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080034
Elliott Hughes6452a892015-04-29 12:28:13 -070035// Connects to the named adb service and fills 'result' with the response.
36// Returns true on success; returns false and fills 'error' on failure.
Josh Gaoa166e712016-01-29 12:08:34 -080037bool adb_query(const std::string& service, std::string* _Nonnull result,
38 std::string* _Nonnull error);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080039
Elliott Hughes3bd73c12015-05-05 13:10:43 -070040// Set the preferred transport to connect to.
Josh Gaoa166e712016-01-29 12:08:34 -080041void adb_set_transport(TransportType type, const char* _Nullable serial);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080042
Josh Gaod2621222016-03-04 15:16:18 -080043// Get the preferred transport to connect to.
44void adb_get_transport(TransportType* _Nullable type, const char* _Nullable* _Nullable serial);
45
Josh Gao9c869b52016-08-25 16:00:22 -070046// Set the socket specification for the adb server.
47// This function can only be called once, and the argument must live to the end of the process.
48void adb_set_socket_spec(const char* _Nonnull socket_spec);
Matt Gumbeld7b33082012-11-14 10:16:17 -080049
Spencer Low142ec752015-05-06 16:13:42 -070050// Send commands to the current emulator instance. Will fail if there is not
51// exactly one emulator connected (or if you use -s <serial> with a <serial>
52// that does not designate an emulator).
Josh Gaoa166e712016-01-29 12:08:34 -080053int adb_send_emulator_command(int argc, const char* _Nonnull* _Nonnull argv,
54 const char* _Nullable serial);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080055
Spencer Low142ec752015-05-06 16:13:42 -070056// Reads a standard adb status response (OKAY|FAIL) and returns true in the
57// event of OKAY, false in the event of FAIL or protocol error.
Josh Gaoa166e712016-01-29 12:08:34 -080058bool adb_status(int fd, std::string* _Nonnull error);
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080059
Josh Gaof3f6a1d2016-01-31 19:12:26 -080060// Create a host command corresponding to selected transport type/serial.
Josh Gaoa166e712016-01-29 12:08:34 -080061std::string format_host_command(const char* _Nonnull command, TransportType type,
62 const char* _Nullable serial);
Josh Gaof3f6a1d2016-01-31 19:12:26 -080063
64// Get the feature set of the current preferred transport.
Josh Gaoa166e712016-01-29 12:08:34 -080065bool adb_get_feature_set(FeatureSet* _Nonnull feature_set, std::string* _Nonnull error);
Josh Gaof3f6a1d2016-01-31 19:12:26 -080066
The Android Open Source Projectdd7bc332009-03-03 19:32:55 -080067#endif