OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 part of dart.isolate; | |
6 | |
7 /** | |
8 * An unforgeable object that comes back as equal when passed through other | |
9 * isolates. | |
10 * | |
11 * Sending a capability object to another isolate, and getting it back, | |
12 * will produce an object that is equal to the original. | |
13 * There is no other way to create objects equal to a capability object. | |
14 * | |
15 * Capabilities can be used as access guards: A remote isolate can send | |
16 * a request for an operation, but it is only allowed if the request contains | |
17 * the correct capability object. | |
18 * | |
19 * This allows exposing the same interface to multiple clients, | |
20 * but restricting some operations to only those clients | |
21 * that have also been given the corresponding capability. | |
22 * | |
23 * Capabilities can be used inside a single isolate, | |
24 * but they have no advantage over | |
25 * just using `new Object` to create a unique object, | |
26 * and it offers no real security against other code | |
27 * running in the same isolate. | |
28 */ | |
29 class Capability { | |
30 /** | |
31 * Create a new unforgeable capability object. | |
32 */ | |
33 external factory Capability(); | |
34 } | |
OLD | NEW |