You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/11/12 18:50:07 UTC

cvs commit: xml-xerces/c/src/xercesc/dom/impl DOMImplementationImpl.cpp

tng         2002/11/12 09:50:07

  Modified:    c/src/xercesc/dom/impl DOMImplementationImpl.cpp
  Log:
  DOM Message: new non-standard extension DOMImplementation::loadDOMExceptionMsg for
  those who are interested in the default error text message for the correspond Exception Code.
  
  Revision  Changes    Path
  1.11      +68 -15    xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp
  
  Index: DOMImplementationImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DOMImplementationImpl.cpp	4 Nov 2002 15:07:34 -0000	1.10
  +++ DOMImplementationImpl.cpp	12 Nov 2002 17:50:07 -0000	1.11
  @@ -70,6 +70,7 @@
   #include <xercesc/util/XMLUniDefs.hpp>
   #include <xercesc/util/XMLRegisterCleanup.hpp>
   #include <xercesc/util/XMLStringTokenizer.hpp>
  +#include <xercesc/util/XMLDOMMsg.hpp>
   #include <xercesc/parsers/DOMBuilderImpl.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
  @@ -81,12 +82,6 @@
   //                     (Static constructors can not be safely used because
   //                      of order of initialization dependencies.)
   // ------------------------------------------------------------
  -
  -
  -static DOMImplementationImpl    *gDomimp;   // Points to the singleton instance
  -                                            //  of DOMImplementation that is returnedreturned
  -                                            //  by any call to getImplementation().
  -
   static const XMLCh  gXML[] =      // Points to "XML"
           {chLatin_X, chLatin_M, chLatin_L, chNull};
   
  @@ -108,8 +103,45 @@
   
   
   // -----------------------------------------------------------------------
  -//  Reset the singleton DOMImplementationImpl
  +//  Message Loader for DOM
   // -----------------------------------------------------------------------
  +static XMLMsgLoader             *gMsgLoader4DOM;   // Points to the singleton instance
  +
  +static void reinitMsgLoader4DOM()
  +{
  +	delete gMsgLoader4DOM;
  +	gMsgLoader4DOM = 0;
  +}
  +
  +XMLMsgLoader* getMsgLoader4DOM() {
  +	static XMLRegisterCleanup msgLoader4DOMCleanup;
  +
  +    if (gMsgLoader4DOM == 0)
  +    {
  +        XMLMsgLoader* t = XMLPlatformUtils::loadMsgSet(XMLUni::fgXMLDOMMsgDomain);
  +        if (!t)
  +            XMLPlatformUtils::panic(XMLPlatformUtils::Panic_CantLoadMsgDomain);
  +        else {
  +            if (XMLPlatformUtils::compareAndSwap((void **)&gMsgLoader4DOM, t, 0) != 0)
  +            {
  +                delete t;
  +            }
  +            else
  +            {
  +                msgLoader4DOMCleanup.registerCleanup(reinitMsgLoader4DOM);
  +            }
  +        }
  +    }
  +    return gMsgLoader4DOM;
  +};
  +
  +// -----------------------------------------------------------------------
  +//  Singleton DOMImplementationImpl
  +// -----------------------------------------------------------------------
  +static DOMImplementationImpl    *gDomimp;   // Points to the singleton instance
  +                                            //  of DOMImplementation that is returnedreturned
  +                                            //  by any call to getImplementation().
  +
   static void reinitImplementation()
   {
   	delete gDomimp;
  @@ -182,7 +214,6 @@
   
   
   //Introduced in DOM Level 2
  -
   DOMDocumentType *DOMImplementationImpl::createDocumentType(const XMLCh *qualifiedName,
   	const XMLCh * publicId, const XMLCh *systemId)
   {
  @@ -199,18 +230,18 @@
   }
   
   
  -// Non-standard extension
  -DOMDocument *DOMImplementationImpl::createDocument()
  -{
  -        return new DOMDocumentImpl();
  -}
  -
   //Introduced in DOM Level 3
   DOMImplementation* DOMImplementationImpl::getInterface(const XMLCh* feature){
       throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
       return 0;
   }
   
  +// Non-standard extension
  +DOMDocument *DOMImplementationImpl::createDocument()
  +{
  +        return new DOMDocumentImpl();
  +}
  +
   //
   //  DOMImplementation::getImplementation.  DOMImplementation is supposed to
   //                                              be a pure interface class.  This one static
  @@ -218,6 +249,28 @@
   DOMImplementation *DOMImplementation::getImplementation()
   {
       return (DOMImplementation*) DOMImplementationImpl::getDOMImplementationImpl();
  +}
  +
  +bool DOMImplementation::loadDOMExceptionMsg
  +(
  +    const   DOMException::ExceptionCode  msgToLoad
  +    ,       XMLCh* const                 toFill
  +    , const unsigned int                 maxChars
  +)
  +{
  +    // load the text, the msgToLoad+XMLDOMMsgs::F_LowBounds is the corresponding XMLDOMMsg Code
  +    return getMsgLoader4DOM()->loadMsg(msgToLoad+XMLDOMMsg::F_LowBounds, toFill, maxChars);
  +}
  +
  +bool DOMImplementation::loadDOMExceptionMsg
  +(
  +    const   DOMRangeException::RangeExceptionCode  msgToLoad
  +    ,       XMLCh* const                           toFill
  +    , const unsigned int                           maxChars
  +)
  +{
  +    // load the text, the XMLDOMMsgs::F_HighBounds-msgToLoad is the corresponding XMLDOMMsg Code
  +    return getMsgLoader4DOM()->loadMsg(XMLDOMMsg::F_HighBounds-msgToLoad, toFill, maxChars);
   }
   
   // ------------------------------------------------------------
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org