Index: mojo/spy/spy.h |
diff --git a/mojo/spy/spy.h b/mojo/spy/spy.h |
index f2b6be9100c9ead0a292eca6e9166d4267d062dc..862630892b3203f229055a0cbf4658b8008c7232 100644 |
--- a/mojo/spy/spy.h |
+++ b/mojo/spy/spy.h |
@@ -8,8 +8,12 @@ |
#include <string> |
#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_ptr.h" |
+#include "mojo/public/cpp/system/message_pipe.h" |
+#include "mojo/spy/common.h" |
+#include "url/gurl.h" |
namespace base { |
+class Time; |
class Thread; |
} |
@@ -17,6 +21,7 @@ namespace mojo { |
class ApplicationManager; |
class SpyServerImpl; |
+struct SpyOptions; |
// mojo::Spy is a troubleshooting and debugging aid. It helps tracking |
// the mojo system core activities like messages, service creation, etc. |
@@ -29,14 +34,30 @@ class SpyServerImpl; |
// |
class Spy { |
public: |
+ // Interface for the shell-provided websocket server. |
+ class WebSocketDelegate { |
+ public: |
+ virtual void Start(int port, mojo::ScopedMessagePipeHandle server_pipe) = 0; |
+ virtual void OnMessage(mojo::MojoMessageData* data, |
+ const GURL& url, |
+ const base::Time& time) = 0; |
+ }; |
+ |
Spy(mojo::ApplicationManager* application_manager, |
const std::string& options); |
~Spy(); |
+ // non-owning reference to the websocket server. |
+ void SetWebSocketDelegate(WebSocketDelegate* websocket_delegate); |
+ |
private: |
scoped_refptr<SpyServerImpl> spy_server_; |
// This thread runs the code that talks to the frontend. |
scoped_ptr<base::Thread> control_thread_; |
+ // The delegate is in charge of talking to the html frontend. |
+ WebSocketDelegate* websocket_delegate_; |
+ ApplicationManager* application_manager_; |
+ SpyOptions* spy_options_; |
}; |
} // namespace mojo |