////////////////////////////////////////////////////////////////////////// SetData //////////////////////////////////////////////////////////////////////////
| 588 | // SetData |
| 589 | /////////////////////////////////////////////////////////////////////////////// |
| 590 | void cHierDatabaseIter::SetData(int8* pData, int32 length) //throw (eArchive, eHierDatabase) |
| 591 | { |
| 592 | ASSERT(!Done()); |
| 593 | ASSERT(!HasData()); |
| 594 | |
| 595 | // remove the item's data, if there is any... |
| 596 | // |
| 597 | if (HasData()) |
| 598 | { |
| 599 | RemoveData(); |
| 600 | } |
| 601 | // |
| 602 | // add the data and set the entry's data pointer appropriately |
| 603 | // |
| 604 | cBlockRecordFile::tAddr addr = mpDb->AddItem(pData, length); |
| 605 | mIter->mData = cHierAddr(addr.mBlockNum, addr.mIndex); |
| 606 | // |
| 607 | // update the entry on disk... |
| 608 | // |
| 609 | util_RewriteObject(mpDb, &(*mIter), GetCurrentAddr()); |
| 610 | } |
| 611 | |
| 612 | /////////////////////////////////////////////////////////////////////////////// |
| 613 | // RemoveData |
no test coverage detected