void RawGenBook::setEntry(const char *inbuf, long len) { __u32 offset = archtosword32(bdtfd->seek(0, SEEK_END)); __u32 size = 0; TreeKeyIdx *key = ((TreeKeyIdx *)&(getTreeKey())); char userData[8]; if (len < 0) len = strlen(inbuf); bdtfd->write(inbuf, len); size = archtosword32(len); memcpy(userData, &offset, 4); memcpy(userData+4, &size, 4); key->setUserData(userData, 8); key->save(); }
void RawGenBook::linkEntry(const SWKey *inkey) { TreeKeyIdx *srckey = 0; TreeKeyIdx *key = ((TreeKeyIdx *)&(getTreeKey())); // see if we have a VerseKey * or decendant SWTRY { srckey = SWDYNAMIC_CAST(TreeKeyIdx, inkey); } SWCATCH ( ... ) {} // if we don't have a VerseKey * decendant, create our own if (!srckey) { srckey = (TreeKeyIdx *)createKey(); (*srckey) = *inkey; } key->setUserData(srckey->getUserData(), 8); key->save(); if (inkey != srckey) // free our key if we created a VerseKey delete srckey; }