knoaman     2004/10/20 08:18:36

  Modified:    c/src/xercesc/util EncodingValidator.cpp
                        EncodingValidator.hpp Makefile.in PanicHandler.hpp
                        PlatformUtils.cpp PlatformUtils.hpp
                        XMLException.cpp
  Added:       c/src/xercesc/util XMLInitializer.cpp XMLInitializer.hpp
  Log:
  Allow option of initializing static data in XMLPlatformUtils::Initialize
  
  Revision  Changes    Path
  1.8       +12 -0     xml-xerces/c/src/xercesc/util/EncodingValidator.cpp
  
  Index: EncodingValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/EncodingValidator.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- EncodingValidator.cpp     8 Sep 2004 13:56:21 -0000       1.7
  +++ EncodingValidator.cpp     20 Oct 2004 15:18:35 -0000      1.8
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2004/10/20 15:18:35  knoaman
  + * Allow option of initializing static data in XMLPlatformUtils::Initialize
  + *
    * Revision 1.7  2004/09/08 13:56:21  peiyongz
    * Apache License Version 2.0
    *
  @@ -46,6 +49,7 @@
   #include <xercesc/internal/IANAEncodings.hpp>
   #include <xercesc/util/PlatformUtils.hpp>
   #include <xercesc/util/XMLRegisterCleanup.hpp>
  +#include <xercesc/util/XMLInitializer.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -79,6 +83,14 @@
           }
       }
       return *sEncValMutex;
  +}
  +
  +void XMLInitializer::initializeEncodingValidator()
  +{
  +    EncodingValidator::fInstance = new EncodingValidator();
  +    if (EncodingValidator::fInstance) {
  +        instanceCleanup.registerCleanup(EncodingValidator::reinitInstance);
  +    }
   }
   
   // ---------------------------------------------------------------------------
  
  
  
  1.5       +2 -1      xml-xerces/c/src/xercesc/util/EncodingValidator.hpp
  
  Index: EncodingValidator.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/EncodingValidator.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EncodingValidator.hpp     8 Sep 2004 13:56:21 -0000       1.4
  +++ EncodingValidator.hpp     20 Oct 2004 15:18:35 -0000      1.5
  @@ -77,6 +77,7 @@
       // -----------------------------------------------------------------------
       ValueHashTableOf<bool>*   fEncodingRegistry;
       static EncodingValidator* fInstance;
  +    friend class XMLInitializer;
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.45      +5 -0      xml-xerces/c/src/xercesc/util/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Makefile.in,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- Makefile.in       8 Sep 2004 13:56:22 -0000       1.44
  +++ Makefile.in       20 Oct 2004 15:18:35 -0000      1.45
  @@ -16,6 +16,9 @@
   #
   #
   # $Log$
  +# Revision 1.45  2004/10/20 15:18:35  knoaman
  +# Allow option of initializing static data in XMLPlatformUtils::Initialize
  +#
   # Revision 1.44  2004/09/08 13:56:22  peiyongz
   # Apache License Version 2.0
   #
  @@ -532,6 +535,7 @@
        XMLFloat.hpp \
        XMLIBM1047Transcoder.hpp \
        XMLIBM1140Transcoder.hpp \
  +     XMLInitializer.hpp \
        XMLInteger.hpp \
        XMLMsgLoader.hpp \
        XMLNetAccessor.hpp \
  @@ -610,6 +614,7 @@
        XMLFloat.$(TO) \
        XMLIBM1047Transcoder.$(TO) \
        XMLIBM1140Transcoder.$(TO) \
  +     XMLInitializer.$(TO) \
        XMLMsgLoader.$(TO) \
        XMLNumber.$(TO) \
        XMLRegisterCleanup.$(TO) \
  
  
  
  1.8       +5 -1      xml-xerces/c/src/xercesc/util/PanicHandler.hpp
  
  Index: PanicHandler.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/PanicHandler.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- PanicHandler.hpp  8 Sep 2004 13:56:22 -0000       1.7
  +++ PanicHandler.hpp  20 Oct 2004 15:18:35 -0000      1.8
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2004/10/20 15:18:35  knoaman
  + * Allow option of initializing static data in XMLPlatformUtils::Initialize
  + *
    * Revision 1.7  2004/09/08 13:56:22  peiyongz
    * Apache License Version 2.0
    *
  @@ -85,6 +88,7 @@
           , Panic_CantLoadMsgDomain
           , Panic_SynchronizationErr
           , Panic_SystemInit
  +        , Panic_AllStaticInitErr
   
           , PanicReasons_Count
       };
  
  
  
  1.19      +9 -1      xml-xerces/c/src/xercesc/util/PlatformUtils.cpp
  
  Index: PlatformUtils.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/PlatformUtils.cpp,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- PlatformUtils.cpp 8 Sep 2004 13:56:22 -0000       1.18
  +++ PlatformUtils.cpp 20 Oct 2004 15:18:35 -0000      1.19
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.19  2004/10/20 15:18:35  knoaman
  + * Allow option of initializing static data in XMLPlatformUtils::Initialize
  + *
    * Revision 1.18  2004/09/08 13:56:22  peiyongz
    * Apache License Version 2.0
    *
  @@ -152,6 +155,7 @@
   #include <xercesc/util/RuntimeException.hpp>
   #include <xercesc/util/XMLRegisterCleanup.hpp>
   #include <xercesc/util/DefaultPanicHandler.hpp>
  +#include <xercesc/util/XMLInitializer.hpp>
   #include <xercesc/internal/MemoryManagerImpl.hpp>
   #include <xercesc/internal/MemoryManagerArrayImpl.hpp>
   
  @@ -204,7 +208,8 @@
   void XMLPlatformUtils::Initialize(const char*          const locale 
                                   , const char*          const nlsHome
                                   ,       PanicHandler*  const panicHandler
  -                                ,       MemoryManager* const memoryManager)
  +                                ,       MemoryManager* const memoryManager
  +                                ,       bool                 toInitStatics)
   {
       //
       //  Effects of overflow:
  @@ -316,6 +321,9 @@
       XMLMsgLoader::setLocale(locale);
       XMLMsgLoader::setNLSHome(nlsHome);
   
  +    if (toInitStatics) {
  +        XMLInitializer::InitializeAllStaticData();
  +    }
   }
   
   
  
  
  
  1.28      +3 -2      xml-xerces/c/src/xercesc/util/PlatformUtils.hpp
  
  Index: PlatformUtils.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/PlatformUtils.hpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- PlatformUtils.hpp 8 Sep 2004 13:56:22 -0000       1.27
  +++ PlatformUtils.hpp 20 Oct 2004 15:18:35 -0000      1.28
  @@ -164,7 +164,8 @@
       static void Initialize(const char*          const locale = 
XMLUni::fgXercescDefaultLocale
                            , const char*          const nlsHome = 0
                            ,       PanicHandler*  const panicHandler = 0
  -                         ,       MemoryManager* const memoryManager = 0);
  +                         ,       MemoryManager* const memoryManager = 0
  +                         ,       bool                 toInitStatics = false);
   
       /** Perform per-process parser termination
         *
  
  
  
  1.16      +10 -1     xml-xerces/c/src/xercesc/util/XMLException.cpp
  
  Index: XMLException.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLException.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XMLException.cpp  8 Sep 2004 13:56:24 -0000       1.15
  +++ XMLException.cpp  20 Oct 2004 15:18:35 -0000      1.16
  @@ -29,6 +29,7 @@
   #include <xercesc/util/XMLRegisterCleanup.hpp>
   #include <xercesc/util/XMLString.hpp>
   #include <xercesc/util/XMLUniDefs.hpp>
  +#include <xercesc/util/XMLInitializer.hpp>
   
   
   XERCES_CPP_NAMESPACE_BEGIN
  @@ -94,6 +95,14 @@
   
       // We got it, so return it
       return *sMsgLoader;
  +}
  +
  +void XMLInitializer::initializeExceptionMsgLoader()
  +{
  +    sMsgLoader = XMLPlatformUtils::loadMsgSet(XMLUni::fgExceptDomain);
  +    if (sMsgLoader) {
  +        msgLoaderCleanup.registerCleanup(XMLException::reinitMsgLoader);
  +    }
   }
   
   // ---------------------------------------------------------------------------
  
  
  
  1.1                  xml-xerces/c/src/xercesc/util/XMLInitializer.cpp
  
  Index: XMLInitializer.cpp
  ===================================================================
  /*
   * Copyright 2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /*
   * $Log: XMLInitializer.cpp,v $
   * Revision 1.1  2004/10/20 15:18:35  knoaman
   * Allow option of initializing static data in XMLPlatformUtils::Initialize
   *
   */
  
  
  // ---------------------------------------------------------------------------
  //  Includes
  // ---------------------------------------------------------------------------
  #include <xercesc/util/XMLInitializer.hpp>
  #include <xercesc/util/PlatformUtils.hpp>
  
  XERCES_CPP_NAMESPACE_BEGIN
  
  // ---------------------------------------------------------------------------
  //  XMLInitializer: Initialization methods
  // ---------------------------------------------------------------------------
  void XMLInitializer::InitializeAllStaticData()
  {
      try {
          initializeMsgLoader4DOM();
          initializeDOMImplementationImpl();
          initializeDOMImplementationRegistry();
          initializeEmptyNodeList();
          initializeDOMNormalizerMsgLoader();
          initializeValidatorMsgLoader();
          initializeXSValueStatics();
          initializeScannerMsgLoader();
          initializeEncodingValidator();
          initializeExceptionMsgLoader();
          initializeDVFactory();
          initializeGeneralAttrCheckMap();
          initializeXSDErrReporterMsgLoader();
          initializeDTDGrammarDfltEntities();
          initializeRangeTokenMap();
          initializeAnyType();
      }
      catch(...) {
          XMLPlatformUtils::panic(PanicHandler::Panic_AllStaticInitErr);
      }
  }
  
  
  XERCES_CPP_NAMESPACE_END
  
  
  
  1.1                  xml-xerces/c/src/xercesc/util/XMLInitializer.hpp
  
  Index: XMLInitializer.hpp
  ===================================================================
  /*
   * Copyright 2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  /*
   * $Id: XMLInitializer.hpp,v 1.1 2004/10/20 15:18:35 knoaman Exp $
   */
  
  
  #if !defined(XMLINITIALIZER_HPP)
  #define XMLINITIALIZER_HPP
  
  #include <xercesc/util/XercesDefs.hpp>
  
  XERCES_CPP_NAMESPACE_BEGIN
  
  
  /**
    * Utilities that must be implemented in a class-specific way.
    *
    * This class contains methods that must be implemented by different
    * classes that have static data (class or local) that they need
    * to initialize when XMLPlatformUtils::Initialize is invoked.
    */
  class XMLUTIL_EXPORT XMLInitializer
  {
  protected :
      /** @name Initialization methods */
      //@{
  
      /** Perform per-class initialization of static data
        *
        * Initialization <b>must</b> be called in XMLPlatformUtils::Initialize.
        */
      static void InitializeAllStaticData();
  
      //@}
  
      friend class XMLPlatformUtils;
  
  private :
      // -----------------------------------------------------------------------
      //  Unimplemented constructors and operators
      // -----------------------------------------------------------------------
      XMLInitializer();
      XMLInitializer(const XMLInitializer& toCopy);
      XMLInitializer& operator=(const XMLInitializer&);
  
      /** @name Private static initialization methods */
      //@{
  
      static void initializeMsgLoader4DOM();
      static void initializeDOMImplementationImpl();
      static void initializeDOMImplementationRegistry();
      static void initializeEmptyNodeList();
      static void initializeDOMNormalizerMsgLoader();
      static void initializeValidatorMsgLoader();
      static void initializeXSValueStatics();
      static void initializeScannerMsgLoader();
      static void initializeEncodingValidator();
      static void initializeExceptionMsgLoader();
      static void initializeDVFactory();
      static void initializeGeneralAttrCheckMap();
      static void initializeXSDErrReporterMsgLoader();
      static void initializeDTDGrammarDfltEntities();
      static void initializeRangeTokenMap();
      static void initializeAnyType();
  
      //@}
  };
  
  
  XERCES_CPP_NAMESPACE_END
  
  #endif
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to