本文整理汇总了C++中TreeKeyIdx::firstChild方法的典型用法代码示例。如果您正苦于以下问题:C++ TreeKeyIdx::firstChild方法的具体用法?C++ TreeKeyIdx::firstChild怎么用?C++ TreeKeyIdx::firstChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TreeKeyIdx
的用法示例。
在下文中一共展示了TreeKeyIdx::firstChild方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: throw
StringList *SWModule_impl::getKeyChildren() throw(CORBA::SystemException) {
sword::SWKey *key = delegate->getKey();
StringList *retVal = new StringList;
int count = 0;
sword::VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
if (vkey) {
retVal->length(6);
SWBuf num;
num.appendFormatted("%d", vkey->Testament());
(*retVal)[0] = CORBA::string_dup(num.c_str());
num = "";
num.appendFormatted("%d", vkey->Book());
(*retVal)[1] = CORBA::string_dup(num.c_str());
num = "";
num.appendFormatted("%d", vkey->Chapter());
(*retVal)[2] = CORBA::string_dup(num.c_str());
num = "";
num.appendFormatted("%d", vkey->Verse());
(*retVal)[3] = CORBA::string_dup(num.c_str());
num = "";
num.appendFormatted("%d", vkey->getChapterMax());
(*retVal)[4] = CORBA::string_dup(num.c_str());
num = "";
num.appendFormatted("%d", vkey->getVerseMax());
(*retVal)[5] = CORBA::string_dup(num.c_str());
}
else {
TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key);
if (tkey) {
if (tkey->firstChild()) {
do {
count++;
}
while (tkey->nextSibling());
tkey->parent();
}
retVal->length(count);
count = 0;
if (tkey->firstChild()) {
do {
(*retVal)[count++] = CORBA::string_dup(tkey->getLocalName());
}
while (tkey->nextSibling());
tkey->parent();
}
}
}
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: 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;
}
示例4: 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;
}
示例5: getModule
/*
* Class: org_crosswire_android_sword_SWModule
* Method: getKeyChildren
* Signature: ()[Ljava/lang/String;
*/
JNIEXPORT jobjectArray JNICALL Java_org_crosswire_android_sword_SWModule_getKeyChildren
(JNIEnv *env, jobject me) {
init();
jclass clazzString = env->FindClass("java/lang/String");
jobjectArray ret;
SWModule *module = getModule(env, me);
if (module) {
sword::SWKey *key = module->getKey();
int count = 0;
sword::VerseKey *vkey = SWDYNAMIC_CAST(VerseKey, key);
if (vkey) {
ret = (jobjectArray) env->NewObjectArray(7, clazzString, NULL);
SWBuf num;
num.appendFormatted("%d", vkey->getTestament());
env->SetObjectArrayElement(ret, 0, env->NewStringUTF(assureValidUTF8(num.c_str())));
num = "";
num.appendFormatted("%d", vkey->getBook());
env->SetObjectArrayElement(ret, 1, env->NewStringUTF(assureValidUTF8(num.c_str())));
num = "";
num.appendFormatted("%d", vkey->getChapter());
env->SetObjectArrayElement(ret, 2, env->NewStringUTF(assureValidUTF8(num.c_str())));
num = "";
num.appendFormatted("%d", vkey->getVerse());
env->SetObjectArrayElement(ret, 3, env->NewStringUTF(assureValidUTF8(num.c_str())));
num = "";
num.appendFormatted("%d", vkey->getChapterMax());
env->SetObjectArrayElement(ret, 4, env->NewStringUTF(assureValidUTF8(num.c_str())));
num = "";
num.appendFormatted("%d", vkey->getVerseMax());
env->SetObjectArrayElement(ret, 5, env->NewStringUTF(assureValidUTF8(num.c_str())));
env->SetObjectArrayElement(ret, 6, env->NewStringUTF(assureValidUTF8(vkey->getBookName())));
}
else {
TreeKeyIdx *tkey = SWDYNAMIC_CAST(TreeKeyIdx, key);
if (tkey) {
if (tkey->firstChild()) {
do {
count++;
}
while (tkey->nextSibling());
tkey->parent();
}
ret = (jobjectArray) env->NewObjectArray(count, clazzString, NULL);
count = 0;
if (tkey->firstChild()) {
do {
env->SetObjectArrayElement(ret, count++, env->NewStringUTF(assureValidUTF8(tkey->getLocalName())));
}
while (tkey->nextSibling());
tkey->parent();
}
}
}
return ret;
}
}