mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 06:35:42 +00:00
65 lines
2.2 KiB
Plaintext
65 lines
2.2 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
interface nsIRunnable;
|
|
|
|
[scriptable, uuid(4e8febe4-6631-49dc-8ac9-308c1cb9b09c)]
|
|
interface nsIEventTarget : nsISupports
|
|
{
|
|
/**
|
|
* Dispatch an event to this event target. This function may be called from
|
|
* any thread, and it may be called re-entrantly.
|
|
*
|
|
* @param event
|
|
* The event to dispatch.
|
|
* @param flags
|
|
* The flags modifying event dispatch. The flags are described in detail
|
|
* below.
|
|
*
|
|
* @throws NS_ERROR_INVALID_ARG
|
|
* Indicates that event is null.
|
|
* @throws NS_ERROR_UNEXPECTED
|
|
* Indicates that the thread is shutting down and has finished processing
|
|
* events, so this event would never run and has not been dispatched.
|
|
*/
|
|
void dispatch(in nsIRunnable event, in unsigned long flags);
|
|
|
|
/**
|
|
* This flag specifies the default mode of event dispatch, whereby the event
|
|
* is simply queued for later processing. When this flag is specified,
|
|
* dispatch returns immediately after the event is queued.
|
|
*/
|
|
const unsigned long DISPATCH_NORMAL = 0;
|
|
|
|
/**
|
|
* This flag specifies the synchronous mode of event dispatch, in which the
|
|
* dispatch method does not return until the event has been processed.
|
|
*
|
|
* NOTE: passing this flag to dispatch may have the side-effect of causing
|
|
* other events on the current thread to be processed while waiting for the
|
|
* given event to be processed.
|
|
*/
|
|
const unsigned long DISPATCH_SYNC = 1;
|
|
|
|
/**
|
|
* Check to see if this event target is associated with the current thread.
|
|
*
|
|
* @returns
|
|
* A boolean value that if "true" indicates that events dispatched to this
|
|
* event target will run on the current thread (i.e., the thread calling
|
|
* this method).
|
|
*/
|
|
boolean isOnCurrentThread();
|
|
};
|
|
|
|
%{C++
|
|
// convenient aliases:
|
|
#define NS_DISPATCH_NORMAL nsIEventTarget::DISPATCH_NORMAL
|
|
#define NS_DISPATCH_SYNC nsIEventTarget::DISPATCH_SYNC
|
|
%}
|