/src/mozilla-central/netwerk/protocol/about/nsAboutCacheEntry.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
3 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
4 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
5 | | |
6 | | #ifndef nsAboutCacheEntry_h__ |
7 | | #define nsAboutCacheEntry_h__ |
8 | | |
9 | | #include "nsIAboutModule.h" |
10 | | #include "nsICacheEntryOpenCallback.h" |
11 | | #include "nsICacheEntry.h" |
12 | | #include "nsIStreamListener.h" |
13 | | #include "nsString.h" |
14 | | #include "nsCOMPtr.h" |
15 | | |
16 | | class nsIAsyncOutputStream; |
17 | | class nsIInputStream; |
18 | | class nsILoadContextInfo; |
19 | | class nsIURI; |
20 | | |
21 | | class nsAboutCacheEntry final : public nsIAboutModule |
22 | | { |
23 | | public: |
24 | | NS_DECL_ISUPPORTS |
25 | | NS_DECL_NSIABOUTMODULE |
26 | | |
27 | | private: |
28 | 0 | virtual ~nsAboutCacheEntry() = default; |
29 | | |
30 | | class Channel final : public nsICacheEntryOpenCallback |
31 | | , public nsICacheEntryMetaDataVisitor |
32 | | , public nsIStreamListener |
33 | | , public nsIChannel |
34 | | { |
35 | | public: |
36 | | NS_DECL_ISUPPORTS |
37 | | NS_DECL_NSICACHEENTRYOPENCALLBACK |
38 | | NS_DECL_NSICACHEENTRYMETADATAVISITOR |
39 | | NS_DECL_NSIREQUESTOBSERVER |
40 | | NS_DECL_NSISTREAMLISTENER |
41 | | NS_FORWARD_SAFE_NSICHANNEL(mChannel) |
42 | | NS_FORWARD_SAFE_NSIREQUEST(mChannel) |
43 | | |
44 | | Channel() |
45 | | : mBuffer(nullptr) |
46 | | , mWaitingForData(false) |
47 | | , mHexDumpState(0) |
48 | 0 | {} |
49 | | |
50 | | private: |
51 | 0 | virtual ~Channel() = default; |
52 | | |
53 | | public: |
54 | | MOZ_MUST_USE nsresult Init(nsIURI* uri, nsILoadInfo* aLoadInfo); |
55 | | |
56 | | MOZ_MUST_USE nsresult GetContentStream(nsIURI *, nsIInputStream **); |
57 | | MOZ_MUST_USE nsresult OpenCacheEntry(nsIURI *); |
58 | | MOZ_MUST_USE nsresult OpenCacheEntry(); |
59 | | MOZ_MUST_USE nsresult WriteCacheEntryDescription(nsICacheEntry *); |
60 | | MOZ_MUST_USE nsresult WriteCacheEntryUnavailable(); |
61 | | MOZ_MUST_USE nsresult ParseURI(nsIURI *uri, nsACString &storageName, |
62 | | nsILoadContextInfo **loadInfo, |
63 | | nsCString &enahnceID, |
64 | | nsIURI **cacheUri); |
65 | | void CloseContent(); |
66 | | |
67 | | static MOZ_MUST_USE nsresult |
68 | | PrintCacheData(nsIInputStream *aInStream, |
69 | | void *aClosure, |
70 | | const char *aFromSegment, |
71 | | uint32_t aToOffset, |
72 | | uint32_t aCount, |
73 | | uint32_t *aWriteCount); |
74 | | |
75 | | private: |
76 | | nsCString mStorageName, mEnhanceId; |
77 | | nsCOMPtr<nsILoadContextInfo> mLoadInfo; |
78 | | nsCOMPtr<nsIURI> mCacheURI; |
79 | | |
80 | | nsCString *mBuffer; |
81 | | nsCOMPtr<nsIAsyncOutputStream> mOutputStream; |
82 | | bool mWaitingForData; |
83 | | uint32_t mHexDumpState; |
84 | | |
85 | | nsCOMPtr<nsIChannel> mChannel; |
86 | | }; |
87 | | }; |
88 | | |
89 | | #define NS_ABOUT_CACHE_ENTRY_MODULE_CID \ |
90 | | { /* 7fa5237d-b0eb-438f-9e50-ca0166e63788 */ \ |
91 | | 0x7fa5237d, \ |
92 | | 0xb0eb, \ |
93 | | 0x438f, \ |
94 | | {0x9e, 0x50, 0xca, 0x01, 0x66, 0xe6, 0x37, 0x88} \ |
95 | | } |
96 | | |
97 | | #endif // nsAboutCacheEntry_h__ |