Source code

Revision control

Other Tools

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
public:
19
NS_DECL_ISUPPORTS
20
NS_DECL_NSIREQUESTOBSERVER
21
NS_DECL_NSISTREAMLISTENER
22
NS_DECL_NSISYNCSTREAMLISTENER
23
NS_DECL_NSIINPUTSTREAM
24
25
static already_AddRefed<nsISyncStreamListener> Create();
26
27
private:
28
nsSyncStreamListener() : mStatus(NS_OK), mKeepWaiting(false), mDone(false) {}
29
~nsSyncStreamListener() = default;
30
31
nsresult Init();
32
33
nsresult WaitForData();
34
35
nsCOMPtr<nsIInputStream> mPipeIn;
36
nsCOMPtr<nsIOutputStream> mPipeOut;
37
nsresult mStatus;
38
bool mKeepWaiting;
39
bool mDone;
40
};
41
42
#endif // nsSyncStreamListener_h__