bzr branch
http://darksoft.org/webbzr/xmlbench/trunk
1
by Suren A. Chilingaryan
Initial import |
1 |
#include <stdio.h> |
2 |
#include <sys/time.h> |
|
3 |
#include <xercesc/util/PlatformUtils.hpp> |
|
4 |
#include <xercesc/parsers/SAXParser.hpp> |
|
5 |
#include <xercesc/framework/MemBufInputSource.hpp> |
|
6 |
#include <xercesc/sax/DocumentHandler.hpp> |
|
7 |
#include <xercesc/sax/HandlerBase.hpp> |
|
8 |
||
9 |
||
10 |
#include "tools.h" |
|
11 |
||
12 |
#if defined(XERCES_HAS_CPP_NAMESPACE)
|
|
13 |
XERCES_CPP_NAMESPACE_USE
|
|
14 |
#endif
|
|
15 |
||
16 |
class DocHandlers : public HandlerBase { |
|
17 |
public: |
|
18 |
void startElement(const XMLCh* const name, AttributeList& attributes); |
|
19 |
void endElement(const XMLCh* const name); |
|
20 |
void characters(const XMLCh* const text, const unsigned int len); |
|
21 |
void resetDocument(); |
|
22 |
};
|
|
23 |
||
24 |
void DocHandlers::startElement(const XMLCh* const name, AttributeList& attributes) { |
|
25 |
return; |
|
26 |
}
|
|
27 |
||
28 |
void DocHandlers::endElement(const XMLCh* const name) { |
|
29 |
return; |
|
30 |
}
|
|
31 |
||
32 |
void DocHandlers::characters(const XMLCh* const text, const unsigned int len) { |
|
33 |
return; |
|
34 |
}
|
|
35 |
||
36 |
void DocHandlers::resetDocument() { |
|
37 |
return; |
|
38 |
}
|
|
39 |
||
40 |
SAXParser *parser; |
|
41 |
DocHandlers *handler; |
|
42 |
||
43 |
void initXML(struct TestData *td) { |
|
44 |
XMLPlatformUtils::Initialize(); |
|
45 |
parser=new SAXParser; |
|
46 |
handler=new DocHandlers; |
|
47 |
parser->setDocumentHandler(handler); |
|
48 |
}
|
|
49 |
||
50 |
void releaseXML(struct TestData *td) { |
|
51 |
delete handler; |
|
52 |
delete parser; |
|
53 |
XMLPlatformUtils::Terminate(); |
|
54 |
}
|
|
55 |
||
56 |
void parseXML(struct TestData *td, unsigned long iter) { |
|
57 |
const char id[5]="ID1\0"; |
|
58 |
MemBufInputSource *buffer; |
|
59 |
||
60 |
buffer=new MemBufInputSource((XMLByte*)td->xml,td->xmllen,(const char*)&id); |
|
61 |
buffer->setCopyBufToStream(false); |
|
62 |
parser->parse(*buffer); |
|
63 |
delete buffer; |
|
64 |
}
|
|
65 |
||
66 |
||
67 |
int main(int argc, char *argv[]) { |
|
68 |
return Test(argc,argv); |
|
69 |
}
|