1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_TEST_CHROMEDRIVER_CHROME_ADB_IMPL_H_ 6#define CHROME_TEST_CHROMEDRIVER_CHROME_ADB_IMPL_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/compiler_specific.h" 12#include "base/memory/ref_counted.h" 13#include "chrome/test/chromedriver/chrome/adb.h" 14 15namespace base { 16class SingleThreadTaskRunner; 17} 18 19class Status; 20 21class AdbImpl : public Adb { 22 public: 23 explicit AdbImpl( 24 const scoped_refptr<base::SingleThreadTaskRunner>& io_message_loop_proxy, 25 int port); 26 virtual ~AdbImpl(); 27 28 // Overridden from Adb: 29 virtual Status GetDevices(std::vector<std::string>* devices) OVERRIDE; 30 virtual Status ForwardPort(const std::string& device_serial, 31 int local_port, 32 const std::string& remote_abstract) OVERRIDE; 33 virtual Status SetCommandLineFile(const std::string& device_serial, 34 const std::string& command_line_file, 35 const std::string& exec_name, 36 const std::string& args) OVERRIDE; 37 virtual Status CheckAppInstalled(const std::string& device_serial, 38 const std::string& package) OVERRIDE; 39 virtual Status ClearAppData(const std::string& device_serial, 40 const std::string& package) OVERRIDE; 41 virtual Status SetDebugApp(const std::string& device_serial, 42 const std::string& package) OVERRIDE; 43 virtual Status Launch(const std::string& device_serial, 44 const std::string& package, 45 const std::string& activity) OVERRIDE; 46 virtual Status ForceStop(const std::string& device_serial, 47 const std::string& package) OVERRIDE; 48 virtual Status GetPidByName(const std::string& device_serial, 49 const std::string& process_name, 50 int* pid) OVERRIDE; 51 52 private: 53 Status ExecuteCommand(const std::string& command, 54 std::string* response); 55 Status ExecuteHostCommand(const std::string& device_serial, 56 const std::string& host_command, 57 std::string* response); 58 Status ExecuteHostShellCommand(const std::string& device_serial, 59 const std::string& shell_command, 60 std::string* response); 61 62 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 63 64 int port_; 65}; 66 67#endif // CHROME_TEST_CHROMEDRIVER_CHROME_ADB_IMPL_H_ 68