| Index: mojo/public/c/system/watcher.h
|
| diff --git a/mojo/public/c/system/watcher.h b/mojo/public/c/system/watcher.h
|
| deleted file mode 100644
|
| index f152c50a11cf91578d08a1bcd6649f8d0769410b..0000000000000000000000000000000000000000
|
| --- a/mojo/public/c/system/watcher.h
|
| +++ /dev/null
|
| @@ -1,183 +0,0 @@
|
| -// Copyright 2017 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef MOJO_PUBLIC_C_SYSTEM_WATCHER_H_
|
| -#define MOJO_PUBLIC_C_SYSTEM_WATCHER_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include "mojo/public/c/system/system_export.h"
|
| -#include "mojo/public/c/system/types.h"
|
| -
|
| -#ifdef __cplusplus
|
| -extern "C" {
|
| -#endif
|
| -
|
| -// A callback used to notify watchers about events on their watched handles.
|
| -//
|
| -// See documentation for |MojoWatcherNotificationFlags| for details regarding
|
| -// the possible values of |flags|.
|
| -//
|
| -// See documentation for |MojoWatch()| for details regarding the other arguments
|
| -// this callback receives when called.
|
| -typedef void (*MojoWatcherCallback)(uintptr_t context,
|
| - MojoResult result,
|
| - struct MojoHandleSignalsState signals_state,
|
| - MojoWatcherNotificationFlags flags);
|
| -
|
| -// Creates a new watcher.
|
| -//
|
| -// Watchers are used to trigger arbitrary code execution when one or more
|
| -// handles change state to meet certain conditions.
|
| -//
|
| -// A newly registered watcher is initially disarmed and may be armed using
|
| -// |MojoArmWatcher()|. A watcher is also always disarmed immediately before any
|
| -// invocation of one or more notification callbacks in response to a single
|
| -// handle's state changing in some relevant way.
|
| -//
|
| -// Parameters:
|
| -// |callback|: The |MojoWatcherCallback| to invoke any time the watcher is
|
| -// notified of an event. See |MojoWatch()| for details regarding arguments
|
| -// passed to the callback. Note that this may be called from any arbitrary
|
| -// thread.
|
| -// |watcher_handle|: The address at which to store the MojoHandle
|
| -// corresponding to the new watcher if successfully created.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| if the watcher has been successfully created.
|
| -// |MOJO_RESULT_RESOURCE_EXHAUSTED| if a handle could not be allocated for
|
| -// this watcher.
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoCreateWatcher(MojoWatcherCallback callback,
|
| - MojoHandle* watcher_handle);
|
| -
|
| -// Adds a watch to a watcher. This allows the watcher to fire notifications
|
| -// regarding state changes on the handle corresponding to the arguments given.
|
| -//
|
| -// Note that notifications for a given watch context are guaranteed to be
|
| -// mutually exclusive in execution: the callback will never be entered for a
|
| -// given context while another invocation of the callback is still executing for
|
| -// the same context. As a result it is generally a good idea to ensure that
|
| -// callbacks do as little work as necessary in order to process the
|
| -// notification.
|
| -//
|
| -// Parameters:
|
| -// |watcher_handle|: The watcher to which |handle| is to be added.
|
| -// |handle|: The handle to add to the watcher.
|
| -// |signals|: The signals to watch for on |handle|.
|
| -// |context|: An arbitrary context value given to any invocation of the
|
| -// watcher's callback when invoked as a result of some state change
|
| -// relevant to this combination of |handle| and |signals|. Must be
|
| -// unique within any given watcher.
|
| -//
|
| -// Callback parameters (see |MojoWatcherNotificationCallback| above):
|
| -// When the watcher invokes its callback as a result of some notification
|
| -// relevant to this watch operation, |context| receives the value given here
|
| -// and |signals_state| receives the last known signals state of this handle.
|
| -//
|
| -// |result| is one of the following:
|
| -// |MOJO_RESULT_OK| if at least one of the watched signals is satisfied. The
|
| -// watcher must be armed for this notification to fire.
|
| -// |MOJO_RESULT_FAILED_PRECONDITION| if all of the watched signals are
|
| -// permanently unsatisfiable. The watcher must be armed for this
|
| -// notification to fire.
|
| -// |MOJO_RESULT_CANCELLED| if the watch has been cancelled. The may occur if
|
| -// the watcher has been closed, the watched handle has been closed, or
|
| -// the watch for |context| has been explicitly cancelled. This is always
|
| -// the last result received for any given context, and it is guaranteed
|
| -// to be received exactly once per watch, regardless of how the watch
|
| -// was cancelled.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| if the handle is now being watched by the watcher.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if |watcher_handle| is not a watcher handle,
|
| -// |handle| is not a valid message pipe or data pipe handle.
|
| -// |MOJO_RESULT_ALREADY_EXISTS| if the watcher already has a watch registered
|
| -// for the given value of |context| or for the given |handle|.
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoWatch(MojoHandle watcher_handle,
|
| - MojoHandle handle,
|
| - MojoHandleSignals signals,
|
| - uintptr_t context);
|
| -
|
| -// Removes a watch from a watcher.
|
| -//
|
| -// This ensures that the watch is cancelled as soon as possible. Cancellation
|
| -// may be deferred (or may even block) an aritrarily long time if the watch is
|
| -// already dispatching one or more notifications.
|
| -//
|
| -// When cancellation is complete, the watcher's callback is invoked one final
|
| -// time for |context|, with the result |MOJO_RESULT_CANCELLED|.
|
| -//
|
| -// The same behavior can be elicted by either closing the watched handle
|
| -// associated with this context, or by closing |watcher_handle| itself. In the
|
| -// lastter case, all registered contexts on the watcher are implicitly cancelled
|
| -// in a similar fashion.
|
| -//
|
| -// Parameters:
|
| -// |watcher_handle|: The handle of the watcher from which to remove a watch.
|
| -// |context|: The context of the watch to be removed.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| if the watch has been cancelled.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if |watcher_handle| is not a watcher handle.
|
| -// |MOJO_RESULT_NOT_FOUND| if there is no watch registered on this watcher for
|
| -// the given value of |context|.
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoCancelWatch(MojoHandle watcher_handle,
|
| - uintptr_t context);
|
| -
|
| -// Arms a watcher, enabling a single future event on one of the watched handles
|
| -// to trigger a single notification for each relevant watch context associated
|
| -// with that handle.
|
| -//
|
| -// Parameters:
|
| -// |watcher_handle|: The handle of the watcher.
|
| -// |num_ready_contexts|: An address pointing to the number of elements
|
| -// available for storage in the remaining output buffers. Optional and
|
| -// only used on failure. See |MOJO_RESULT_FAILED_PRECONDITION| below for
|
| -// more details.
|
| -// |ready_contexts|: An output buffer for contexts corresponding to the
|
| -// watches which would have notified if the watcher were armed. Optional
|
| -// and only uesd on failure. See |MOJO_RESULT_FAILED_PRECONDITION| below
|
| -// for more details.
|
| -// |ready_results|: An output buffer for MojoResult values corresponding to
|
| -// each context in |ready_contexts|. Optional and only used on failure.
|
| -// See |MOJO_RESULT_FAILED_PRECONDITION| below for more details.
|
| -// |ready_signals_states|: An output buffer for |MojoHandleSignalsState|
|
| -// structures corresponding to each context in |ready_contexts|. Optional
|
| -// and only used on failure. See |MOJO_RESULT_FAILED_PRECONDITION| below
|
| -// for more details.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| if the watcher has been successfully armed. All arguments
|
| -// other than |watcher_handle| are ignored in this case.
|
| -// |MOJO_RESULT_NOT_FOUND| if the watcher does not have any registered watch
|
| -// contexts. All arguments other than |watcher_handle| are ignored in this
|
| -// case.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if |watcher_handle| is not a valid watcher
|
| -// handle, or if |num_ready_contexts| is non-null but any of the output
|
| -// buffer paramters is null.
|
| -// |MOJO_RESULT_FAILED_PRECONDITION| if one or more watches would have
|
| -// notified immediately upon arming the watcher. If |num_handles| is
|
| -// non-null, this assumes there is enough space for |*num_handles| entries
|
| -// in each of the subsequent output buffer arguments.
|
| -//
|
| -// At most that many entries are placed in the output buffers,
|
| -// corresponding to the watches which would have signalled if the watcher
|
| -// had been armed successfully. The actual number of entries placed in the
|
| -// output buffers is written to |*num_ready_contexts| before returning.
|
| -//
|
| -// If more than (input) |*num_ready_contexts| watch contexts were ready to
|
| -// notify, the subset presented in output buffers is arbitrary and
|
| -// implementation-defined.
|
| -MOJO_SYSTEM_EXPORT MojoResult
|
| -MojoArmWatcher(MojoHandle watcher_handle,
|
| - uint32_t* num_ready_contexts,
|
| - uintptr_t* ready_contexts,
|
| - MojoResult* ready_results,
|
| - struct MojoHandleSignalsState* ready_signals_states);
|
| -
|
| -#ifdef __cplusplus
|
| -} // extern "C"
|
| -#endif
|
| -
|
| -#endif // MOJO_PUBLIC_C_SYSTEM_WATCHER_H_
|
|
|