// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_ #define CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_ #include "base/threading/non_thread_safe.h" #include "chrome/browser/devtools/device/android_device_manager.h" class AdbDeviceInfoQuery : public base::NonThreadSafe { public: static AndroidDeviceManager::BrowserInfo::Type GetBrowserType( const std::string& socket); static std::string GetDisplayName(const std::string& socket, const std::string& package); typedef AndroidDeviceManager::CommandCallback CommandCallback; typedef AndroidDeviceManager::DeviceInfoCallback DeviceInfoCallback; typedef base::Callback< void(const std::string&, const CommandCallback&)> RunCommandCallback; static void Start(const RunCommandCallback& command_callback, const DeviceInfoCallback& callback); private: AdbDeviceInfoQuery(const RunCommandCallback& command_callback, const DeviceInfoCallback& callback); virtual ~AdbDeviceInfoQuery(); void ReceivedModel(int result, const std::string& response); void ReceivedDumpsys(int result, const std::string& response); void ParseDumpsysResponse(const std::string& response); void ParseScreenSize(const std::string& str); void ReceivedProcesses(int result, const std::string& processes_response); void ReceivedSockets(const std::string& processes_response, int result, const std::string& sockets_response); void ParseBrowserInfo(const std::string& processes_response, const std::string& sockets_response); void Respond(); RunCommandCallback command_callback_; DeviceInfoCallback callback_; AndroidDeviceManager::DeviceInfo device_info_; DISALLOW_COPY_AND_ASSIGN(AdbDeviceInfoQuery); }; #endif // CHROME_BROWSER_DEVTOOLS_DEVICE_ADB_ADB_DEVICE_INFO_QUERY_H_