MCPcopy Create free account
hub / github.com/Tripwire/tripwire-open-source / CreateChildArray

Method CreateChildArray

src/db/hierdatabase.cpp:469–493  ·  view source on GitHub ↗

////////////////////////////////////////////////////////////////////////// CreateChildArray //////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

467// CreateChildArray
468///////////////////////////////////////////////////////////////////////////////
469void cHierDatabaseIter::CreateChildArray() //throw (eArchive, eHierDatabase)
470{
471 ASSERT(!Done());
472 ASSERT(!CanDescend());
473 if (Done())
474 {
475 throw eHierDatabase(_T("Attempt to call iter::CreateChildArray() when done is true"));
476 }
477 if (CanDescend())
478 {
479 throw eHierDatabase(_T("Attempt to call iter::CreateChildArray() when child already exists"));
480 }
481
482 cHierArrayInfo newInfo;
483 cHierAddr infoAddr;
484
485 // write the new info
486 newInfo.mParent = mInfoAddr;
487 infoAddr = util_WriteObject(mpDb, &newInfo);
488 mIter->mChild = infoAddr;
489 //
490 // rewrite the current object, since its child info just changed
491 //
492 util_RewriteObject(mpDb, &(*mIter), GetCurrentAddr());
493}
494
495///////////////////////////////////////////////////////////////////////////////
496// CreateEntry

Callers 3

AddChildArrayMethod · 0.80
SeekToDirectoryMethod · 0.80
AddDirectoryFunction · 0.80

Calls 2

util_WriteObjectFunction · 0.85
util_RewriteObjectFunction · 0.85

Tested by

no test coverage detected