Battery Status API: add UMA logging for Linux.
[chromium-blink-merge.git] / content / browser / devtools / devtools_manager_impl.h
blobc5ceb2ac61892eace1c2df2db2d980a458e07122
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.
5 #ifndef CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_IMPL_H_
6 #define CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_IMPL_H_
8 #include <map>
9 #include <string>
10 #include <vector>
12 #include "base/compiler_specific.h"
13 #include "base/memory/singleton.h"
15 namespace content {
17 class DevToolsManagerDelegate;
19 // This class is a singleton that manage global DevTools state for the whole
20 // browser.
21 class DevToolsManagerImpl {
22 public:
23 // Returns single instance of this class. The instance is destroyed on the
24 // browser main loop exit so this method MUST NOT be called after that point.
25 static DevToolsManagerImpl* GetInstance();
27 DevToolsManagerImpl();
28 virtual ~DevToolsManagerImpl();
30 DevToolsManagerDelegate* delegate() const { return delegate_.get(); }
31 void OnClientAttached();
32 void OnClientDetached();
34 private:
35 friend struct DefaultSingletonTraits<DevToolsManagerImpl>;
37 scoped_ptr<DevToolsManagerDelegate> delegate_;
38 int client_count_;
40 DISALLOW_COPY_AND_ASSIGN(DevToolsManagerImpl);
43 } // namespace content
45 #endif // CONTENT_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_IMPL_H_