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 12class DevToolsRemoteMessage; 13class ListenSocket; 14 15// This interface should be implemented by a class that wants to handle 16// DevToolsRemoteMessages dispatched by some entity. It must extend 17class DevToolsRemoteListener 18 : public base::RefCountedThreadSafe<DevToolsRemoteListener> { 19 public: 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; 25 virtual void OnAcceptConnection(ListenSocket* connection) {} 26 27 protected: 28 friend class base::RefCountedThreadSafe<DevToolsRemoteListener>; 29 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. 38class OutboundSocketDelegate { 39 public: 40 virtual ~OutboundSocketDelegate() {} 41 virtual void Send(const DevToolsRemoteMessage& message) = 0; 42}; 43 44#endif // CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_H_ 45