Line data Source code
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 nsSyncStreamListener_h__
6 : #define nsSyncStreamListener_h__
7 :
8 : #include "nsISyncStreamListener.h"
9 : #include "nsIInputStream.h"
10 : #include "nsIOutputStream.h"
11 : #include "nsCOMPtr.h"
12 : #include "mozilla/Attributes.h"
13 :
14 : //-----------------------------------------------------------------------------
15 :
16 : class nsSyncStreamListener final : public nsISyncStreamListener
17 : , public nsIInputStream
18 : {
19 : public:
20 : NS_DECL_ISUPPORTS
21 : NS_DECL_NSIREQUESTOBSERVER
22 : NS_DECL_NSISTREAMLISTENER
23 : NS_DECL_NSISYNCSTREAMLISTENER
24 : NS_DECL_NSIINPUTSTREAM
25 :
26 0 : nsSyncStreamListener()
27 0 : : mStatus(NS_OK)
28 : , mKeepWaiting(false)
29 0 : , mDone(false) {}
30 :
31 : nsresult Init();
32 :
33 : private:
34 0 : ~nsSyncStreamListener() {}
35 :
36 : nsresult WaitForData();
37 :
38 : nsCOMPtr<nsIInputStream> mPipeIn;
39 : nsCOMPtr<nsIOutputStream> mPipeOut;
40 : nsresult mStatus;
41 : bool mKeepWaiting;
42 : bool mDone;
43 : };
44 :
45 : #endif // nsSyncStreamListener_h__
|