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 nsDownloader_h__
6 : #define nsDownloader_h__
7 :
8 : #include "nsIDownloader.h"
9 : #include "nsCOMPtr.h"
10 :
11 : class nsIFile;
12 : class nsIOutputStream;
13 :
14 : class nsDownloader : public nsIDownloader
15 : {
16 : public:
17 : NS_DECL_ISUPPORTS
18 : NS_DECL_NSIDOWNLOADER
19 : NS_DECL_NSIREQUESTOBSERVER
20 : NS_DECL_NSISTREAMLISTENER
21 :
22 0 : nsDownloader() : mLocationIsTemp(false) {}
23 :
24 : protected:
25 : virtual ~nsDownloader();
26 :
27 : static nsresult ConsumeData(nsIInputStream *in,
28 : void *closure,
29 : const char *fromRawSegment,
30 : uint32_t toOffset,
31 : uint32_t count,
32 : uint32_t *writeCount);
33 :
34 : nsCOMPtr<nsIDownloadObserver> mObserver;
35 : nsCOMPtr<nsIFile> mLocation;
36 : nsCOMPtr<nsIOutputStream> mSink;
37 : bool mLocationIsTemp;
38 : };
39 :
40 : #endif // nsDownloader_h__
|