blob: 4fe2ab28ad116c69a27c913707cd8e3641fffeeb [file] [log] [blame]
// 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.
callback MojoWatchCallback = void (MojoResult result);
[
ContextEnabled=MojoJS,
Exposed=(Window,Worker),
RuntimeEnabled=MojoJS
] interface MojoHandle {
void close();
[CallWith=ScriptState] MojoWatcher watch(MojoHandleSignals signals, MojoWatchCallback callback);
// TODO(alokp): Create MojoMessagePipeHandle, a subclass of MojoHandle
// and move the following member functions.
MojoResult writeMessage(BufferSource buffer, sequence<MojoHandle> handles);
MojoReadMessageResult readMessage(optional MojoReadMessageFlags flags);
// TODO(alokp): Create MojoDataPipeProducerHandle and MojoDataPipeConsumerHandle,
// subclasses of MojoHandle and move the following member functions.
MojoWriteDataResult writeData(BufferSource buffer, optional MojoWriteDataOptions options);
MojoReadDataResult queryData();
MojoReadDataResult discardData(unsigned long numBytes, optional MojoDiscardDataOptions options);
MojoReadDataResult readData(BufferSource buffer, optional MojoReadDataOptions options);
// TODO(alokp): Create MojoSharedBufferHandle, a subclass of MojoHandle
// and move the following member functions.
MojoMapBufferResult mapBuffer(unsigned long offset, unsigned long numBytes);
MojoCreateSharedBufferResult duplicateBufferHandle(optional MojoDuplicateBufferHandleOptions options);
};