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 CONTENT_BROWSER_DEVTOOLS_TETHERING_HANDLER_H_ 6#define CONTENT_BROWSER_DEVTOOLS_TETHERING_HANDLER_H_ 7 8#include <map> 9 10#include "content/browser/devtools/devtools_protocol.h" 11 12namespace content { 13 14class DevToolsHttpHandlerDelegate; 15 16// This class implements reversed tethering handler. 17class TetheringHandler : public DevToolsProtocol::Handler { 18 public: 19 static const char kDomain[]; 20 21 TetheringHandler(DevToolsHttpHandlerDelegate* delegate); 22 virtual ~TetheringHandler(); 23 24 void Accepted(int port, const std::string& name); 25 26 private: 27 class BoundSocket; 28 scoped_refptr<DevToolsProtocol::Response> OnBind( 29 scoped_refptr<DevToolsProtocol::Command> command); 30 scoped_refptr<DevToolsProtocol::Response> OnUnbind( 31 scoped_refptr<DevToolsProtocol::Command> command); 32 33 typedef std::map<int, BoundSocket*> BoundSockets; 34 BoundSockets bound_sockets_; 35 DevToolsHttpHandlerDelegate* delegate_; 36 DISALLOW_COPY_AND_ASSIGN(TetheringHandler); 37}; 38 39} // namespace content 40 41#endif // CONTENT_BROWSER_DEVTOOLS_TETHERING_HANDLER_H_ 42