blob: 5de0638ef467cb3b3a9c31cd9bc3136803e9a16c [file] [log] [blame]
Spencer Low7dc759f2015-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 Project9ca14dc2009-03-03 19:32:55 -080017#ifndef _ADB_CLIENT_H_
18#define _ADB_CLIENT_H_
19
20#include "adb.h"
21
Elliott Hughes04a98c22015-04-29 08:35:59 -070022#include <string>
23
Spencer Low7dc759f2015-05-06 16:13:42 -070024// Connect to adb, connect to the named service, and return a valid fd for
25// interacting with that service upon success or a negative number on failure.
Elliott Hughesda945812015-04-29 12:28:13 -070026int adb_connect(const std::string& service, std::string* error);
27int _adb_connect(const std::string& service, std::string* error);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080028
Elliott Hughesd98ca8a2015-05-29 17:55:19 -070029// Connect to adb, connect to the named service, returns true if the connection
30// succeeded AND the service returned OKAY. Outputs any returned error otherwise.
31bool adb_command(const std::string& service);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080032
Elliott Hughesda945812015-04-29 12:28:13 -070033// Connects to the named adb service and fills 'result' with the response.
34// Returns true on success; returns false and fills 'error' on failure.
35bool adb_query(const std::string& service, std::string* result, std::string* error);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080036
Elliott Hughes3aec2ba2015-05-05 13:10:43 -070037// Set the preferred transport to connect to.
38void adb_set_transport(TransportType type, const char* serial);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080039
Spencer Low7dc759f2015-05-06 16:13:42 -070040// Set TCP specifics of the transport to use.
Stefan Hilzingerfb798d92010-04-19 12:21:12 +010041void adb_set_tcp_specifics(int server_port);
42
Spencer Low7dc759f2015-05-06 16:13:42 -070043// Set TCP Hostname of the transport to use.
Matt Gumbel411775c2012-11-14 10:16:17 -080044void adb_set_tcp_name(const char* hostname);
45
Spencer Low7dc759f2015-05-06 16:13:42 -070046// Send commands to the current emulator instance. Will fail if there is not
47// exactly one emulator connected (or if you use -s <serial> with a <serial>
48// that does not designate an emulator).
49int adb_send_emulator_command(int argc, const char** argv, const char* serial);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080050
Spencer Low7dc759f2015-05-06 16:13:42 -070051// Reads a standard adb status response (OKAY|FAIL) and returns true in the
52// event of OKAY, false in the event of FAIL or protocol error.
Elliott Hughes04a98c22015-04-29 08:35:59 -070053bool adb_status(int fd, std::string* error);
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080054
The Android Open Source Project9ca14dc2009-03-03 19:32:55 -080055#endif