/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 create/xerces-dom.cpp

  • Committer: Suren A. Chilingaryan
  • Date: 2009-09-23 17:13:04 UTC
  • Revision ID: csa@dside.dyndns.org-20090923171304-osvtr4zqb29h11kd
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#include <stdio.h>
2
2
#include <sys/time.h>
3
3
#include <iostream>
 
4
#include <xercesc/util/XercesVersion.hpp>
4
5
#include <xercesc/util/PlatformUtils.hpp>
5
6
#include <xercesc/util/XMLString.hpp>
6
7
#include <xercesc/framework/MemBufFormatTarget.hpp>
17
18
char nsopc[64]="http://opcfoundation.org/webservices/OPCDA/";
18
19
 
19
20
DOMImplementation *dom; 
 
21
#if XERCES_VERSION_MAJOR > 2
20
22
DOMLSSerializer   *writer;
21
23
DOMLSOutput       *output;
 
24
#else
 
25
DOMWriter *writer;
 
26
#endif
 
27
 
22
28
XMLFormatTarget *xft;
23
29
 
24
30
void initXML(struct TestData *td) {
25
31
    XMLPlatformUtils::Initialize();
26
32
    dom = DOMImplementationRegistry::getDOMImplementation(X("Core"));    
27
33
 
28
 
    xft = new MemBufFormatTarget();
 
34
    if (!td->memory_bench) {
 
35
        xft = new MemBufFormatTarget();
29
36
 
30
 
    writer = ((DOMImplementationLS*)dom)->createLSSerializer();
31
 
    output = ((DOMImplementationLS*)dom)->createLSOutput();
32
 
    output->setByteStream(xft);
 
37
#if XERCES_VERSION_MAJOR > 2
 
38
        writer = ((DOMImplementationLS*)dom)->createLSSerializer();
 
39
        output = ((DOMImplementationLS*)dom)->createLSOutput();
 
40
        output->setByteStream(xft);
 
41
#else
 
42
        writer = ((DOMImplementationLS*)dom)->createDOMWriter();
 
43
#endif
 
44
    }
33
45
}
34
46
 
35
47
void releaseXML(struct TestData *td) {
36
 
    delete xft;
37
 
    delete output;
38
 
    delete writer;
 
48
    if (!td->memory_bench) {
 
49
        delete xft;
 
50
#if XERCES_VERSION_MAJOR > 2
 
51
        delete output;
 
52
#endif
 
53
        delete writer;
 
54
    }
39
55
    XMLPlatformUtils::Terminate();
40
56
}
41
57
 
138
154
        node1->appendChild(doc->createTextNode(X(str)));
139
155
    }
140
156
 
141
 
    writer->write(doc, output);
142
 
    mem=(XMLByte*)((MemBufFormatTarget*)xft)->getRawBuffer();
 
157
    if (!td->memory_bench) {
 
158
#if XERCES_VERSION_MAJOR > 2
 
159
        writer->write(doc, output);
 
160
#else
 
161
        writer->writeNode(xft,*doc);
 
162
#endif
 
163
        mem=(XMLByte*)((MemBufFormatTarget*)xft)->getRawBuffer();
143
164
 
144
 
//    if (iter==td->iterations) puts((char*)mem);
145
 
    ((MemBufFormatTarget*)xft)->reset();
 
165
//      if (iter==td->iterations) puts((char*)mem);
 
166
        ((MemBufFormatTarget*)xft)->reset();
 
167
    }
146
168
    
147
169
    doc->release();
148
170
}