/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 xsl/intel-dom.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
 
 
4
#include <iostream>
 
5
//-#include <strstream>
 
6
#include <fstream>
 
7
#include <sstream>
 
8
 
 
9
#include "include/util/reader.h"
 
10
#include "include/util/filereader.h"
 
11
#include "include/util/memoryreader.h"
 
12
#include "include/common/defines.h"
 
13
#include "include/common/types.h"
 
14
#include "include/common/source.h"
 
15
#include "include/common/exception.h"
 
16
#include "include/xpa/dom/dom.h"
 
17
 
 
18
#include "include/xslta/transform.h"
 
19
#include "include/util/memorywriter.h"
 
20
#include "include/util/filewriter.h"
 
21
#include "include/util/stdoutwriter.h"
 
22
 
 
23
 
 
24
//#define PARSE_DOM /* Slower */
 
25
 
 
26
#include "tools2.h"
 
27
 
 
28
INTEL_XML_NAMESPACE_USE
 
29
INTEL_XML_UTIL_NAMESPACE_USE
 
30
INTEL_XML_PARSE_DOM_NAMESPACE_USE
 
31
INTEL_XML_PACKAGE_NAMESPACE_USE_ALL
 
32
 
 
33
 
 
34
DOMImplementationFactory* domfactory;
 
35
DOMImplementation* domimpl;
 
36
DOMParser* parser;
 
37
 
 
38
TransformFactory* factory;
 
39
StreamSource    *stylesheet;
 
40
Templates*      templates;
 
41
Transformer*    transformer;
 
42
 
 
43
MemoryReader *xslbuffer;
 
44
 
 
45
#define outsize MAXOUTSIZE
 
46
char *out;
 
47
 
 
48
 
 
49
void initXML(struct TestData *td) {
 
50
    domfactory = DOMImplementationFactory::newInstance();
 
51
    domimpl = domfactory->getDOMImplementation();
 
52
    parser = domimpl->createDOMParser();
 
53
    out = new char[outsize+1];
 
54
}
 
55
 
 
56
void initXML_Transformation(struct TestData *td) {
 
57
    factory = TransformFactory::newInstance();
 
58
 
 
59
    xslbuffer= MemoryReader::createMemoryReader(td->xsl,td->xsllen);
 
60
    stylesheet = new StreamSource(xslbuffer);
 
61
 
 
62
    templates = factory->newTemplates(stylesheet);
 
63
    transformer = templates->newTransformer();
 
64
}
 
65
 
 
66
void releaseXML(struct TestData *td) {
 
67
    delete out;
 
68
    
 
69
    templates->releaseTransformer(transformer);
 
70
    factory->releaseTemplates(templates);
 
71
    delete xslbuffer;
 
72
    delete stylesheet;
 
73
    domimpl->releaseDOMParser(parser);
 
74
    DOMImplementationFactory::releaseInstance(domfactory);
 
75
}
 
76
 
 
77
 
 
78
 
 
79
void parseXML(struct TestData *td, unsigned long iter) {
 
80
    Document* doc = NULL;
 
81
 
 
82
    MemoryReader *buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
 
83
    StreamSource *ss = new StreamSource(buffer);
 
84
    doc = parser->parse(ss);
 
85
    delete ss;
 
86
    delete buffer;
 
87
 
 
88
    domimpl->releaseDocument(doc);
 
89
}
 
90
 
 
91
void transformXML(struct TestData *td, unsigned long iter) {
 
92
    Document* doc = NULL;
 
93
 
 
94
    MemoryReader *buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
 
95
    StreamSource *ss = new StreamSource(buffer);
 
96
 
 
97
    MemoryWriter *output = MemoryWriter::createMemoryWriter(out, outsize);
 
98
    StreamResult *os = new StreamResult(output);
 
99
    transformer->transform(ss, os);
 
100
 
 
101
    MemoryReader::releaseMemoryReader(buffer);
 
102
    delete ss;
 
103
 
 
104
//    if (iter==td->iterations) puts(out);
 
105
 
 
106
    delete os;
 
107
    MemoryWriter::releaseMemoryWriter(output);
 
108
}
 
109
 
 
110
 
 
111
int main(int argc, char *argv[]) {
 
112
    return Test(argc,argv);
 
113
}