mirror of
https://github.com/mozilla-firefox/firefox
synced 2026-08-11 12:19:28 +00:00
Autogenerated with:
cp dom/.clang-format netwerk/ && mach format netwerk/**.{cpp,h,mm}
Manual fixes:
* mozurl/cbindgen.toml (including headers earlier)
* NetlinkService.h (forward-declaring a necessary struct)
* nsIWebSocketChannel.idl (forward-declaring OriginAttributes).
* nsAsyncRedirectVerifyHelper.h (forward-declaring nsIEventTarget)
* CapsuleEncoder.h gets a missing Capsule forward-decl.
* WebSocketConnectionBase.h gets some missing includes.
* HappyEyeballsConnectionAttempt gets some missing includes.
* nsUDPSocket missed nsSocketTransportService2.h for OnSocketThread().
* HttpInfo missed a forward declaration.
* MockHttpAuth missed an nsCOMPtr include.
* nsHttpAuthManager missed a forward declaration for nsIHttpAuthCache.
* WebTransportSessionProxy was using mozilla::Mutex in a member without
including it.
* win32 fixes to keep include order because windows headers suck.
* nsInputStreamPump needs an Atomics.h include.
Differential Revision: https://phabricator.services.mozilla.com/D311696
63 lines
1.8 KiB
C++
63 lines
1.8 KiB
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef CacheIndexIterator_h_
|
|
#define CacheIndexIterator_h_
|
|
|
|
#include "mozilla/SHA1.h"
|
|
#include "mozilla/StaticMutex.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "nsTHashSet.h"
|
|
|
|
namespace mozilla {
|
|
namespace net {
|
|
|
|
class CacheIndex;
|
|
class CacheIndexRecordWrapper;
|
|
|
|
class CacheIndexIterator {
|
|
public:
|
|
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(CacheIndexIterator)
|
|
|
|
CacheIndexIterator(CacheIndex* aIndex, bool aAddNew);
|
|
|
|
protected:
|
|
virtual ~CacheIndexIterator();
|
|
|
|
public:
|
|
// Returns a hash of a next entry. If there is no entry NS_ERROR_NOT_AVAILABLE
|
|
// is returned and the iterator is closed. Other error is returned when the
|
|
// iterator is closed for other reason, e.g. shutdown.
|
|
nsresult GetNextHash(SHA1Sum::Hash* aHash);
|
|
|
|
// Closes the iterator. This means the iterator is removed from the list of
|
|
// iterators in CacheIndex.
|
|
nsresult Close();
|
|
|
|
protected:
|
|
friend class CacheIndex;
|
|
|
|
nsresult CloseInternal(nsresult aStatus);
|
|
|
|
bool ShouldBeNewAdded() { return mAddNew; }
|
|
virtual void AddRecord(CacheIndexRecordWrapper* aRecord,
|
|
const StaticMutexAutoLock& aProofOfLock);
|
|
bool RemoveRecord(CacheIndexRecordWrapper* aRecord,
|
|
const StaticMutexAutoLock& aProofOfLock);
|
|
bool ReplaceRecord(CacheIndexRecordWrapper* aOldRecord,
|
|
CacheIndexRecordWrapper* aNewRecord,
|
|
const StaticMutexAutoLock& aProofOfLock);
|
|
void ClearRecords(const StaticMutexAutoLock& aProofOfLock);
|
|
|
|
nsresult mStatus;
|
|
RefPtr<CacheIndex> mIndex;
|
|
nsTHashSet<RefPtr<CacheIndexRecordWrapper>> mRecords;
|
|
bool mAddNew;
|
|
};
|
|
|
|
} // namespace net
|
|
} // namespace mozilla
|
|
|
|
#endif
|