tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsStreamListenerTee.h (1246B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef nsStreamListenerTee_h__
      6 #define nsStreamListenerTee_h__
      7 
      8 #include "nsIStreamListenerTee.h"
      9 #include "nsIThreadRetargetableStreamListener.h"
     10 #include "nsIInputStreamTee.h"
     11 #include "nsIOutputStream.h"
     12 #include "nsCOMPtr.h"
     13 #include "nsIEventTarget.h"
     14 #include "nsIMultiPartChannel.h"
     15 
     16 namespace mozilla {
     17 namespace net {
     18 
     19 class nsStreamListenerTee : public nsIStreamListenerTee,
     20                            public nsIMultiPartChannelListener {
     21 public:
     22  NS_DECL_THREADSAFE_ISUPPORTS
     23  NS_DECL_NSIREQUESTOBSERVER
     24  NS_DECL_NSISTREAMLISTENER
     25  NS_DECL_NSITHREADRETARGETABLESTREAMLISTENER
     26  NS_DECL_NSISTREAMLISTENERTEE
     27  NS_DECL_NSIMULTIPARTCHANNELLISTENER
     28 
     29  nsStreamListenerTee() = default;
     30 
     31 private:
     32  virtual ~nsStreamListenerTee() = default;
     33 
     34  nsCOMPtr<nsIInputStreamTee> mInputTee;
     35  nsCOMPtr<nsIOutputStream> mSink;
     36  nsCOMPtr<nsIStreamListener> mListener;
     37  nsCOMPtr<nsIRequestObserver> mObserver;
     38  nsCOMPtr<nsIEventTarget> mEventTarget;
     39  bool mIsMultiPart = false;
     40 };
     41 
     42 }  // namespace net
     43 }  // namespace mozilla
     44 
     45 #endif