1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
10 static const int kOk = 0;
11 static const int kCancelled = -1;
12 static const int kUnknown = -2;
13 static const int kInvalidArgument = -3;
14 static const int kDeadlineExceeded = -4;
15 static const int kNotFound = -5;
16 static const int kAlreadyExists = -6;
17 static const int kPermissionDenied = -7;
18 static const int kResourceExhausted = -8;
19 static const int kFailedPrecondition = -9;
20 static const int kAborted = -10;
21 static const int kOutOfRange = -11;
22 static const int kUnimplemented = -12;
23 static const int kInternal = -13;
24 static const int kUnavailable = -14;
25 static const int kDataLoss = -15;
26 static const int kBusy = -16;
27 static const int kShouldWait = -17;
29 static const OK = const MojoResult._(kOk);
30 static const CANCELLED = const MojoResult._(kCancelled);
31 static const UNKNOWN = const MojoResult._(kUnknown);
32 static const INVALID_ARGUMENT = const MojoResult._(kInvalidArgument);
33 static const DEADLINE_EXCEEDED = const MojoResult._(kDeadlineExceeded);
34 static const NOT_FOUND = const MojoResult._(kNotFound);
35 static const ALREADY_EXISTS = const MojoResult._(kAlreadyExists);
36 static const PERMISSION_DENIED = const MojoResult._(kPermissionDenied);
37 static const RESOURCE_EXHAUSTED = const MojoResult._(kResourceExhausted);
38 static const FAILED_PRECONDITION = const MojoResult._(kFailedPrecondition);
39 static const ABORTED = const MojoResult._(kAborted);
40 static const OUT_OF_RANGE = const MojoResult._(kOutOfRange);
41 static const UNIMPLEMENTED = const MojoResult._(kUnimplemented);
42 static const INTERNAL = const MojoResult._(kInternal);
43 static const UNAVAILABLE = const MojoResult._(kUnavailable);
44 static const DATA_LOSS = const MojoResult._(kDataLoss);
45 static const BUSY = const MojoResult._(kBusy);
46 static const SHOULD_WAIT = const MojoResult._(kShouldWait);
50 const MojoResult._(this.value);
52 factory MojoResult(int value) {
55 case kCancelled: return CANCELLED;
56 case kUnknown: return UNKNOWN;
57 case kInvalidArgument: return INVALID_ARGUMENT;
58 case kDeadlineExceeded: return DEADLINE_EXCEEDED;
59 case kNotFound: return NOT_FOUND;
60 case kAlreadyExists: return ALREADY_EXISTS;
61 case kPermissionDenied: return PERMISSION_DENIED;
62 case kResourceExhausted: return RESOURCE_EXHAUSTED;
63 case kFailedPrecondition: return FAILED_PRECONDITION;
64 case kAborted: return ABORTED;
65 case kOutOfRange: return OUT_OF_RANGE;
66 case kUnimplemented: return UNIMPLEMENTED;
67 case kInternal: return INTERNAL;
68 case kUnavailable: return UNAVAILABLE;
69 case kDataLoss: return DATA_LOSS;
70 case kBusy: return BUSY;
71 case kShouldWait: return SHOULD_WAIT;
76 bool get isOk => (this == OK);
77 bool get isCancelled => (this == CANCELLED);
78 bool get isUnknown => (this == UNKNOWN);
79 bool get isInvalidArgument => (this == INVALID_ARGUMENT);
80 bool get isDeadlineExceeded => (this == DEADLINE_EXCEEDED);
81 bool get isNotFound => (this == NOT_FOUND);
82 bool get isAlreadExists => (this == ALREADY_EXISTS);
83 bool get isPermissionDenied => (this == PERMISSION_DENIED);
84 bool get isResourceExhausted => (this == RESOURCE_EXHAUSTED);
85 bool get isFailedPrecondition => (this == FAILED_PRECONDITION);
86 bool get isAborted => (this == ABORTED);
87 bool get isOutOfRange => (this == OUT_OF_RANGE);
88 bool get isUnimplemented => (this == UNIMPLEMENTED);
89 bool get isInternal => (this == INTERNAL);
90 bool get isUnavailable => (this == UNAVAILABLE);
91 bool get isDataLoss => (this == DATA_LOSS);
92 bool get isBusy => (this == BUSY);
93 bool get isShouldWait => (this == SHOULD_WAIT);
97 class MojoHandleSignals {
98 static const int NONE = 0;
99 static const int READABLE = 1 << 0;
100 static const int WRITABLE = 1 << 1;
101 static const int READWRITE = READABLE | WRITABLE;
103 static bool isReadable(int mask) => (mask & READABLE) == READABLE;
104 static bool isWritable(int mask) => (mask & WRITABLE) == WRITABLE;
105 static bool isReadWrite(int mask) => (mask & READWRITE) == READWRITE;
106 static int toggleWrite(int mask) =>
107 isWritable(mask) ? (mask & ~WRITABLE) : (mask | WRITABLE);
111 class MojoHandleSignalsState {
112 const MojoHandleSignalsState(this.satisfied_signals,
113 this.satisfiable_signals);
114 final int satisfied_signals;
115 final int satisfiable_signals;