-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
capability.dart
34 lines (32 loc) · 1.23 KB
/
capability.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright (c) 2014, 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.
part of dart.isolate;
/**
* An unforgeable object that comes back as equal when passed through other
* isolates.
*
* Sending a capability object to another isolate, and getting it back,
* will produce an object that is equal to the original.
* There is no other way to create objects equal to a capability object.
*
* Capabilities can be used as access guards: A remote isolate can send
* a request for an operation, but it is only allowed if the request contains
* the correct capability object.
*
* This allows exposing the same interface to multiple clients,
* but restricting some operations to only those clients
* that have also been given the corresponding capability.
*
* Capabilities can be used inside a single isolate,
* but they have no advantage over
* just using `new Object` to create a unique object,
* and it offers no real security against other code
* running in the same isolate.
*/
class Capability {
/**
* Create a new unforgeable capability object.
*/
external factory Capability();
}