• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 TOOLS_ANDROID_FORWARDER2_COMMAND_H_
6 #define TOOLS_ANDROID_FORWARDER2_COMMAND_H_
7 
8 #include "base/basictypes.h"
9 
10 namespace forwarder2 {
11 
12 class Socket;
13 
14 namespace command {
15 
16 enum Type {
17   ACCEPT_ERROR = 0,
18   ACCEPT_SUCCESS,
19   ACK,
20   ADB_DATA_SOCKET_ERROR,
21   ADB_DATA_SOCKET_SUCCESS,
22   BIND_ERROR,
23   BIND_SUCCESS,
24   DATA_CONNECTION,
25   HOST_SERVER_ERROR,
26   HOST_SERVER_SUCCESS,
27   KILL_ALL_LISTENERS,
28   LISTEN,
29   UNLISTEN,
30   UNLISTEN_ERROR,
31   UNLISTEN_SUCCESS,
32 };
33 
34 }  // namespace command
35 
36 bool ReadCommand(Socket* socket,
37                  int* port_out,
38                  command::Type* command_type_out);
39 
40 // Helper function to read the command from the |socket| and return true if the
41 // |command| is equal to the given command parameter.
42 bool ReceivedCommand(command::Type command, Socket* socket);
43 
44 bool SendCommand(command::Type command, int port, Socket* socket);
45 
46 }  // namespace forwarder
47 
48 #endif  // TOOLS_ANDROID_FORWARDER2_COMMAND_H_
49