#ifndef SRC_INSPECTOR_WORKER_AGENT_H_ #define SRC_INSPECTOR_WORKER_AGENT_H_ #include "node/inspector/protocol/NodeWorker.h" #include "v8.h" namespace node { namespace inspector { class WorkerManagerEventHandle; class WorkerManager; namespace protocol { class NodeWorkers; class WorkerAgent : public NodeWorker::Backend { public: explicit WorkerAgent(std::weak_ptr manager); ~WorkerAgent() override = default; void Wire(UberDispatcher* dispatcher); DispatchResponse sendMessageToWorker(const String& message, const String& sessionId) override; DispatchResponse enable(bool waitForDebuggerOnStart) override; DispatchResponse disable() override; DispatchResponse detach(const String& sessionId) override; private: std::shared_ptr frontend_; std::weak_ptr manager_; std::unique_ptr event_handle_; std::shared_ptr workers_; }; } // namespace protocol } // namespace inspector } // namespace node #endif // SRC_INSPECTOR_WORKER_AGENT_H_