Home | History | Annotate | Download | only in inspector
      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 blink {
     16 
     17 class InspectorClient;
     18 class InspectorWorkerAgent;
     19 
     20 class InspectorTracingAgent FINAL
     21     : public InspectorBaseAgent<InspectorTracingAgent>
     22     , public InspectorBackendDispatcher::TracingCommandHandler {
     23     WTF_MAKE_NONCOPYABLE(InspectorTracingAgent);
     24 public:
     25     static PassOwnPtrWillBeRawPtr<InspectorTracingAgent> create(InspectorClient* client, InspectorWorkerAgent* workerAgent)
     26     {
     27         return adoptPtrWillBeNoop(new InspectorTracingAgent(client, workerAgent));
     28     }
     29 
     30     // Base agent methods.
     31     virtual void restore() OVERRIDE;
     32     virtual void setFrontend(InspectorFrontend*) OVERRIDE;
     33 
     34     // Protocol method implementations.
     35     virtual void start(ErrorString*, const String& categoryFilter, const String&, const double*) OVERRIDE;
     36     virtual void end(ErrorString*);
     37 
     38     // Methods for other agents to use.
     39     void setLayerTreeId(int);
     40 
     41 private:
     42     InspectorTracingAgent(InspectorClient*, InspectorWorkerAgent*);
     43 
     44     void emitMetadataEvents();
     45     String sessionId();
     46 
     47     int m_layerTreeId;
     48     InspectorClient* m_client;
     49     InspectorFrontend::Tracing* m_frontend;
     50     InspectorWorkerAgent* m_workerAgent;
     51 };
     52 
     53 }
     54 
     55 #endif // InspectorTracingAgent_h
     56