blob: ef480eeba5b214df6a790e005d2ebd6af97cc84a [file] [log] [blame]
// Copyright 2014 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.
// Module "mojo/public/js/core"
//
// Note: This file is for documentation purposes only. The code here is not
// actually executed. The real module is implemented natively in Mojo.
//
// This module provides the JavaScript bindings for mojo/public/c/system/core.h.
// Refer to that file for more detailed documentation for equivalent methods.
while (1);
/**
* MojoHandle: An opaque handles to a Mojo object (e.g. a message pipe).
*/
var kInvalidHandle;
/**
* MojoResult {number}: Result codes for Mojo operations.
* See core.h for more information.
*/
var RESULT_OK;
var RESULT_CANCELLED;
var RESULT_UNKNOWN;
var RESULT_INVALID_ARGUMENT;
var RESULT_DEADLINE_EXCEEDED;
var RESULT_NOT_FOUND;
var RESULT_ALREADY_EXISTS;
var RESULT_PERMISSION_DENIED;
var RESULT_RESOURCE_EXHAUSTED;
var RESULT_FAILED_PRECONDITION;
var RESULT_ABORTED;
var RESULT_OUT_OF_RANGE;
var RESULT_UNIMPLEMENTED;
var RESULT_INTERNAL;
var RESULT_UNAVAILABLE;
var RESULT_DATA_LOSS;
var RESULT_BUSY;
var RESULT_SHOULD_WAIT;
/**
* MojoDeadline {number}: Used to specify deadlines (timeouts), in microseconds.
* See core.h for more information.
*/
var DEADLINE_INDEFINITE;
/**
* MojoHandleSignals: Used to specify signals that can be waited on for a handle
*(and which can be triggered), e.g., the ability to read or write to
* the handle.
* See core.h for more information.
*/
var HANDLE_SIGNAL_NONE;
var HANDLE_SIGNAL_READABLE;
var HANDLE_SIGNAL_WRITABLE;
var HANDLE_SIGNAL_PEER_CLOSED;
/**
* MojoCreateDataMessageOptions: Used to specify creation parameters for a data
* pipe to |createDataMessage()|.
* See core.h for more information.
*/
dictionary MojoCreateDataMessageOptions {
MojoCreateDataMessageOptionsFlags flags; // See below.
};
// MojoCreateDataMessageOptionsFlags
var CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE;
/*
* MojoWriteMessageFlags: Used to specify different modes to |writeMessage()|.
* See core.h for more information.
*/
var WRITE_MESSAGE_FLAG_NONE;
/**
* MojoReadMessageFlags: Used to specify different modes to |readMessage()|.
* See core.h for more information.
*/
var READ_MESSAGE_FLAG_NONE;
var READ_MESSAGE_FLAG_MAY_DISCARD;
/**
* MojoCreateDataPipeOptions: Used to specify creation parameters for a data
* pipe to |createDataPipe()|.
* See core.h for more information.
*/
dictionary MojoCreateDataPipeOptions {
MojoCreateDataPipeOptionsFlags flags; // See below.
int32 elementNumBytes; // The size of an element, in bytes.
int32 capacityNumBytes; // The capacity of the data pipe, in bytes.
};
// MojoCreateDataPipeOptionsFlags
var CREATE_DATA_PIPE_OPTIONS_FLAG_NONE;
/*
* MojoWriteDataFlags: Used to specify different modes to |writeData()|.
* See core.h for more information.
*/
var WRITE_DATA_FLAG_NONE;
var WRITE_DATA_FLAG_ALL_OR_NONE;
/**
* MojoReadDataFlags: Used to specify different modes to |readData()|.
* See core.h for more information.
*/
var READ_DATA_FLAG_NONE;
var READ_DATA_FLAG_ALL_OR_NONE;
var READ_DATA_FLAG_DISCARD;
var READ_DATA_FLAG_QUERY;
var READ_DATA_FLAG_PEEK;
/**
* MojoCreateSharedBufferOptionsFlags: Used to specify options to
* |createSharedBuffer()|.
* See core.h for more information.
*/
var CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE;
/**
* MojoDuplicateBufferHandleOptionsFlags: Used to specify options to
* |duplicateBufferHandle()|.
* See core.h for more information.
*/
var DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE;
var DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_READ_ONLY;
/**
* MojoMapBufferFlags: Used to specify options to |mapBuffer()|.
* See core.h for more information.
*/
var MAP_BUFFER_FLAG_NONE;
/**
* Closes the given |handle|. See MojoClose for more info.
* @param {MojoHandle} Handle to close.
* @return {MojoResult} Result code.
*/
function close(handle) { [native code] }
/**
* Waits on the given handle until a signal indicated by |signals| is
* satisfied or until |deadline| is passed. See MojoWait for more information.
*
* @param {MojoHandle} handle Handle to wait on.
* @param {MojoHandleSignals} signals Specifies the condition to wait for.
* @param {MojoDeadline} deadline Stops waiting if this is reached.
* @return {MojoResult} Result code.
*/
function wait(handle, signals, deadline) { [native code] }
/**
* Waits on |handles[0]|, ..., |handles[handles.length-1]| for at least one of
* them to satisfy the state indicated by |flags[0]|, ...,
* |flags[handles.length-1]|, respectively, or until |deadline| has passed.
* See MojoWaitMany for more information.
*
* @param {Array.MojoHandle} handles Handles to wait on.
* @param {Array.MojoHandleSignals} signals Specifies the condition to wait for,
* for each corresponding handle. Must be the same length as |handles|.
* @param {MojoDeadline} deadline Stops waiting if this is reached.
* @return {MojoResult} Result code.
*/
function waitMany(handles, signals, deadline) { [native code] }
/**
* Creates a message pipe. This function always succeeds.
* See MojoCreateMessagePipe for more information on message pipes.
*
* @param {MojoCreateMessagePipeOptions} optionsDict Options to control the
* message pipe parameters. May be null.
* @return {MessagePipe} An object of the form {
* handle0,
* handle1,
* }
* where |handle0| and |handle1| are MojoHandles to each end of the channel.
*/
function createMessagePipe(optionsDict) { [native code] }
/**
* Writes a message to the message pipe endpoint given by |handle|. See
* MojoWriteMessage for more information, including return codes.
*
* @param {MojoHandle} handle The endpoint to write to.
* @param {ArrayBufferView} buffer The message data. May be empty.
* @param {Array.MojoHandle} handlesArray Any handles to attach. Handles are
* transferred on success and will no longer be valid. May be empty.
* @param {MojoWriteMessageFlags} flags Flags.
* @return {MojoResult} Result code.
*/
function writeMessage(handle, buffer, handlesArray, flags) { [native code] }
/**
* Reads a message from the message pipe endpoint given by |handle|. See
* MojoReadMessage for more information, including return codes.
*
* @param {MojoHandle} handle The endpoint to read from.
* @param {MojoReadMessageFlags} flags Flags.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* buffer, // An ArrayBufferView of the message data (only on success).
* handles // An array of MojoHandles transferred, if any.
* }
*/
function readMessage(handle, flags) { [native code] }
/**
* Creates a data pipe, which is a unidirectional communication channel for
* unframed data, with the given options. See MojoCreateDataPipe for more
* more information, including return codes.
*
* @param {MojoCreateDataPipeOptions} optionsDict Options to control the data
* pipe parameters. May be null.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* producerHandle, // MojoHandle to use with writeData (only on success).
* consumerHandle, // MojoHandle to use with readData (only on success).
* }
*/
function createDataPipe(optionsDict) { [native code] }
/**
* Writes the given data to the data pipe producer given by |handle|. See
* MojoWriteData for more information, including return codes.
*
* @param {MojoHandle} handle A producerHandle returned by createDataPipe.
* @param {ArrayBufferView} buffer The data to write.
* @param {MojoWriteDataFlags} flags Flags.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* numBytes, // The number of bytes written.
* }
*/
function writeData(handle, buffer, flags) { [native code] }
/**
* Reads data from the data pipe consumer given by |handle|. May also
* be used to discard data. See MojoReadData for more information, including
* return codes.
*
* @param {MojoHandle} handle A consumerHandle returned by createDataPipe.
* @param {MojoReadDataFlags} flags Flags.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* buffer, // An ArrayBufferView of the data read (only on success).
* }
*/
function readData(handle, flags) { [native code] }
/**
* True if the argument is a message or data pipe handle.
*
* @param {value} an arbitrary JS value.
* @return true or false
*/
function isHandle(value) { [native code] }
/**
* Creates shared buffer of specified size |num_bytes|.
* See MojoCreateSharedBuffer for more information including error codes.
*
* @param {number} num_bytes Size of the memory to be allocated for shared
* @param {MojoCreateSharedBufferOptionsFlags} flags Flags.
* buffer.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* handle, // An MojoHandle for shared buffer (only on success).
* }
*/
function createSharedBuffer(num_bytes, flags) { [native code] }
/**
* Duplicates the |buffer_handle| to a shared buffer. Duplicated handle can be
* sent to another process over message pipe. See MojoDuplicateBufferHandle for
* more information including error codes.
*
* @param {MojoHandle} buffer_handle MojoHandle.
* @param {MojoCreateSharedBufferOptionsFlags} flags Flags.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* handle, // A duplicated MojoHandle for shared buffer (only on success).
* }
*/
function duplicateBufferHandle(buffer_handle, flags) { [native code] }
/**
* Maps the part (at offset |offset| of length |num_bytes|) of the buffer given
* by |buffer_handle| into ArrayBuffer memory |buffer|, with options specified
* by |flags|. See MojoMapBuffer for more information including error codes.
*
* @param {MojoHandle} buffer_handle A sharedBufferHandle returned by
* createSharedBuffer.
* @param {number} offset Offset.
* @param {number} num_bytes Size of the memory to be mapped.
* @param {MojoMapBufferFlags} flags Flags.
* @return {object} An object of the form {
* result, // |RESULT_OK| on success, error code otherwise.
* buffer, // An ArrayBuffer (only on success).
* }
*/
function mapBuffer(buffer_handle, offset, num_bytes, flags) { [native code] }
/**
* Unmaps buffer that was mapped using mapBuffer.
* See MojoUnmapBuffer for more information including error codes.
*
* @param {ArrayBuffer} buffer ArrayBuffer.
* @return {MojoResult} Result code.
*/
function unmapBuffer(buffer) { [native code] }