15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef TOOLS_ANDROID_FORWARDER2_COMMAND_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TOOLS_ANDROID_FORWARDER2_COMMAND_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace forwarder2 { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Socket; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace command { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)enum Type { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACCEPT_ERROR = 0, 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACCEPT_SUCCESS, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACK, 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ADB_DATA_SOCKET_ERROR, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ADB_DATA_SOCKET_SUCCESS, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BIND_ERROR, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BIND_SUCCESS, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DATA_CONNECTION, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HOST_SERVER_ERROR, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HOST_SERVER_SUCCESS, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) KILL_ALL_LISTENERS, 28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch LISTEN, 29d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch UNLISTEN, 30d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch UNLISTEN_ERROR, 31d3868032626d59662ff73b372b5d584c1d144c53Ben Murdoch UNLISTEN_SUCCESS, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace command 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ReadCommand(Socket* socket, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int* port_out, 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command::Type* command_type_out); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Helper function to read the command from the |socket| and return true if the 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |command| is equal to the given command parameter. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ReceivedCommand(command::Type command, Socket* socket); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SendCommand(command::Type command, int port, Socket* socket); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace forwarder 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // TOOLS_ANDROID_FORWARDER2_COMMAND_H_ 49