[Home] [By Thread] [By Date] [Recent Entries]


Bernd G. wrote:
> Hi,
> 
> is there a way (an API) to stop and resume a SAX parser?
> 
> I'm writing a trace feeder for an event driven simulation in C++. Doing this, 
> I have the problem that there are two concurrent control flows: one of the 
> simulation calendar generating simulation events saying "read the next 
> element from the trace file" and the other of the SAX parser running through 
> the XML document and generating the well known SAX events.
> 
> One solution would be to put the SAX parser into an own thread and block it in 
> the StartElement method by synchronizing it with simulation events using 
> mutex variables.
> 
> A nicer solution would be, if I could stop and resume the SAX parser by 
> methods called from within the StartElement method and from outside. I would 
> prefer such a solution since the trace files are expected to be really large, 
> i.e. with millions of elements, and I worry about the performance of so many 
> task changes.

Depends on the SAX parser you are using.
A SAX-like parser that implements this feature is Expat,
http://www.libexpat.org. There are C++ SAX wrappers for it,
but I am not sure if they expose this capability.

Karl


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member