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 nsHttpActivityDistributor_h__ 6 #define nsHttpActivityDistributor_h__ 7 8 #include "nsIHttpActivityObserver.h" 9 #include "nsTArray.h" 10 #include "nsProxyRelease.h" 11 #include "mozilla/Mutex.h" 12 13 namespace mozilla { namespace net { 14 15 class nsHttpActivityDistributor : public nsIHttpActivityDistributor 16 { 17 public: 18 typedef nsTArray<nsMainThreadPtrHandle<nsIHttpActivityObserver> > ObserverArray; 19 NS_DECL_THREADSAFE_ISUPPORTS 20 NS_DECL_NSIHTTPACTIVITYOBSERVER 21 NS_DECL_NSIHTTPACTIVITYDISTRIBUTOR 22 23 nsHttpActivityDistributor(); 24 25 protected: 26 virtual ~nsHttpActivityDistributor(); 27 28 ObserverArray mObservers; 29 Mutex mLock; 30 }; 31 32 } // namespace net 33 } // namespace mozilla 34 35 #endif // nsHttpActivityDistributor_h__ 36