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

Side by Side Diff: mojo/public/java/system/src/org/chromium/mojo/system/Core.java

Issue 2741033003: Mojo EDK: Introduce MojoQueryHandleSignalsState API (Closed)
Patch Set: fix stupid bad DCHECK Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.mojo.system; 5 package org.chromium.mojo.system;
6 6
7 import java.util.List;
8
9 /** 7 /**
10 * Core mojo interface giving access to the base operations. See |src/mojo/publi c/c/system/core.h| 8 * Core mojo interface giving access to the base operations. See |src/mojo/publi c/c/system/core.h|
11 * for the underlying api. 9 * for the underlying api.
12 */ 10 */
13 public interface Core { 11 public interface Core {
14 12
15 /** 13 /**
16 * Used to indicate an infinite deadline (timeout). 14 * Used to indicate an infinite deadline (timeout).
17 */ 15 */
18 public static final long DEADLINE_INFINITE = -1; 16 public static final long DEADLINE_INFINITE = -1;
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 120
123 /** 121 /**
124 * Returns the satisfiableSignals. 122 * Returns the satisfiableSignals.
125 */ 123 */
126 public HandleSignals getSatisfiableSignals() { 124 public HandleSignals getSatisfiableSignals() {
127 return mSatisfiableSignals; 125 return mSatisfiableSignals;
128 } 126 }
129 } 127 }
130 128
131 /** 129 /**
132 * Result for the |wait| method.
133 */
134 public static class WaitResult {
135 /**
136 * The result of the wait method.
137 * <p>
138 * |MojoResult.OK| if some signal in |signals| was satisfied (or is alre ady satisfied).
139 * <p>
140 * |MojoResult.DEADLINE_EXCEEDED| if the deadline has passed without any of the signals
141 * being satisfied.
142 * <p>
143 * |MojoResult.CANCELLED| if |handle| is closed concurrently by another thread.
144 * <p>
145 * |MojoResult.FAILED_PRECONDITION| if it is or becomes impossible that any flag in
146 * |signals| will ever be satisfied (for example, if the other endpoint is closed).
147 */
148 private int mMojoResult;
149
150 /**
151 * The signaling state of handles.
152 */
153 private HandleSignalsState mHandleSignalsState;
154
155 /**
156 * Returns the mojoResult.
157 */
158 public int getMojoResult() {
159 return mMojoResult;
160 }
161
162 /**
163 * @param mojoResult the mojoResult to set
164 */
165 public void setMojoResult(int mojoResult) {
166 mMojoResult = mojoResult;
167 }
168
169 /**
170 * Returns the handleSignalsState.
171 */
172 public HandleSignalsState getHandleSignalsState() {
173 return mHandleSignalsState;
174 }
175
176 /**
177 * @param handleSignalsState the handleSignalsState to set
178 */
179 public void setHandleSignalsState(HandleSignalsState handleSignalsState) {
180 mHandleSignalsState = handleSignalsState;
181 }
182 }
183
184 /**
185 * Waits on the given |handle| until the state indicated by |signals| is sat isfied or until
186 * |deadline| has passed.
187 *
188 * @return a |WaitResult|.
189 */
190 public WaitResult wait(Handle handle, HandleSignals signals, long deadline);
191
192 /**
193 * Result for the |waitMany| method.
194 */
195 public static class WaitManyResult {
196
197 /**
198 * See |wait| for the different possible values.
199 */
200 private int mMojoResult;
201
202 /**
203 * If |mojoResult| is |MojoResult.OK|, |handleIndex| is the index of the handle for which
204 * some flag was satisfied (or is already satisfied). If |mojoResult| is
205 * |MojoResult.CANCELLED| or |MojoResult.FAILED_PRECONDITION|, |handleIn dex| is the index of
206 * the handle for which the issue occurred.
207 */
208 private int mHandleIndex;
209
210 /**
211 * The signaling state of handles. Will not be set if |mojoResult| is
212 * |MOJO_RESULT_INVALID_ARGUMENT| or |MOJO_RESULT_RESOURCE_EXHAUSTED|
213 */
214 private List<HandleSignalsState> mSignalStates;
215
216 /**
217 * Returns the mojoResult.
218 */
219 public int getMojoResult() {
220 return mMojoResult;
221 }
222
223 /**
224 * @param mojoResult the mojoResult to set
225 */
226 public void setMojoResult(int mojoResult) {
227 mMojoResult = mojoResult;
228 }
229
230 /**
231 * Returns the handleIndex.
232 */
233 public int getHandleIndex() {
234 return mHandleIndex;
235 }
236
237 /**
238 * @param handleIndex the handleIndex to set
239 */
240 public void setHandleIndex(int handleIndex) {
241 mHandleIndex = handleIndex;
242 }
243
244 /**
245 * Returns the signalStates.
246 */
247 public List<HandleSignalsState> getSignalStates() {
248 return mSignalStates;
249 }
250
251 /**
252 * @param signalStates the signalStates to set
253 */
254 public void setSignalStates(List<HandleSignalsState> signalStates) {
255 mSignalStates = signalStates;
256 }
257 }
258
259 /**
260 * Waits on handle in |handles| for at least one of them to satisfy the asso ciated
261 * |HandleSignals|, or until |deadline| has passed.
262 *
263 * @returns a |WaitManyResult|.
264 */
265 public WaitManyResult waitMany(List<Pair<Handle, HandleSignals>> handles, lo ng deadline);
266
267 /**
268 * Creates a message pipe, which is a bidirectional communication channel fo r framed data (i.e., 130 * Creates a message pipe, which is a bidirectional communication channel fo r framed data (i.e.,
269 * messages), with the given options. Messages can contain plain data and/or Mojo handles. 131 * messages), with the given options. Messages can contain plain data and/or Mojo handles.
270 * 132 *
271 * @return the set of handles for the two endpoints (ports) of the message p ipe. 133 * @return the set of handles for the two endpoints (ports) of the message p ipe.
272 */ 134 */
273 public Pair<MessagePipeHandle, MessagePipeHandle> createMessagePipe( 135 public Pair<MessagePipeHandle, MessagePipeHandle> createMessagePipe(
274 MessagePipeHandle.CreateOptions options); 136 MessagePipeHandle.CreateOptions options);
275 137
276 /** 138 /**
277 * Creates a data pipe, which is a unidirectional communication channel for unframed data, with 139 * Creates a data pipe, which is a unidirectional communication channel for unframed data, with
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 /** 174 /**
313 * Returns a new run loop. 175 * Returns a new run loop.
314 */ 176 */
315 public RunLoop createDefaultRunLoop(); 177 public RunLoop createDefaultRunLoop();
316 178
317 /** 179 /**
318 * Returns the current run loop if it exists. 180 * Returns the current run loop if it exists.
319 */ 181 */
320 public RunLoop getCurrentRunLoop(); 182 public RunLoop getCurrentRunLoop();
321 } 183 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698