blob: 65ffd871cf90ee13b6c99865652ab992bef286a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
#include <qstringlist.h>
#include <kaboutdata.h>
#include <kapplication.h>
#include <kdebug.h>
#include <klocale.h>
#include <kcmdlineargs.h>
#include "docmetainfo.h"
#include "docentrytraverser.h"
using namespace KHC;
class MyTraverser : public DocEntryTraverser
{
public:
MyTraverser( const QString &indent = "" ) : mIndent( indent ) {}
void process( DocEntry *entry )
{
kdDebug() << mIndent << entry->name() << " - WEIGHT: " << entry->weight()
<< endl;
#if 0
if ( entry->parent() ) kdDebug() << mIndent << " PARENT: "
<< entry->parent()->name() << endl;
if ( entry->nextSibling() ) kdDebug() << mIndent << " NEXT: "
<< entry->nextSibling()->name() << endl;
#endif
}
DocEntryTraverser *createChild( DocEntry * )
{
return new MyTraverser( mIndent + " " );
}
private:
QString mIndent;
};
class LinearTraverser : public DocEntryTraverser
{
public:
void process( DocEntry *entry )
{
kdDebug() << "PROCESS: " << entry->name() << endl;
}
DocEntryTraverser *createChild( DocEntry * )
{
return this;
}
DocEntryTraverser *parentTraverser()
{
return this;
}
void deleteTraverser() {}
};
class AsyncTraverser : public DocEntryTraverser
{
public:
AsyncTraverser( const QString &indent = "" ) : mIndent( indent )
{
// kdDebug() << "AsyncTraverser()" << endl;
}
~AsyncTraverser()
{
// kdDebug() << "~AsyncTraverser()" << endl;
}
void process( DocEntry *entry )
{
kdDebug() << mIndent << entry->name() << endl;
}
DocEntryTraverser *createChild( DocEntry * )
{
// kdDebug() << "AsyncTraverser::childTraverser()" << endl;
return new AsyncTraverser( mIndent + " " );
}
private:
QString mIndent;
};
int main(int argc,char **argv)
{
KAboutData aboutData("testmetainfo","TestDocMetaInfo","0.1");
KCmdLineArgs::init(argc,argv,&aboutData);
KApplication app;
kdDebug() << "Scanning Meta Info" << endl;
QStringList langs;
langs << "en";
// langs << "de";
DocMetaInfo::self()->scanMetaInfo( langs );
kdDebug() << "My TRAVERSE start" << endl;
MyTraverser t;
DocMetaInfo::self()->startTraverseEntries( &t );
kdDebug() << "My TRAVERSE end" << endl;
kdDebug() << "Linear TRAVERSE start" << endl;
LinearTraverser l;
DocMetaInfo::self()->startTraverseEntries( &l );
kdDebug() << "Linear TRAVERSE end" << endl;
kdDebug() << "Async TRAVERSE start" << endl;
AsyncTraverser a;
DocMetaInfo::self()->startTraverseEntries( &a );
kdDebug() << "Async TRAVERSE end" << endl;
}
// vim:ts=2:sw=2:et
|