Make hashLength32() a method of Hash
This commit is contained in:
		
							parent
							
								
									5b8c09c124
								
							
						
					
					
						commit
						d45ad8fcf5
					
				
					 2 changed files with 15 additions and 12 deletions
				
			
		| 
						 | 
					@ -96,19 +96,13 @@ Hash parseHash(HashType ht, const string & s)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned int hashLength32(const Hash & hash)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return (hash.hashSize * 8 - 1) / 5 + 1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// omitted: E O U T
 | 
					// omitted: E O U T
 | 
				
			||||||
const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
 | 
					const string base32Chars = "0123456789abcdfghijklmnpqrsvwxyz";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
string printHash32(const Hash & hash)
 | 
					string printHash32(const Hash & hash)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    unsigned int len = hashLength32(hash);
 | 
					    size_t len = hash.base32Len();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    string s;
 | 
					    string s;
 | 
				
			||||||
    s.reserve(len);
 | 
					    s.reserve(len);
 | 
				
			||||||
| 
						 | 
					@ -136,7 +130,7 @@ string printHash16or32(const Hash & hash)
 | 
				
			||||||
Hash parseHash32(HashType ht, const string & s)
 | 
					Hash parseHash32(HashType ht, const string & s)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Hash hash(ht);
 | 
					    Hash hash(ht);
 | 
				
			||||||
    unsigned int len = hashLength32(ht);
 | 
					    size_t len = hash.base32Len();
 | 
				
			||||||
    assert(s.size() == len);
 | 
					    assert(s.size() == len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (unsigned int n = 0; n < len; ++n) {
 | 
					    for (unsigned int n = 0; n < len; ++n) {
 | 
				
			||||||
| 
						 | 
					@ -163,7 +157,7 @@ Hash parseHash16or32(HashType ht, const string & s)
 | 
				
			||||||
    if (s.size() == hash.hashSize * 2)
 | 
					    if (s.size() == hash.hashSize * 2)
 | 
				
			||||||
        /* hexadecimal representation */
 | 
					        /* hexadecimal representation */
 | 
				
			||||||
        hash = parseHash(ht, s);
 | 
					        hash = parseHash(ht, s);
 | 
				
			||||||
    else if (s.size() == hashLength32(hash))
 | 
					    else if (s.size() == hash.base32Len())
 | 
				
			||||||
        /* base-32 representation */
 | 
					        /* base-32 representation */
 | 
				
			||||||
        hash = parseHash32(ht, s);
 | 
					        hash = parseHash32(ht, s);
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,6 +40,18 @@ struct Hash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* For sorting. */
 | 
					    /* For sorting. */
 | 
				
			||||||
    bool operator < (const Hash & h) const;
 | 
					    bool operator < (const Hash & h) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Returns the length of a base-16 representation of this hash. */
 | 
				
			||||||
 | 
					    size_t base16Len() const
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return hashSize * 2;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Returns the length of a base-32 representation of this hash. */
 | 
				
			||||||
 | 
					    size_t base32Len() const
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return (hashSize * 8 - 1) / 5 + 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,9 +61,6 @@ string printHash(const Hash & hash);
 | 
				
			||||||
/* Parse a hexadecimal representation of a hash code. */
 | 
					/* Parse a hexadecimal representation of a hash code. */
 | 
				
			||||||
Hash parseHash(HashType ht, const string & s);
 | 
					Hash parseHash(HashType ht, const string & s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Returns the length of a base-32 hash representation. */
 | 
					 | 
				
			||||||
unsigned int hashLength32(const Hash & hash);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Convert a hash to a base-32 representation. */
 | 
					/* Convert a hash to a base-32 representation. */
 | 
				
			||||||
string printHash32(const Hash & hash);
 | 
					string printHash32(const Hash & hash);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue