gecko/dom/network/interfaces/nsIDOMTCPServerSocket.idl

93 lines
3.0 KiB
Plaintext

/* 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 "domstubs.idl"
#include "nsITCPSocketChild.idl"
// Bug 797561 - Expose a server tcp socket API to web applications
/**
* nsIDOMTCPServerSocket
*
* An interface to a server socket that can accept incoming connections for gaia apps.
*/
[scriptable, uuid(821638a1-5327-416d-8031-668764f2ec04)]
interface nsIDOMTCPServerSocket : nsISupports
{
/**
* The port of this server socket object.
*/
readonly attribute unsigned short localPort;
/**
* The onconnect event handler is called when a client connection is accepted.
* The data attribute of the event passed to the onconnect handler will be a TCPSocket
* instance, which is used for communication between client and server.
*/
attribute jsval onconnect;
/**
* The onerror handler will be called when the listen of a server socket is aborted.
* The data attribute of the event passed to the onerror handler will have a
* description of the kind of error.
*/
attribute jsval onerror;
/**
* Close the server socket.
*/
void close();
};
/**
* Internal interfaces for use in cross-process server-socket implementation.
* Needed to account for multiple possible types that can be provided to
* the socket callbacks as arguments.
*
* These interfaces are for calling each method from the server socket object
* on the parent and child side for an IPC protocol implementation.
*/
[scriptable, uuid(b64b1e68-4efa-497c-b0d8-69f067ad5ec8)]
interface nsITCPServerSocketInternal : nsISupports
{
/**
* Initialization after creating a TCP server socket object.
*
* @param windowVal
* An object to create ArrayBuffer for this window. See Bug 831107.
*/
void init(in jsval windowVal);
/**
* Listen on a port
*
* @param localPort
* The port of the server socket. Pass -1 to indicate no preference,
* and a port will be selected automatically.
* @param options
* An object specifying one or more parameters which
* determine the details of the socket.
*
* binaryType: "arraybuffer" to use UInt8 array
* instances in the ondata callback and as the argument
* to send. Defaults to "string", to use JavaScript strings.
* @param backlog
* The maximum length the queue of pending connections may grow to.
* This parameter may be silently limited by the operating system.
* Pass -1 to use the default value.
*/
void listen(in unsigned short localPort, in jsval options, in unsigned short backlog);
/**
* Listener for receiving an accepted socket.
*/
void callListenerAccept(in nsITCPSocketChild socketChild);
/**
* Listener for handling an error caused in chrome process.
*/
void callListenerError(in DOMString message, in DOMString filename,
in uint32_t lineNumber, in uint32_t columnNumber);
};