• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_H_
6 #define CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_H_
7 #pragma once
8 
9 #include "base/basictypes.h"
10 #include "base/memory/ref_counted.h"
11 
12 class DevToolsRemoteMessage;
13 class ListenSocket;
14 
15 // This interface should be implemented by a class that wants to handle
16 // DevToolsRemoteMessages dispatched by some entity. It must extend
17 class DevToolsRemoteListener
18     : public base::RefCountedThreadSafe<DevToolsRemoteListener> {
19  public:
DevToolsRemoteListener()20   DevToolsRemoteListener() {}
21   virtual void HandleMessage(const DevToolsRemoteMessage& message) = 0;
22   // This method is invoked on the UI thread whenever the debugger connection
23   // has been lost.
24   virtual void OnConnectionLost() = 0;
OnAcceptConnection(ListenSocket * connection)25   virtual void OnAcceptConnection(ListenSocket* connection) {}
26 
27  protected:
28   friend class base::RefCountedThreadSafe<DevToolsRemoteListener>;
29 
~DevToolsRemoteListener()30   virtual ~DevToolsRemoteListener() {}
31 
32  private:
33   DISALLOW_COPY_AND_ASSIGN(DevToolsRemoteListener);
34 };
35 
36 // Interface exposed by DevToolsProtocolHandler to receive reply messages
37 // from registered tools.
38 class OutboundSocketDelegate {
39  public:
~OutboundSocketDelegate()40   virtual ~OutboundSocketDelegate() {}
41   virtual void Send(const DevToolsRemoteMessage& message) = 0;
42 };
43 
44 #endif  // CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_H_
45