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: create(InspectorClient * client)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 51