11cb0ef41Sopenharmony_ci#ifndef SRC_INSPECTOR_WORKER_AGENT_H_
21cb0ef41Sopenharmony_ci#define SRC_INSPECTOR_WORKER_AGENT_H_
31cb0ef41Sopenharmony_ci
41cb0ef41Sopenharmony_ci#include "node/inspector/protocol/NodeWorker.h"
51cb0ef41Sopenharmony_ci#include "v8.h"
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ci
81cb0ef41Sopenharmony_cinamespace node {
91cb0ef41Sopenharmony_cinamespace inspector {
101cb0ef41Sopenharmony_ciclass WorkerManagerEventHandle;
111cb0ef41Sopenharmony_ciclass WorkerManager;
121cb0ef41Sopenharmony_ci
131cb0ef41Sopenharmony_cinamespace protocol {
141cb0ef41Sopenharmony_ciclass NodeWorkers;
151cb0ef41Sopenharmony_ci
161cb0ef41Sopenharmony_ciclass WorkerAgent : public NodeWorker::Backend {
171cb0ef41Sopenharmony_ci public:
181cb0ef41Sopenharmony_ci  explicit WorkerAgent(std::weak_ptr<WorkerManager> manager);
191cb0ef41Sopenharmony_ci  ~WorkerAgent() override = default;
201cb0ef41Sopenharmony_ci
211cb0ef41Sopenharmony_ci  void Wire(UberDispatcher* dispatcher);
221cb0ef41Sopenharmony_ci
231cb0ef41Sopenharmony_ci  DispatchResponse sendMessageToWorker(const String& message,
241cb0ef41Sopenharmony_ci                                       const String& sessionId) override;
251cb0ef41Sopenharmony_ci
261cb0ef41Sopenharmony_ci  DispatchResponse enable(bool waitForDebuggerOnStart) override;
271cb0ef41Sopenharmony_ci  DispatchResponse disable() override;
281cb0ef41Sopenharmony_ci  DispatchResponse detach(const String& sessionId) override;
291cb0ef41Sopenharmony_ci
301cb0ef41Sopenharmony_ci private:
311cb0ef41Sopenharmony_ci  std::shared_ptr<NodeWorker::Frontend> frontend_;
321cb0ef41Sopenharmony_ci  std::weak_ptr<WorkerManager> manager_;
331cb0ef41Sopenharmony_ci  std::unique_ptr<WorkerManagerEventHandle> event_handle_;
341cb0ef41Sopenharmony_ci  std::shared_ptr<NodeWorkers> workers_;
351cb0ef41Sopenharmony_ci};
361cb0ef41Sopenharmony_ci}  // namespace protocol
371cb0ef41Sopenharmony_ci}  // namespace inspector
381cb0ef41Sopenharmony_ci}  // namespace node
391cb0ef41Sopenharmony_ci
401cb0ef41Sopenharmony_ci#endif  // SRC_INSPECTOR_WORKER_AGENT_H_
41