Lists Home |
Date Index |
Bernd G. wrote:
> 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.