devtools_remote_service.h revision 3345a6884c488ff3a535c2c9acdd33d74b37e311
1// Copyright (c) 2010 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_SERVICE_H_
6#define CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_SERVICE_H_
7#pragma once
8
9#include "base/basictypes.h"
10#include "chrome/browser/debugger/devtools_remote.h"
11
12class DevToolsRemoteMessage;
13class DevToolsProtocolHandler;
14class DictionaryValue;
15class Value;
16
17// Contains constants for DevToolsRemoteService tool protocol commands.
18struct DevToolsRemoteServiceCommand {
19  static const char kPing[];
20  static const char kVersion[];
21  static const char kListTabs[];
22};
23
24// Handles Chrome remote debugger protocol service commands.
25class DevToolsRemoteService : public DevToolsRemoteListener {
26 public:
27  explicit DevToolsRemoteService(DevToolsProtocolHandler* delegate);
28
29  // DevToolsRemoteListener interface
30  virtual void HandleMessage(const DevToolsRemoteMessage& message);
31  virtual void OnConnectionLost() {}
32
33  static const char kToolName[];
34
35 private:
36  // Operation result returned in the "result" field.
37  struct Result {
38    static const int kOk = 0;
39    static const int kUnknownCommand = 1;
40  };
41  virtual ~DevToolsRemoteService();
42  void ProcessJson(DictionaryValue* json, const DevToolsRemoteMessage& message);
43  DevToolsProtocolHandler* delegate_;
44  DISALLOW_COPY_AND_ASSIGN(DevToolsRemoteService);
45};
46
47#endif  // CHROME_BROWSER_DEBUGGER_DEVTOOLS_REMOTE_SERVICE_H_
48