Index: Source/core/inspector/InspectorBaseAgent.h |
diff --git a/Source/core/inspector/InspectorBaseAgent.h b/Source/core/inspector/InspectorBaseAgent.h |
index e372bd9eba2be97a2290bdc845522bc87e54b8d1..87fed452f9f00094b939449b2e24d99e2dfadcb9 100644 |
--- a/Source/core/inspector/InspectorBaseAgent.h |
+++ b/Source/core/inspector/InspectorBaseAgent.h |
@@ -32,9 +32,11 @@ |
#define InspectorBaseAgent_h |
#include "InspectorBackendDispatcher.h" |
-#include <wtf/Forward.h> |
-#include <wtf/Vector.h> |
-#include <wtf/text/WTFString.h> |
+#include "wtf/Forward.h" |
+#include "wtf/PassOwnPtr.h" |
+#include "wtf/RefCounted.h" |
+#include "wtf/Vector.h" |
+#include "wtf/text/WTFString.h" |
namespace WebCore { |
@@ -43,18 +45,36 @@ class InspectorCompositeState; |
class InspectorState; |
class InstrumentingAgents; |
-class InspectorBaseAgentInterface { |
+class InspectorBaseAgent : public RefCounted<InspectorBaseAgent> { |
public: |
- InspectorBaseAgentInterface(const String&, InstrumentingAgents*, InspectorCompositeState*); |
- virtual ~InspectorBaseAgentInterface(); |
+ InspectorBaseAgent(InstrumentingAgents*, InspectorState*); |
+ virtual ~InspectorBaseAgent(); |
virtual void setFrontend(InspectorFrontend*) { } |
pfeldman
2013/06/18 15:36:06
Add a bunch of fixme-s for these and a link to a m
Vladislav Kaznacheev
2013/06/19 12:58:43
Done.
|
virtual void clearFrontend() { } |
virtual void restore() { } |
- virtual void registerInDispatcher(InspectorBackendDispatcher*) = 0; |
virtual void discardAgent() { } |
- String name() { return m_name; } |
+ virtual void reportMemoryUsage(MemoryObjectInfo*) const; |
+ |
+protected: |
+ InstrumentingAgents* m_instrumentingAgents; |
+ InspectorState* m_state; |
+}; |
+ |
+class InspectorBaseControllerInterface { |
+public: |
+ |
+ InspectorBaseControllerInterface(const String& name, InstrumentingAgents*, InspectorCompositeState*); |
pfeldman
2013/06/18 15:36:06
Nit: I'd push it even further.
Vladislav Kaznacheev
2013/06/19 12:58:43
We will eventually
On 2013/06/18 15:36:06, pfeldma
|
+ ~InspectorBaseControllerInterface(); |
pfeldman
2013/06/18 15:36:06
virtual ?
Vladislav Kaznacheev
2013/06/19 12:58:43
Done.
|
+ |
+ void setAgent(PassRefPtr<InspectorBaseAgent>); |
+ |
+ virtual void setFrontend(InspectorFrontend*); |
+ virtual void clearFrontend(); |
+ virtual void restore(); |
+ virtual void registerInDispatcher(InspectorBackendDispatcher*) = 0; |
+ virtual void discardAgent(); |
pfeldman
2013/06/18 15:36:06
discardController
Vladislav Kaznacheev
2013/06/19 12:58:43
Renamed to discardDependencies because that is wha
|
virtual void reportMemoryUsage(MemoryObjectInfo*) const; |
@@ -62,13 +82,15 @@ protected: |
InstrumentingAgents* m_instrumentingAgents; |
InspectorState* m_state; |
+ RefPtr<InspectorBaseAgent> m_agent; |
+ |
private: |
- String m_name; |
+ InspectorFrontend* m_frontend; |
}; |
class InspectorAgentRegistry { |
public: |
- void append(PassOwnPtr<InspectorBaseAgentInterface>); |
+ void append(PassOwnPtr<InspectorBaseControllerInterface>); |
void setFrontend(InspectorFrontend*); |
void clearFrontend(); |
@@ -79,22 +101,26 @@ public: |
virtual void reportMemoryUsage(MemoryObjectInfo*) const; |
private: |
- Vector<OwnPtr<InspectorBaseAgentInterface> > m_agents; |
+ Vector<OwnPtr<InspectorBaseControllerInterface> > m_controllers; |
}; |
-template<typename T> |
-class InspectorBaseAgent : public InspectorBaseAgentInterface { |
+template<typename T, typename AGENT> |
pfeldman
2013/06/18 15:36:06
Agent
Vladislav Kaznacheev
2013/06/19 12:58:43
Done.
|
+class InspectorBaseController : public InspectorBaseControllerInterface, public AGENT::Controller { |
public: |
- virtual ~InspectorBaseAgent() { } |
- |
+ // InspectorBaseControllerInterface implementation |
virtual void registerInDispatcher(InspectorBackendDispatcher* dispatcher) |
{ |
dispatcher->registerAgent(static_cast<T*>(this)); |
} |
+ AGENT* getAgent() { return static_cast<AGENT*>(m_agent.get()); } |
pfeldman
2013/06/18 15:36:06
agent()
Vladislav Kaznacheev
2013/06/19 12:58:43
Done.
|
+ |
+ // AGENT::Controller implementation |
+ virtual AGENT* getCommandHandler() { return getAgent(); } |
pfeldman
2013/06/18 15:36:06
commandHandler
Vladislav Kaznacheev
2013/06/19 12:58:43
Done.
|
+ |
protected: |
- InspectorBaseAgent(const String& name, InstrumentingAgents* instrumentingAgents, InspectorCompositeState* inspectorState) |
- : InspectorBaseAgentInterface(name, instrumentingAgents, inspectorState) |
+ InspectorBaseController(const String& name, InstrumentingAgents* instrumentingAgents, InspectorCompositeState* compositeState) |
+ : InspectorBaseControllerInterface(name, instrumentingAgents, compositeState) |
{ |
} |
}; |