/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk

« back to all changes in this revision

Viewing changes to parse/intel-sax.cpp

  • Committer: Suren A. Chilingaryan
  • Date: 2009-02-16 09:27:17 UTC
  • Revision ID: csa@dside.dyndns.org-20090216092717-wipyvaaw2srxhgns
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <sys/time.h>
 
3
#include "include/util/reader.h"
 
4
#include "include/util/filereader.h"
 
5
#include "include/util/memoryreader.h"
 
6
#include "include/common/defines.h"
 
7
#include "include/common/types.h"
 
8
#include "include/common/source.h"
 
9
#include "include/common/exception.h"
 
10
#include "include/xpa/sax/saxparser.h"
 
11
#include "include/xpa/sax/saxparserfactory.h"
 
12
#include "include/xpa/sax/contenthandler.h"
 
13
#include "include/xpa/sax/dtdhandler.h"
 
14
#include "include/xpa/sax/entityresolver.h"
 
15
#include "include/xpa/sax/lexicalhandler.h"
 
16
#include "include/xpa/sax/locator2.h"
 
17
 
 
18
#include "tools.h"
 
19
 
 
20
using namespace std;
 
21
INTEL_XML_NAMESPACE_USE
 
22
INTEL_XML_UTIL_NAMESPACE_USE
 
23
INTEL_XML_PARSE_SAX_NAMESPACE_USE
 
24
 
 
25
class DocHandlers : public ContentHandler/*, public DTDHandler, public EntityResolver, public LexicalHandler*/ {
 
26
 public:
 
27
    void startElement(unsigned int namespaceTag, unsigned int elemNameCount, const XMLChar* elemName, unsigned int nAttribute, SAXAttribute** attrs);
 
28
    void endElement();
 
29
    void characters(unsigned int count, const XMLChar* string, bool more);
 
30
    void startNamespace(unsigned int newNamespaceTag, unsigned int prefixCount, const XMLChar* prefixString, unsigned int uriCount,const XMLChar* uriString);
 
31
    void endNamespace(unsigned int namespaceTag);
 
32
    void startDocument();
 
33
    void endDocument();
 
34
    void pi(unsigned int targetCount, const XMLChar* targetString, unsigned int dataCount, const XMLChar* dataString);
 
35
    void setDocumentLocator(Locator* locator);
 
36
    void skippedEntity(unsigned int count, const XMLChar* name);
 
37
};
 
38
 
 
39
void DocHandlers::startElement(unsigned int namespaceTag, unsigned int elemNameCount, const XMLChar* elemName, unsigned int nAttribute, SAXAttribute** attrs) {
 
40
    return;
 
41
}
 
42
 
 
43
void DocHandlers::endElement() {
 
44
    return;
 
45
}
 
46
 
 
47
void DocHandlers::characters(unsigned int count, const XMLChar* string, bool more) {
 
48
    return;
 
49
}
 
50
void DocHandlers::startNamespace(unsigned int newNamespaceTag, unsigned int prefixCount, const XMLChar* prefixString, unsigned int uriCount,const XMLChar* uriString) {
 
51
    return;
 
52
}
 
53
void DocHandlers::endNamespace(unsigned int namespaceTag) {
 
54
    return;
 
55
}
 
56
void DocHandlers::startDocument() {
 
57
}
 
58
void DocHandlers::endDocument() {
 
59
}
 
60
void DocHandlers::setDocumentLocator(Locator* locator) {
 
61
}
 
62
void DocHandlers::skippedEntity(unsigned int count, const XMLChar* name) {
 
63
}
 
64
void DocHandlers::pi(unsigned int targetCount, const XMLChar* targetString, unsigned int dataCount, const XMLChar* dataString) {
 
65
}
 
66
 
 
67
SAXParserFactory* saximpl;
 
68
SAXParser *parser;
 
69
DocHandlers *handler;
 
70
 
 
71
void initXML(struct TestData *td) {
 
72
    saximpl = SAXParserFactory::newInstance();
 
73
    parser = saximpl->createSAXParser();
 
74
 
 
75
    handler=new DocHandlers;
 
76
    parser->setContentHandler(handler);
 
77
    //parser->setDTDHandler(&sax2CoreDumper);
 
78
    //parser->setLexicalHandler(&sax2CoreDumper);
 
79
    //parser->setEntityResolver(&sax2CoreDumper);
 
80
}
 
81
 
 
82
void releaseXML(struct TestData *td) {
 
83
    delete handler;
 
84
    delete parser;
 
85
    delete saximpl;
 
86
}
 
87
 
 
88
void parseXML(struct TestData *td, unsigned long iter) {
 
89
    const char id[5]="ID1\0";
 
90
 
 
91
    MemoryReader *buffer;
 
92
    StreamSource *ss;
 
93
 
 
94
    buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
 
95
    ss = new StreamSource(buffer, id);
 
96
//    buffer->setCopyBufToStream(false);
 
97
    parser->parse(ss);
 
98
    delete ss;
 
99
    delete buffer;
 
100
}
 
101
 
 
102
 
 
103
int main(int argc, char *argv[]) {
 
104
    return Test(argc,argv);
 
105
}