Upstream version 8.37.180.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / inspector / InspectorTracingAgent.h
1 /*
2  * Copyright 2014 The Chromium Authors. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the LICENSE file.
5  */
6
7 #ifndef InspectorTracingAgent_h
8 #define InspectorTracingAgent_h
9
10 #include "core/InspectorFrontend.h"
11 #include "core/inspector/InspectorBaseAgent.h"
12 #include "wtf/PassOwnPtr.h"
13 #include "wtf/text/WTFString.h"
14
15 namespace WebCore {
16
17 class InspectorClient;
18
19 class InspectorTracingAgent FINAL
20     : public InspectorBaseAgent<InspectorTracingAgent>
21     , public InspectorBackendDispatcher::TracingCommandHandler {
22     WTF_MAKE_NONCOPYABLE(InspectorTracingAgent);
23 public:
24     static PassOwnPtr<InspectorTracingAgent> create(InspectorClient* client)
25     {
26         return adoptPtr(new InspectorTracingAgent(client));
27     }
28
29     // Base agent methods.
30     virtual void restore() OVERRIDE;
31
32     // Protocol method implementations.
33     virtual void start(ErrorString*, const String& categoryFilter, const String&, const double*, String* sessionId) OVERRIDE;
34
35     // Methods for other agents to use.
36     void setLayerTreeId(int);
37
38 private:
39     explicit InspectorTracingAgent(InspectorClient*);
40
41     void emitMetadataEvents();
42     String sessionId();
43
44     int m_layerTreeId;
45     InspectorClient* m_client;
46 };
47
48 }
49
50 #endif // InspectorTracingAgent_h