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

Unified Diff: examples/dart/netcat/lib/main.dart

Issue 1414483010: Dart: Use a RawReceivePort to receive events for Mojo handles. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 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 | « benchmarks/mojo_rtt_benchmark/lib/main.dart ('k') | mojo/dart/embedder/io/socket_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: examples/dart/netcat/lib/main.dart
diff --git a/examples/dart/netcat/lib/main.dart b/examples/dart/netcat/lib/main.dart
index 9e5cc20dd99dc6ba4d4abec8570cdc98a15f0d63..4cef6a6fd573971e7e2017b7c03f6aaeb16c7823 100644
--- a/examples/dart/netcat/lib/main.dart
+++ b/examples/dart/netcat/lib/main.dart
@@ -49,7 +49,7 @@ class Connector {
TcpConnectedSocketProxy _socket;
MojoDataPipeProducer _socketSender;
MojoDataPipeConsumer _socketReceiver;
- MojoEventStream _socketReceiverEventStream;
+ MojoEventSubscription _socketReceiverEventSubscription;
final ByteData _readBuffer;
final ByteData _writeBuffer;
@@ -81,8 +81,9 @@ class Connector {
_startReadingFromTerminal();
// Set up reading from the socket.
- _socketReceiverEventStream = new MojoEventStream(_socketReceiver.handle);
- _socketReceiverEventStream.listen(_onSocketReceiverEvent);
+ _socketReceiverEventSubscription =
+ new MojoEventSubscription(_socketReceiver.handle);
+ _socketReceiverEventSubscription.subscribe(_onSocketReceiverEvent);
} catch (e) {
_shutDown();
}
@@ -93,7 +94,9 @@ class Connector {
_terminal.ptr
.read(_writeBuffer.lengthInBytes, 0, files.Whence.FROM_CURRENT)
.then(_onReadFromTerminal)
- .catchError((e) { _shutDown(); });
+ .catchError((e) {
+ _shutDown();
+ });
}
void _onReadFromTerminal(files.FileReadResponseParams p) {
@@ -127,10 +130,13 @@ class Connector {
var numBytesRead = _socketReceiver.read(_readBuffer);
if (_socketReceiver.status.isOk) {
assert(numBytesRead > 0);
- _terminal.ptr.write(_readBuffer.buffer.asUint8List(0, numBytesRead), 0,
- files.Whence.FROM_CURRENT)
- .catchError((e) { _shutDown(); });
- _socketReceiverEventStream.enableReadEvents();
+ _terminal.ptr
+ .write(_readBuffer.buffer.asUint8List(0, numBytesRead), 0,
+ files.Whence.FROM_CURRENT)
+ .catchError((e) {
+ _shutDown();
+ });
+ _socketReceiverEventSubscription.enableReadEvents();
} else {
shouldShutDown = true;
}
@@ -145,18 +151,16 @@ class Connector {
}
void _shutDown() {
- if (_socketReceiverEventStream != null) {
- ignoreFuture(_socketReceiverEventStream.close());
- _socketReceiverEventStream = null;
+ if (_socketReceiverEventSubscription != null) {
+ ignoreFuture(_socketReceiverEventSubscription.close());
+ _socketReceiverEventSubscription = null;
}
if (_socketSender != null) {
- if (_socketSender.handle.isValid)
- _socketSender.handle.close();
+ if (_socketSender.handle.isValid) _socketSender.handle.close();
_socketSender = null;
}
if (_socketReceiver != null) {
- if (_socketReceiver.handle.isValid)
- _socketReceiver.handle.close();
+ if (_socketReceiver.handle.isValid) _socketReceiver.handle.close();
_socketReceiver = null;
}
if (_terminal != null) {
@@ -183,22 +187,28 @@ class TerminalClientImpl implements TerminalClient {
try {
remote_address = _getNetAddressFromUrl(url);
} catch (e) {
- fputs(terminal.ptr, 'HALP: Add a query: ?host=<host>&port=<port>\n'
- '(<host> must be "localhost" or n1.n2.n3.n4)\n\n'
- 'Got query parameters:\n' + url.queryParameters.toString());
+ fputs(
+ terminal.ptr,
+ 'HALP: Add a query: ?host=<host>&port=<port>\n'
+ '(<host> must be "localhost" or n1.n2.n3.n4)\n\n'
+ 'Got query parameters:\n' +
+ url.queryParameters.toString());
ignoreFuture(terminal.close());
return;
}
// TODO(vtl): Currently, we only do IPv4, so this should work.
- fputs(terminal.ptr,
- 'Connecting to: ' + remote_address.ipv4.addr.join('.') + ':' +
- remote_address.ipv4.port.toString() + '...');
+ fputs(
+ terminal.ptr,
+ 'Connecting to: ' +
+ remote_address.ipv4.addr.join('.') +
+ ':' +
+ remote_address.ipv4.port.toString() +
+ '...');
var connector = new Connector(_application, terminal);
// TODO(vtl): Do we have to do something on error?
- connector.connect(remote_address)
- .catchError((e) {});
+ connector.connect(remote_address).catchError((e) {});
}
// Note: May throw all sorts of things.
@@ -226,7 +236,7 @@ main(List args) {
MojoHandle appHandle = new MojoHandle(args[0]);
String url = args[1];
new NetcatApplication.fromHandle(appHandle)
- ..onError = (() {
+ ..onError = ((Object e) {
MojoHandle.reportLeakedHandles();
});
}
« no previous file with comments | « benchmarks/mojo_rtt_benchmark/lib/main.dart ('k') | mojo/dart/embedder/io/socket_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698