dom/webidl/UDPSocket.webidl
author Carsten "Tomcat" Book <cbook@mozilla.com>
Mon, 12 Jan 2015 09:02:13 +0100
changeset 249072 4583ade26b7e1af024bccacfaa3bccb9a9051e1d
parent 223001 70bad98676c83b2b3273e8d6ad015917a5947b33
child 285088 4dd71c32a6cb0e4dbf10350bf65d63bda844cb3b
permissions -rw-r--r--
Backed out changeset df960e299bcd (bug 1108096) for m1 test failures

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/.
 *
 * The origin of this IDL file is
 * http://www.w3.org/2012/sysapps/tcp-udp-sockets/#interface-udpsocket
 * http://www.w3.org/2012/sysapps/tcp-udp-sockets/#dictionary-udpoptions
 */

dictionary UDPOptions {
    DOMString      localAddress;
    unsigned short localPort;
    DOMString      remoteAddress;
    unsigned short remotePort;
    boolean        addressReuse = true;
    boolean        loopback = false;
};

[Constructor (optional UDPOptions options),
 Pref="dom.udpsocket.enabled",
 CheckPermissions="udp-socket"]
interface UDPSocket : EventTarget {
    readonly    attribute DOMString?       localAddress;
    readonly    attribute unsigned short?  localPort;
    readonly    attribute DOMString?       remoteAddress;
    readonly    attribute unsigned short?  remotePort;
    readonly    attribute boolean          addressReuse;
    readonly    attribute boolean          loopback;
    readonly    attribute SocketReadyState readyState;
    readonly    attribute Promise<void>    opened;
    readonly    attribute Promise<void>    closed;
//    readonly    attribute ReadableStream   input; //Bug 1056444: Stream API is not ready
//    readonly    attribute WriteableStream  output; //Bug 1056444: Stream API is not ready
                attribute EventHandler     onmessage; //Bug 1056444: use event interface before Stream API is ready
    Promise<void> close ();
    [Throws] void    joinMulticastGroup (DOMString multicastGroupAddress);
    [Throws] void    leaveMulticastGroup (DOMString multicastGroupAddress);
    [Throws] boolean send ((DOMString or Blob or ArrayBuffer or ArrayBufferView) data, optional DOMString? remoteAddress, optional unsigned short? remotePort); //Bug 1056444: use send method before Stream API is ready
};