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

Unified Diff: lib/isolate/isolate_api.dart

Issue 10828410: Unify dart:isolate. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix mapping to dart:isolate. Created 8 years, 4 months 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 | « lib/isolate/isolate.dart ('k') | lib/isolate/isolate_compiler.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/isolate/isolate_api.dart
diff --git a/lib/isolate/isolate_api.dart b/lib/isolate/isolate_api.dart
deleted file mode 100644
index 010007e2b5bd63f8ae59a3420ec226f2593fa35c..0000000000000000000000000000000000000000
--- a/lib/isolate/isolate_api.dart
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-class IsolateSpawnException implements Exception {
- const IsolateSpawnException(String this._s);
- String toString() => "IsolateSpawnException: '$_s'";
- final String _s;
-}
-
-/**
- * The initial [ReceivePort] available by default for this isolate. This
- * [ReceivePort] is created automatically and it is commonly used to establish
- * the first communication between isolates (see [spawnFunction] and
- * [spawnUri]).
- */
-ReceivePort get port() => _port;
-
-/**
- * Creates and spawns an isolate that shares the same code as the current
- * isolate, but that starts from [topLevelFunction]. The [topLevelFunction]
- * argument must be a static top-level function or a static method that takes no
- * arguments. It is illegal to pass a function closure.
- *
- * When any isolate starts (even the main script of the application), a default
- * [ReceivePort] is created for it. This port is available from the top-level
- * getter [port] defined in this library.
- *
- * [spawnFunction] returns a [SendPort] derived from the child isolate's default
- * port.
- *
- * See comments at the top of this library for more details.
- */
-// Note this feature is not yet available in the dartvm.
-SendPort spawnFunction(void topLevelFunction()) {
- return _spawnFunction(topLevelFunction);
-}
-
-/**
- * Creates and spawns an isolate whose code is available at [uri]. Like with
- * [spawnFunction], the child isolate will have a default [ReceivePort], and a
- * this function returns a [SendPort] derived from it.
- *
- * See comments at the top of this library for more details.
- */
-SendPort spawnUri(String uri) {
- return _spawnUri(uri);
-}
-
-/**
- * [SendPort]s are created from [ReceivePort]s. Any message sent through
- * a [SendPort] is delivered to its respective [ReceivePort]. There might be
- * many [SendPort]s for the same [ReceivePort].
- *
- * [SendPort]s can be transmitted to other isolates.
- */
-interface SendPort extends Hashable {
-
- /**
- * Sends an asynchronous [message] to this send port. The message is copied to
- * the receiving isolate. If specified, the [replyTo] port will be provided to
- * the receiver to facilitate exchanging sequences of messages.
- *
- * The content of [message] can be: primitive values (null, num, bool, double,
- * String), instances of [SendPort], and lists and maps whose elements are any
- * of these. List and maps are also allowed to be cyclic.
- *
- * In the special circumstances when two isolates share the same code and are
- * running in the same process (e.g. isolates created via [spawnFunction]), it
- * is also possible to send object instances (which would be copied in the
- * process). This is currently only supported by the dartvm. For now, the
- * frog compiler only supports the restricted messages described above.
- *
- * Deprecation note: it is no longer valid to transmit a [ReceivePort] in a
- * message. Previously they were translated to the corresponding send port
- * before being transmitted.
- */
- void send(var message, [SendPort replyTo]);
-
- /**
- * Sends a message to this send port and returns a [Future] of the reply.
- * Basically, this internally creates a new receive port, sends a
- * message to this send port with replyTo set to such receive port, and, when
- * a reply is received, it closes the receive port and completes the returned
- * future.
- */
- Future call(var message);
-
- /**
- * Tests whether [other] is a [SendPort] pointing to the same
- * [ReceivePort] as this one.
- */
- bool operator==(var other);
-
- /**
- * Returns an immutable hash code for this send port that is
- * consistent with the == operator.
- */
- int hashCode();
-
-}
-
-/**
- * [ReceivePort]s, together with [SendPort]s, are the only means of
- * communication between isolates. [ReceivePort]s have a [:toSendPort:] method
- * which returns a [SendPort]. Any message that is sent through this [SendPort]
- * is delivered to the [ReceivePort] it has been created from. There, they are
- * dispatched to the callback that has been registered on the receive port.
- *
- * A [ReceivePort] may have many [SendPort]s.
- */
-interface ReceivePort default _ReceivePortFactory {
-
- /**
- * Opens a long-lived port for receiving messages. The returned port
- * must be explicitly closed through [ReceivePort.close].
- */
- ReceivePort();
-
- /**
- * Sets up a callback function for receiving pending or future
- * messages on this receive port.
- */
- void receive(void callback(var message, SendPort replyTo));
-
- /**
- * Closes this receive port immediately. Pending messages will not
- * be processed and it is impossible to re-open the port. Single-shot
- * reply ports, such as those created through [SendPort.call], are
- * automatically closed when the reply has been received. Multiple
- * invocations of [close] are allowed but ignored.
- */
- void close();
-
- /**
- * Creates a new send port that sends to this receive port. It is legal to
- * create several [SendPort]s from the same [ReceivePort].
- */
- SendPort toSendPort();
-
-}
-
-// TODO(kasperl): Make this hashable and document it.
-interface SendPortSync {
-
- callSync(var message);
-
-}
« no previous file with comments | « lib/isolate/isolate.dart ('k') | lib/isolate/isolate_compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698