Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1144)

Unified Diff: content/browser/devtools/protocol/io_handler.cc

Issue 2500093002: [DevTools] Move IO and Tracing to new generator. (Closed)
Patch Set: roll Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/devtools/protocol/io_handler.h ('k') | content/browser/devtools/protocol/tracing_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/devtools/protocol/io_handler.cc
diff --git a/content/browser/devtools/protocol/io_handler.cc b/content/browser/devtools/protocol/io_handler.cc
index 64dfd954029d9adb98821bd40f880e89e66af4d5..1366f9fe96df63de5b7f7b150d90e5f6fff8348d 100644
--- a/content/browser/devtools/protocol/io_handler.cc
+++ b/content/browser/devtools/protocol/io_handler.cc
@@ -17,10 +17,7 @@
#include "content/public/browser/browser_thread.h"
namespace content {
-namespace devtools {
-namespace io {
-
-using Response = DevToolsProtocolClient::Response;
+namespace protocol {
IOHandler::IOHandler(DevToolsIOContext* io_context)
: io_context_(io_context)
@@ -28,35 +25,44 @@ IOHandler::IOHandler(DevToolsIOContext* io_context)
IOHandler::~IOHandler() {}
-void IOHandler::SetClient(std::unique_ptr<Client> client) {
- client_.swap(client);
+void IOHandler::Wire(UberDispatcher* dispatcher) {
+ frontend_.reset(new IO::Frontend(dispatcher->channel()));
+ IO::Dispatcher::wire(dispatcher, this);
+}
+
+Response IOHandler::Disable() {
+ return Response::OK();
}
-Response IOHandler::Read(DevToolsCommandId command_id,
- const std::string& handle, const int* offset, const int* max_size) {
+void IOHandler::Read(
+ const std::string& handle,
+ Maybe<int> offset,
+ Maybe<int> max_size,
+ std::unique_ptr<ReadCallback> callback) {
static const size_t kDefaultChunkSize = 10 * 1024 * 1024;
scoped_refptr<DevToolsIOContext::Stream> stream =
io_context_->GetByHandle(handle);
- if (!stream)
- return Response::InvalidParams("Invalid stream handle");
- stream->Read(offset ? *offset : -1,
- max_size && *max_size ? *max_size : kDefaultChunkSize,
+ if (!stream) {
+ callback->sendFailure(Response::InvalidParams("Invalid stream handle"));
+ return;
+ }
+ stream->Read(offset.fromMaybe(-1),
+ max_size.fromMaybe(kDefaultChunkSize),
base::Bind(&IOHandler::ReadComplete,
- weak_factory_.GetWeakPtr(), command_id));
- return Response::OK();
+ weak_factory_.GetWeakPtr(),
+ base::Passed(std::move(callback))));
}
-void IOHandler::ReadComplete(DevToolsCommandId command_id,
+void IOHandler::ReadComplete(std::unique_ptr<ReadCallback> callback,
const scoped_refptr<base::RefCountedString>& data,
int status) {
if (status == DevToolsIOContext::Stream::StatusFailure) {
- client_->SendError(command_id, Response::ServerError("Read failed"));
+ callback->sendFailure(Response::Error("Read failed"));
return;
}
bool eof = status == DevToolsIOContext::Stream::StatusEOF;
- client_->SendReadResponse(command_id,
- ReadResponse::Create()->set_data(data->data())->set_eof(eof));
+ callback->sendSuccess(data->data(), eof);
}
Response IOHandler::Close(const std::string& handle) {
@@ -64,6 +70,5 @@ Response IOHandler::Close(const std::string& handle) {
: Response::InvalidParams("Invalid stream handle");
}
-} // namespace io
-} // namespace devtools
+} // namespace protocol
} // namespace content
« no previous file with comments | « content/browser/devtools/protocol/io_handler.h ('k') | content/browser/devtools/protocol/tracing_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698