write lowest level hashs into file, ordered from left to right optional without identifier
| 338 | |
| 339 | // write lowest level hashs into file, ordered from left to right optional without identifier |
| 340 | bool 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 |
| 369 | bool CAICHHashTree::LoadLowestLevelHashs(CFileDataIO* fileInput) |
no test coverage detected