michael@0: // Stuff to link the old imp to the new api - will go away! michael@0: michael@0: #ifndef OLDWRAPPERS__H__ michael@0: #define OLDWRAPPERS__H__ michael@0: michael@0: #include "nsICacheEntry.h" michael@0: #include "nsICacheListener.h" michael@0: #include "nsICacheStorage.h" michael@0: michael@0: #include "nsCOMPtr.h" michael@0: #include "nsICacheEntryOpenCallback.h" michael@0: #include "nsICacheEntryDescriptor.h" michael@0: #include "nsThreadUtils.h" michael@0: #include "mozilla/TimeStamp.h" michael@0: michael@0: class nsIURI; michael@0: class nsICacheEntryOpenCallback; michael@0: class nsICacheStorageConsumptionObserver; michael@0: class nsIApplicationCache; michael@0: class nsILoadContextInfo; michael@0: michael@0: namespace mozilla { namespace net { michael@0: michael@0: class CacheStorage; michael@0: michael@0: class _OldCacheEntryWrapper : public nsICacheEntry michael@0: { michael@0: public: michael@0: NS_DECL_THREADSAFE_ISUPPORTS michael@0: NS_FORWARD_SAFE_NSICACHEENTRYDESCRIPTOR(mOldDesc) michael@0: NS_FORWARD_NSICACHEENTRYINFO(mOldInfo->) michael@0: michael@0: NS_IMETHOD AsyncDoom(nsICacheEntryDoomCallback* listener); michael@0: NS_IMETHOD GetPersistent(bool *aPersistToDisk); michael@0: NS_IMETHOD SetValid() { return NS_OK; } michael@0: NS_IMETHOD MetaDataReady() { return NS_OK; } michael@0: NS_IMETHOD Recreate(bool, nsICacheEntry**); michael@0: NS_IMETHOD GetDataSize(int64_t *size); michael@0: NS_IMETHOD OpenInputStream(int64_t offset, nsIInputStream * *_retval); michael@0: NS_IMETHOD OpenOutputStream(int64_t offset, nsIOutputStream * *_retval); michael@0: NS_IMETHOD MaybeMarkValid(); michael@0: NS_IMETHOD HasWriteAccess(bool aWriteOnly, bool *aWriteAccess); michael@0: michael@0: _OldCacheEntryWrapper(nsICacheEntryDescriptor* desc); michael@0: _OldCacheEntryWrapper(nsICacheEntryInfo* info); michael@0: michael@0: virtual ~_OldCacheEntryWrapper(); michael@0: michael@0: private: michael@0: _OldCacheEntryWrapper() MOZ_DELETE; michael@0: nsICacheEntryDescriptor* mOldDesc; // ref holded in mOldInfo michael@0: nsCOMPtr mOldInfo; michael@0: }; michael@0: michael@0: michael@0: class _OldCacheLoad : public nsRunnable michael@0: , public nsICacheListener michael@0: { michael@0: public: michael@0: NS_DECL_ISUPPORTS_INHERITED michael@0: NS_DECL_NSIRUNNABLE michael@0: NS_DECL_NSICACHELISTENER michael@0: michael@0: _OldCacheLoad(nsCSubstring const& aScheme, michael@0: nsCSubstring const& aCacheKey, michael@0: nsICacheEntryOpenCallback* aCallback, michael@0: nsIApplicationCache* aAppCache, michael@0: nsILoadContextInfo* aLoadInfo, michael@0: bool aWriteToDisk, michael@0: uint32_t aFlags); michael@0: virtual ~_OldCacheLoad(); michael@0: michael@0: nsresult Start(); michael@0: michael@0: private: michael@0: void Check(); michael@0: michael@0: nsCOMPtr mCacheThread; michael@0: michael@0: nsCString const mScheme; michael@0: nsCString const mCacheKey; michael@0: nsCOMPtr mCallback; michael@0: nsCOMPtr mLoadInfo; michael@0: uint32_t const mFlags; michael@0: michael@0: bool const mWriteToDisk : 1; michael@0: bool mNew : 1; michael@0: bool mOpening : 1; michael@0: bool mSync : 1; michael@0: michael@0: nsCOMPtr mCacheEntry; michael@0: nsresult mStatus; michael@0: uint32_t mRunCount; michael@0: nsCOMPtr mAppCache; michael@0: michael@0: mozilla::TimeStamp mLoadStart; michael@0: }; michael@0: michael@0: michael@0: class _OldStorage : public nsICacheStorage michael@0: { michael@0: NS_DECL_THREADSAFE_ISUPPORTS michael@0: NS_DECL_NSICACHESTORAGE michael@0: michael@0: public: michael@0: _OldStorage(nsILoadContextInfo* aInfo, michael@0: bool aAllowDisk, michael@0: bool aLookupAppCache, michael@0: bool aOfflineStorage, michael@0: nsIApplicationCache* aAppCache); michael@0: michael@0: private: michael@0: virtual ~_OldStorage(); michael@0: nsresult AssembleCacheKey(nsIURI *aURI, nsACString const & aIdExtension, michael@0: nsACString & aCacheKey, nsACString & aScheme); michael@0: nsresult ChooseApplicationCache(nsCSubstring const &cacheKey, nsIApplicationCache** aCache); michael@0: michael@0: nsCOMPtr mLoadInfo; michael@0: nsCOMPtr mAppCache; michael@0: bool const mWriteToDisk : 1; michael@0: bool const mLookupAppCache : 1; michael@0: bool const mOfflineStorage : 1; michael@0: }; michael@0: michael@0: class _OldGetDiskConsumption : public nsRunnable, michael@0: public nsICacheVisitor michael@0: { michael@0: public: michael@0: static nsresult Get(nsICacheStorageConsumptionObserver* aCallback); michael@0: michael@0: private: michael@0: _OldGetDiskConsumption(nsICacheStorageConsumptionObserver* aCallback); michael@0: virtual ~_OldGetDiskConsumption() {} michael@0: NS_DECL_ISUPPORTS_INHERITED michael@0: NS_DECL_NSICACHEVISITOR michael@0: NS_DECL_NSIRUNNABLE michael@0: michael@0: nsCOMPtr mCallback; michael@0: int64_t mSize; michael@0: }; michael@0: michael@0: }} michael@0: michael@0: #endif