本文整理汇总了C++中TreeKeyIdx类的典型用法代码示例。如果您正苦于以下问题:C++ TreeKeyIdx类的具体用法?C++ TreeKeyIdx怎么用?C++ TreeKeyIdx使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TreeKeyIdx类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: throw
CORBA::Boolean SWModule_impl::hasKeyChildren() throw(CORBA::SystemException) {
sword::SWKey *key = delegate->getKey();
bool retVal = "";
TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key);
if (tkey) {
retVal = tkey->hasChildren();
}
return retVal;
}
示例2: printTree
void printTree(TreeKeyIdx treeKey, TreeKeyIdx *target = 0, int level = 1) {
if (!target)
target = &treeKey;
unsigned long currentOffset = target->getOffset();
std::cout << ((currentOffset == treeKey.getOffset()) ? "==>" : "");
for (int i = 0; i < level; i++) std::cout << "\t";
std::cout << treeKey.getLocalName() << "/\n";
if (treeKey.firstChild()) {
printTree(treeKey, target, level+1);
treeKey.parent();
}
if (treeKey.nextSibling())
printTree(treeKey, target, level);
}
示例3: linkEntry
void RawGenBook::linkEntry(SWKey const & inkey) {
TreeKeyIdx * key_ = ((TreeKeyIdx *)&(getTreeKey()));
// see if we have a VerseKey * or decendant
/// \bug Remove const_cast:
TreeKeyIdx * srckey =
const_cast<TreeKeyIdx *>(dynamic_cast<TreeKeyIdx const *>(&inkey));
// if we don't have a VerseKey * decendant, create our own
if (!srckey) {
srckey = static_cast<TreeKeyIdx *>(createKey().release());
srckey->positionFrom(inkey);
}
key_->setUserData(srckey->getUserData(), 8);
key_->save();
if (&inkey != srckey) // free our key if we created a VerseKey
delete srckey;
}
示例4: archtosword32
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();
}
示例5: init
/*
* Class: org_crosswire_android_sword_SWModule
* Method: hasKeyChildren
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_crosswire_android_sword_SWModule_hasKeyChildren
(JNIEnv *env, jobject me) {
init();
SWModule *module = getModule(env, me);
jboolean retVal = JNI_FALSE;
if (module) {
sword::SWKey *key = module->getKey();
TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key);
if (tkey) {
retVal = (tkey->hasChildren())?JNI_TRUE:JNI_FALSE;
}
}
return retVal;
}
示例6: setEntryText
void setEntryText(RawGenBook *book) {
SWBuf body;
TreeKeyIdx *treeKey = (TreeKeyIdx *)(SWKey *)(*book);
if (treeKey->getOffset()) {
char buf[1023];
std::cout << "Enter New Entry Text ('.' on a line by itself to end): \n";
do {
fgets(buf, 1000, stdin);
SWBuf text = buf;
text.trim();
if ((text[0] == '.') && (text[1] == 0))
break;
body += text;
body += "\n";
} while (true);
(*book) << body.c_str();
}
else std::cout << "Can't add entry text to root node\n";
}
示例7: SWDYNAMIC_CAST
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;
}
示例8: main
int main(int argc, char **argv) {
if (argc != 2) {
fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv);
exit(-1);
}
TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]);
if (treeKey->Error()) {
RawGenBook::createModule(argv[1]);
}
delete treeKey;
RawGenBook *book = new RawGenBook(argv[1]);
TreeKeyIdx root = *((TreeKeyIdx *)((SWKey *)(*book)));
treeKey = (TreeKeyIdx *)(SWKey *)(*book);
SWBuf input;
char line[1024];
do {
std::cout << "[" << treeKey->getText() << "] > ";
fgets(line, 1000, stdin);
input = line;
input.trim();
if (input.length() > 0) {
switch (input[0]) {
case 'n': printLocalName(treeKey); break;
case 's': setLocalName(treeKey); break;
case 'g': gotoPath(treeKey); break;
case 'G': assurePath(treeKey); break;
case 'p': root.root(); printTree(root, treeKey); break;
case 'a': appendSibbling(treeKey); break;
case 'c': appendChild(treeKey); break;
case 'd': deleteNode(treeKey); break;
case 'j': treeKey->nextSibling(); break;
case 'k': treeKey->previousSibling(); break;
case 'h': treeKey->parent(); break;
case 'l': treeKey->firstChild(); break;
case 'r': treeKey->root(); break;
case 't': setEntryText(book); break;
case 'v': viewEntryText(book); break;
case 'q': break;
case '?':
default:
std::cout << "\n p - print tree\n";
std::cout << " n - get local name\n";
std::cout << " s - set local name\n";
std::cout << " j - next sibbling\n";
std::cout << " k - previous sibbling\n";
std::cout << " h - parent\n";
std::cout << " l - first child\n";
std::cout << " r - root\n";
std::cout << " g - goto path\n";
std::cout << " G goto path; create if it doesn't exist\n";
std::cout << " a - append sibbling\n";
std::cout << " c - append child\n";
std::cout << " d - delete node\n";
std::cout << " v - view entry text\n";
std::cout << " t - set entry text\n";
std::cout << " q - quit\n\n";
break;
}
}
}
while (input.compare("q"));
delete treeKey;
return 0;
}
示例9: main
int main(int argc, char **argv) {
if (argc != 2) {
fprintf(stderr, "usage: %s <tree/key/data/path>\n", *argv);
exit(-1);
}
TreeKeyIdx *treeKey = new TreeKeyIdx(argv[1]);
if (treeKey->Error()) {
treeKey->create(argv[1]);
delete treeKey;
treeKey = new TreeKeyIdx(argv[1]);
}
TreeKeyIdx root = *treeKey;
std::string input;
char line[1024];
do {
std::cout << "[" << treeKey->getText() << "] > ";
fgets(line, 1000, stdin);
input = line;
if (input.length() > 0) {
switch (input[0]) {
case 'n': printLocalName(treeKey); break;
case 's': setLocalName(treeKey); break;
case 'p': root.root(); printTree(root, treeKey); break;
case 'a': appendSibbling(treeKey); break;
case 'c': appendChild(treeKey); break;
case 'j': treeKey->nextSibling(); break;
case 'g': assurePath(treeKey); break;
case 'k': treeKey->previousSibling(); break;
case 'h': treeKey->parent(); break;
case 'l': treeKey->firstChild(); break;
case 'r': treeKey->root(); break;
case 'q': break;
case '?':
default:
std::cout << "\n p - print tree\n";
std::cout << " n - get local name\n";
std::cout << " s - set local name\n";
std::cout << " j - next sibbling\n";
std::cout << " k - previous sibbling\n";
std::cout << " h - parent\n";
std::cout << " l - first child\n";
std::cout << " r - root\n";
std::cout << " a - append sibbling\n";
std::cout << " c - append child\n";
std::cout << " u - get user data\n";
std::cout << " d - set user data\n";
std::cout << " g - goto path; create if it doesn't exist\n";
std::cout << " q - quit\n\n";
break;
}
}
}
while (input.compare("q"));
delete treeKey;
return 0;
}
示例10: deleteEntry
void RawGenBook::deleteEntry() {
TreeKeyIdx *key = ((TreeKeyIdx *)&(getTreeKey()));
key->remove();
}
示例11: _compare
int TreeKeyIdx::_compare (const TreeKeyIdx & ikey) {
return (getOffset() - ikey.getOffset());
}