MCPcopy Create free account
hub / github.com/amule-project/amule / WriteLowestLevelHashs

Method WriteLowestLevelHashs

src/SHAHashSet.cpp:340–366  ·  view source on GitHub ↗

write lowest level hashs into file, ordered from left to right optional without identifier

Source from the content-addressed store, hash-verified

338
339// write lowest level hashs into file, ordered from left to right optional without identifier
340bool CAICHHashTree::WriteLowestLevelHashs(CFileDataIO* fileDataOut, uint32 wHashIdent, bool bNoIdent, bool b32BitIdent) const
341{
342 wHashIdent <<= 1;
343 wHashIdent |= (m_bIsLeftBranch) ? 1: 0;
344 if (m_pLeftTree == NULL && m_pRightTree == NULL) {
345 if (m_nDataSize <= m_nBaseSize && m_bHashValid ) {
346 if (!bNoIdent && !b32BitIdent) {
347 wxASSERT( wHashIdent <= 0xFFFF );
348 fileDataOut->WriteUInt16((uint16)wHashIdent);
349 } else if (!bNoIdent && b32BitIdent) {
350 fileDataOut->WriteUInt32(wHashIdent);
351 }
352
353 m_Hash.Write(fileDataOut);
354 return true;
355 } else {
356 wxFAIL;
357 return false;
358 }
359 } else if (m_pLeftTree == NULL || m_pRightTree == NULL) {
360 wxFAIL;
361 return false;
362 } else {
363 return m_pLeftTree->WriteLowestLevelHashs(fileDataOut, wHashIdent, bNoIdent, b32BitIdent)
364 && m_pRightTree->WriteLowestLevelHashs(fileDataOut, wHashIdent, bNoIdent, b32BitIdent);
365 }
366}
367
368// recover all low level hashs from given data. hashs are assumed to be ordered in left to right - no identifier used
369bool CAICHHashTree::LoadLowestLevelHashs(CFileDataIO* fileInput)

Callers 1

SaveHashSetMethod · 0.80

Calls 3

WriteUInt16Method · 0.80
WriteUInt32Method · 0.80
WriteMethod · 0.45

Tested by

no test coverage detected