From 624734e640717a826ab1a18845c083a638dc5ce6 Mon Sep 17 00:00:00 2001 From: Eugene Ostroukhov Date: Tue, 7 Jun 2016 15:21:36 -0700 Subject: inspector: reduce implementation in header This is needed to reduce the coupling between node files that use node::Environment and inspector class. Fixes: https://github.com/nodejs/node/issues/7080 PR-URL: https://github.com/nodejs/node/pull/7228 Reviewed-By: bnoordhuis - Ben Noordhuis --- src/inspector_agent.h | 71 ++++++--------------------------------------------- 1 file changed, 8 insertions(+), 63 deletions(-) (limited to 'src/inspector_agent.h') diff --git a/src/inspector_agent.h b/src/inspector_agent.h index 65a4abeff7..863f1c30c3 100644 --- a/src/inspector_agent.h +++ b/src/inspector_agent.h @@ -5,27 +5,19 @@ #error("This header can only be used when inspector is enabled") #endif -#include "inspector_socket.h" -#include "uv.h" -#include "v8.h" -#include "util.h" - -#include -#include - -namespace blink { -class V8Inspector; -} - // Forward declaration to break recursive dependency chain with src/env.h. namespace node { class Environment; } // namespace node +namespace v8 { +class Platform; +} // namespace v8 + namespace node { namespace inspector { -class ChannelImpl; +class AgentImpl; class Agent { public: @@ -38,57 +30,10 @@ class Agent { void Stop(); bool IsStarted(); - bool connected() { return connected_; } + bool IsConnected(); void WaitForDisconnect(); - - protected: - static void ThreadCbIO(void* agent); - static void OnSocketConnectionIO(uv_stream_t* server, int status); - static bool OnInspectorHandshakeIO(inspector_socket_t* socket, - enum inspector_handshake_event state, - const char* path); - static void OnRemoteDataIO(uv_stream_t* stream, ssize_t read, - const uv_buf_t* b); - static void WriteCbIO(uv_async_t* async); - - void WorkerRunIO(); - void OnInspectorConnectionIO(inspector_socket_t* socket); - void PushPendingMessage(std::vector* queue, - const std::string& message); - void SwapBehindLock(std::vector Agent::*queue, - std::vector* output); - void PostMessages(); - void SetConnected(bool connected); - void Write(const std::string& message); - - uv_sem_t start_sem_; - uv_cond_t pause_cond_; - uv_mutex_t queue_lock_; - uv_mutex_t pause_lock_; - uv_thread_t thread_; - uv_loop_t child_loop_; - uv_tcp_t server_; - - int port_; - bool wait_; - bool connected_; - bool shutting_down_; - node::Environment* parent_env_; - - uv_async_t data_written_; - uv_async_t io_thread_req_; - inspector_socket_t* client_socket_; - blink::V8Inspector* inspector_; - v8::Platform* platform_; - std::vector message_queue_; - std::vector outgoing_message_queue_; - bool dispatching_messages_; - - friend class ChannelImpl; - friend class DispatchOnInspectorBackendTask; - friend class SetConnectedTask; - friend class V8NodeInspector; - friend void InterruptCallback(v8::Isolate*, void* agent); + private: + AgentImpl* impl; }; } // namespace inspector -- cgit v1.2.3