forked from mirrors/gecko-dev
		
	 3f2298c2f6
			
		
	
	
		3f2298c2f6
		
	
	
	
	
		
			
			MozReview-Commit-ID: 666LNaHyiuQ --HG-- extra : rebase_source : f3a24e0342d8dcdf9020dd473bc6b1045cbc533b
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.6 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 CacheHashUtils__h__
 | |
| #define CacheHashUtils__h__
 | |
| 
 | |
| #include "nsISupports.h"
 | |
| #include "mozilla/Types.h"
 | |
| #include "prnetdb.h"
 | |
| #include "nsPrintfCString.h"
 | |
| 
 | |
| #define LOGSHA1(x) \
 | |
|     PR_htonl((reinterpret_cast<const uint32_t *>(x))[0]), \
 | |
|     PR_htonl((reinterpret_cast<const uint32_t *>(x))[1]), \
 | |
|     PR_htonl((reinterpret_cast<const uint32_t *>(x))[2]), \
 | |
|     PR_htonl((reinterpret_cast<const uint32_t *>(x))[3]), \
 | |
|     PR_htonl((reinterpret_cast<const uint32_t *>(x))[4])
 | |
| 
 | |
| #define SHA1STRING(x) \
 | |
|     (nsPrintfCString("%08x%08x%08x%08x%08x", LOGSHA1(x)).get())
 | |
| 
 | |
| namespace mozilla {
 | |
| 
 | |
| class OriginAttributes;
 | |
| 
 | |
| namespace net {
 | |
| 
 | |
| class CacheHash : public nsISupports
 | |
| {
 | |
| public:
 | |
|   NS_DECL_THREADSAFE_ISUPPORTS
 | |
| 
 | |
|   typedef uint16_t Hash16_t;
 | |
|   typedef uint32_t Hash32_t;
 | |
| 
 | |
|   static Hash32_t Hash(const char* aData, uint32_t aSize, uint32_t aInitval=0);
 | |
|   static Hash16_t Hash16(const char* aData, uint32_t aSize,
 | |
|                          uint32_t aInitval=0);
 | |
| 
 | |
|   explicit CacheHash(uint32_t aInitval=0);
 | |
| 
 | |
|   void     Update(const char *aData, uint32_t aLen);
 | |
|   Hash32_t GetHash();
 | |
|   Hash16_t GetHash16();
 | |
| 
 | |
| private:
 | |
|   virtual ~CacheHash() = default;
 | |
| 
 | |
|   void Feed(uint32_t aVal, uint8_t aLen = 4);
 | |
| 
 | |
|   uint32_t mA, mB, mC;
 | |
|   uint8_t  mPos;
 | |
|   uint32_t mBuf;
 | |
|   uint8_t  mBufPos;
 | |
|   uint32_t mLength;
 | |
|   bool     mFinalized;
 | |
| };
 | |
| 
 | |
| typedef uint64_t OriginAttrsHash;
 | |
| 
 | |
| OriginAttrsHash GetOriginAttrsHash(const mozilla::OriginAttributes &aOA);
 | |
| 
 | |
| } // namespace net
 | |
| } // namespace mozilla
 | |
| 
 | |
| #endif
 |