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

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

Issue 2750273002: Revert of Mojo EDK: Introduce MojoQueryHandleSignalsState API (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: mojo/public/java/system/src/org/chromium/mojo/system/Core.java
diff --git a/mojo/public/java/system/src/org/chromium/mojo/system/Core.java b/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
index 40e4be365d07249cf6d288fa4ecdb6d425992a4f..e5c6d08bcbf00bdb44262fdd36b2bb8a4b3a6ff4 100644
--- a/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
+++ b/mojo/public/java/system/src/org/chromium/mojo/system/Core.java
@@ -3,6 +3,8 @@
// found in the LICENSE file.
package org.chromium.mojo.system;
+
+import java.util.List;
/**
* Core mojo interface giving access to the base operations. See |src/mojo/public/c/system/core.h|
@@ -125,6 +127,142 @@
return mSatisfiableSignals;
}
}
+
+ /**
+ * Result for the |wait| method.
+ */
+ public static class WaitResult {
+ /**
+ * The result of the wait method.
+ * <p>
+ * |MojoResult.OK| if some signal in |signals| was satisfied (or is already satisfied).
+ * <p>
+ * |MojoResult.DEADLINE_EXCEEDED| if the deadline has passed without any of the signals
+ * being satisfied.
+ * <p>
+ * |MojoResult.CANCELLED| if |handle| is closed concurrently by another thread.
+ * <p>
+ * |MojoResult.FAILED_PRECONDITION| if it is or becomes impossible that any flag in
+ * |signals| will ever be satisfied (for example, if the other endpoint is closed).
+ */
+ private int mMojoResult;
+
+ /**
+ * The signaling state of handles.
+ */
+ private HandleSignalsState mHandleSignalsState;
+
+ /**
+ * Returns the mojoResult.
+ */
+ public int getMojoResult() {
+ return mMojoResult;
+ }
+
+ /**
+ * @param mojoResult the mojoResult to set
+ */
+ public void setMojoResult(int mojoResult) {
+ mMojoResult = mojoResult;
+ }
+
+ /**
+ * Returns the handleSignalsState.
+ */
+ public HandleSignalsState getHandleSignalsState() {
+ return mHandleSignalsState;
+ }
+
+ /**
+ * @param handleSignalsState the handleSignalsState to set
+ */
+ public void setHandleSignalsState(HandleSignalsState handleSignalsState) {
+ mHandleSignalsState = handleSignalsState;
+ }
+ }
+
+ /**
+ * Waits on the given |handle| until the state indicated by |signals| is satisfied or until
+ * |deadline| has passed.
+ *
+ * @return a |WaitResult|.
+ */
+ public WaitResult wait(Handle handle, HandleSignals signals, long deadline);
+
+ /**
+ * Result for the |waitMany| method.
+ */
+ public static class WaitManyResult {
+
+ /**
+ * See |wait| for the different possible values.
+ */
+ private int mMojoResult;
+
+ /**
+ * If |mojoResult| is |MojoResult.OK|, |handleIndex| is the index of the handle for which
+ * some flag was satisfied (or is already satisfied). If |mojoResult| is
+ * |MojoResult.CANCELLED| or |MojoResult.FAILED_PRECONDITION|, |handleIndex| is the index of
+ * the handle for which the issue occurred.
+ */
+ private int mHandleIndex;
+
+ /**
+ * The signaling state of handles. Will not be set if |mojoResult| is
+ * |MOJO_RESULT_INVALID_ARGUMENT| or |MOJO_RESULT_RESOURCE_EXHAUSTED|
+ */
+ private List<HandleSignalsState> mSignalStates;
+
+ /**
+ * Returns the mojoResult.
+ */
+ public int getMojoResult() {
+ return mMojoResult;
+ }
+
+ /**
+ * @param mojoResult the mojoResult to set
+ */
+ public void setMojoResult(int mojoResult) {
+ mMojoResult = mojoResult;
+ }
+
+ /**
+ * Returns the handleIndex.
+ */
+ public int getHandleIndex() {
+ return mHandleIndex;
+ }
+
+ /**
+ * @param handleIndex the handleIndex to set
+ */
+ public void setHandleIndex(int handleIndex) {
+ mHandleIndex = handleIndex;
+ }
+
+ /**
+ * Returns the signalStates.
+ */
+ public List<HandleSignalsState> getSignalStates() {
+ return mSignalStates;
+ }
+
+ /**
+ * @param signalStates the signalStates to set
+ */
+ public void setSignalStates(List<HandleSignalsState> signalStates) {
+ mSignalStates = signalStates;
+ }
+ }
+
+ /**
+ * Waits on handle in |handles| for at least one of them to satisfy the associated
+ * |HandleSignals|, or until |deadline| has passed.
+ *
+ * @returns a |WaitManyResult|.
+ */
+ public WaitManyResult waitMany(List<Pair<Handle, HandleSignals>> handles, long deadline);
/**
* Creates a message pipe, which is a bidirectional communication channel for framed data (i.e.,

Powered by Google App Engine
This is Rietveld 408576698