content/base/src/nsDOMDataChannel.h

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* vim: set sw=2 ts=8 et tw=80 : */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef nsDOMDataChannel_h
     8 #define nsDOMDataChannel_h
    10 #include "mozilla/Attributes.h"
    11 #include "mozilla/DOMEventTargetHelper.h"
    12 #include "mozilla/dom/DataChannelBinding.h"
    13 #include "mozilla/dom/TypedArray.h"
    14 #include "mozilla/net/DataChannelListener.h"
    15 #include "nsIDOMDataChannel.h"
    16 #include "nsIInputStream.h"
    19 namespace mozilla {
    20 class DataChannel;
    21 };
    23 class nsDOMDataChannel : public mozilla::DOMEventTargetHelper,
    24                          public nsIDOMDataChannel,
    25                          public mozilla::DataChannelListener
    26 {
    27 public:
    28   nsDOMDataChannel(already_AddRefed<mozilla::DataChannel>& aDataChannel,
    29                    nsPIDOMWindow* aWindow);
    30   ~nsDOMDataChannel();
    32   nsresult Init(nsPIDOMWindow* aDOMWindow);
    34   NS_DECL_ISUPPORTS_INHERITED
    35   NS_DECL_NSIDOMDATACHANNEL
    37   NS_REALLY_FORWARD_NSIDOMEVENTTARGET(mozilla::DOMEventTargetHelper)
    39   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsDOMDataChannel,
    40                                            mozilla::DOMEventTargetHelper)
    42   virtual JSObject* WrapObject(JSContext* aCx)
    43     MOZ_OVERRIDE;
    44   nsPIDOMWindow* GetParentObject() const
    45   {
    46     return GetOwner();
    47   }
    49   // WebIDL
    50   // Uses XPIDL GetLabel.
    51   bool Reliable() const;
    52   mozilla::dom::RTCDataChannelState ReadyState() const;
    53   uint32_t BufferedAmount() const;
    54   IMPL_EVENT_HANDLER(open)
    55   IMPL_EVENT_HANDLER(error)
    56   IMPL_EVENT_HANDLER(close)
    57   // Uses XPIDL Close.
    58   IMPL_EVENT_HANDLER(message)
    59   mozilla::dom::RTCDataChannelType BinaryType() const
    60   {
    61     return static_cast<mozilla::dom::RTCDataChannelType>(
    62       static_cast<int>(mBinaryType));
    63   }
    64   void SetBinaryType(mozilla::dom::RTCDataChannelType aType)
    65   {
    66     mBinaryType = static_cast<DataChannelBinaryType>(
    67       static_cast<int>(aType));
    68   }
    69   void Send(const nsAString& aData, mozilla::ErrorResult& aRv);
    70   void Send(nsIDOMBlob* aData, mozilla::ErrorResult& aRv);
    71   void Send(const mozilla::dom::ArrayBuffer& aData, mozilla::ErrorResult& aRv);
    72   void Send(const mozilla::dom::ArrayBufferView& aData,
    73             mozilla::ErrorResult& aRv);
    75   // Uses XPIDL GetProtocol.
    76   bool Ordered() const;
    77   uint16_t Id() const;
    78   uint16_t Stream() const; // deprecated
    80   nsresult
    81   DoOnMessageAvailable(const nsACString& aMessage, bool aBinary);
    83   virtual nsresult
    84   OnMessageAvailable(nsISupports* aContext, const nsACString& aMessage) MOZ_OVERRIDE;
    86   virtual nsresult
    87   OnBinaryMessageAvailable(nsISupports* aContext, const nsACString& aMessage) MOZ_OVERRIDE;
    89   virtual nsresult OnSimpleEvent(nsISupports* aContext, const nsAString& aName);
    91   virtual nsresult
    92   OnChannelConnected(nsISupports* aContext) MOZ_OVERRIDE;
    94   virtual nsresult
    95   OnChannelClosed(nsISupports* aContext) MOZ_OVERRIDE;
    97   virtual void
    98   AppReady();
   100 private:
   101   void Send(nsIInputStream* aMsgStream, const nsACString& aMsgString,
   102             uint32_t aMsgLength, bool aIsBinary, mozilla::ErrorResult& aRv);
   104   // Owning reference
   105   nsRefPtr<mozilla::DataChannel> mDataChannel;
   106   nsString  mOrigin;
   107   enum DataChannelBinaryType {
   108     DC_BINARY_TYPE_ARRAYBUFFER,
   109     DC_BINARY_TYPE_BLOB,
   110   };
   111   DataChannelBinaryType mBinaryType;
   112 };
   114 #endif // nsDOMDataChannel_h

mercurial