/* 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 "nsIDOMEventTarget.idl"

%{C++
#ifdef GetBinaryType
// Windows apparently has a #define for GetBinaryType...
#undef GetBinaryType
#endif
%}

interface nsIVariant;

[scriptable, builtinclass, uuid(af7077ac-0f9f-44e1-815f-9b1a94618531)]
interface nsIDOMDataChannel : nsIDOMEventTarget
{
  readonly attribute DOMString label;
  readonly attribute DOMString protocol;
  readonly attribute boolean reliable;
  readonly attribute boolean ordered;

  readonly attribute DOMString readyState;
  readonly attribute unsigned long bufferedAmount;

  readonly attribute unsigned short id;
  readonly attribute unsigned short stream; /* deprecated name for 'id' */

  [implicit_jscontext] attribute jsval onopen;
  [implicit_jscontext] attribute jsval onerror;
  [implicit_jscontext] attribute jsval onclose;
  [implicit_jscontext] attribute jsval onmessage;

  attribute DOMString binaryType;

  void close();
};
