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