blob: 4a12311bae32deda98bed955c4d88884964d0eb5 [file] [edit]
#ifndef SRC_INSPECTOR_IO_AGENT_H_
#define SRC_INSPECTOR_IO_AGENT_H_
#include <memory>
#include "inspector/network_resource_manager.h"
#include "node/inspector/protocol/IO.h"
namespace node::inspector::protocol {
class IoAgent : public IO::Backend {
public:
explicit IoAgent(
std::shared_ptr<NetworkResourceManager> network_resource_manager)
: network_resource_manager_(std::move(network_resource_manager)) {}
void Wire(UberDispatcher* dispatcher);
DispatchResponse read(const String& in_handle,
std::optional<int> in_offset,
std::optional<int> in_size,
String* out_data,
bool* out_eof) override;
DispatchResponse close(const String& in_handle) override;
private:
std::shared_ptr<IO::Frontend> frontend_;
std::unordered_map<std::string, int> offset_map_ =
{}; // Maps stream_id to offset
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
};
} // namespace node::inspector::protocol
#endif // SRC_INSPECTOR_IO_AGENT_H_