The problem with your solution is that my application is mutli-threaded.
By the way, is XMLFormatter is thread safe?
If not, then I should protect the XMLFormatter and my XMLFormatTarget
using a critical section in any case.
That is,
In h file:
class...
{
CMyXmlFormatTarget m_formatTarget;
}
In constructor:
m_formatter(IP_MC_DEFAULT_ENCODING_STR,
&m_formatTarget,
XMLFormatter::StdEscapes,
XMLFormatter::UnRep_Fail);
In format function:
EnterCriticalSection()
m_formatTarget.reset()
m_formatter.formatBuf(U_ParamValue, U_ParamValueLen);
LeaveCriticalSection()
Does it look good to you?
-----Original Message-----
From: Alberto Massari [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 04, 2006 1:46 PM
To: [email protected]
Subject: RE: XMLFormatter performance
Hi Ori,
if you are concerned about performance, you can directly reuse your
CMyXmlFormatTarget and associated XMLFormatter; just add to your
CMyXMLFormatTarget a reset() method to clean up its state before (or
after) invoking formatBuf...
Alberto
At 12.21 04/10/2006 +0200, Ori Doolman wrote:
>hi,
>Anyone?
>
>
>-----Original Message-----
>From: Ori Doolman
>Sent: Tuesday, October 03, 2006 2:08 PM
>To: [email protected]
>Subject: XMLFormatter performance
>
>Hello,
>
>I wanted to know if the following code can affect my application
>performance.
>
>
>
> CMyXmlFormatTarget formatTarget();
>
> XMLFormatter
>formatter(IP_MC_DEFAULT_ENCODING_STR,
>
>
>&formatTarget,
>
>
>XMLFormatter::StdEscapes,
>
>
>XMLFormatter::UnRep_Fail);
>
> formatter.formatBuf(U_ParamValue,
>U_ParamValueLen);
>
>
>
>
>
>
>
>My fear is that creating a new transcoder per call may take relatively
a
>long time.
>
>The problem is that XMLFormatter do not accept a pre-created transcoder
>(but always allocate a new one internally) and cannot set its
>XMLFormatTarget.
>
>Therefore, the above code is called a lot of times in my application:
>
>
>
>Regards,
>
>Ori Doolman,
>
>Sigvalue Technologies.
>
>Tel: 972-9-7615119
>
>Fax: 972-9-7602373
>
>