Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:15:15

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  *
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  *
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_XMLINITIALIZER_HPP)
0023 #define XERCESC_INCLUDE_GUARD_XMLINITIALIZER_HPP
0024 
0025 #include <xercesc/util/XercesDefs.hpp>
0026 
0027 XERCES_CPP_NAMESPACE_BEGIN
0028 
0029 
0030 /**
0031   * Utilities that must be implemented in a class-specific way.
0032   *
0033   * This class contains methods that must be implemented by different
0034   * classes that have static data (class or local) that they need
0035   * to initialize when XMLPlatformUtils::Initialize is invoked.
0036   */
0037 class XMLUTIL_EXPORT XMLInitializer
0038 {
0039 protected :
0040     /** @name Initialization methods */
0041     //@{
0042 
0043     /** Perform per-class allocationa and initialization of static data
0044       *
0045       * These functions should be called from XMLPlatformUtils::Initialize.
0046       */
0047     static void initializeTransService();
0048     static void initializeStaticData();
0049 
0050     /** Perform per-class release of static data
0051       *
0052       * These functions should be called from XMLPlatformUtils::Terminate.
0053       */
0054     static void terminateStaticData();
0055     static void terminateTransService();
0056 
0057     //@}
0058 
0059     friend class XMLPlatformUtils;
0060 
0061 private :
0062     XMLInitializer();
0063     XMLInitializer(const XMLInitializer& toCopy);
0064     XMLInitializer& operator=(const XMLInitializer&);
0065 
0066 private:
0067     // Note: The name of each function should be in the form
0068     // initialize<class-name>.
0069     //
0070     // Note: In some cases order of initialization is important.
0071     //
0072 
0073     //
0074     // Initialize
0075     //
0076 
0077     // Core
0078     //
0079     static void initializeEncodingValidator();
0080     static void initializeXMLException();
0081     static void initializeXMLScanner();
0082     static void initializeXMLValidator();
0083 
0084     // Regex
0085     //
0086     static void initializeRangeTokenMap();
0087     static void initializeRegularExpression();
0088 
0089     // DTD
0090     //
0091     static void initializeDTDGrammar();
0092 
0093     // Schema
0094     //
0095     static void initializeXSDErrorReporter();
0096     static void initializeDatatypeValidatorFactory();
0097     static void initializeGeneralAttributeCheck();
0098     static void initializeXSValue();
0099     static void initializeComplexTypeInfo();
0100 
0101     // DOM
0102     //
0103     static void initializeDOMImplementationRegistry();
0104     static void initializeDOMImplementationImpl();
0105     static void initializeDOMDocumentTypeImpl();
0106     static void initializeDOMNodeListImpl();
0107     static void initializeDOMNormalizer();
0108 
0109     // XInclude
0110     //
0111     static void initializeXInclude();
0112 
0113     //
0114     // Terminate
0115     //
0116 
0117     // Core
0118     //
0119     static void terminateEncodingValidator();
0120     static void terminateXMLException();
0121     static void terminateXMLScanner();
0122     static void terminateXMLValidator();
0123 
0124     // Regex
0125     //
0126     static void terminateRangeTokenMap();
0127     static void terminateRegularExpression();
0128 
0129     // DTD
0130     //
0131     static void terminateDTDGrammar();
0132 
0133     // Schema
0134     //
0135     static void terminateXSDErrorReporter();
0136     static void terminateDatatypeValidatorFactory();
0137     static void terminateGeneralAttributeCheck();
0138     static void terminateXSValue();
0139     static void terminateComplexTypeInfo();
0140 
0141     // DOM
0142     //
0143     static void terminateDOMImplementationRegistry();
0144     static void terminateDOMImplementationImpl();
0145     static void terminateDOMDocumentTypeImpl();
0146     static void terminateDOMNodeListImpl();
0147     static void terminateDOMNormalizer();
0148 
0149     // XInclude
0150     //
0151     static void terminateXInclude();
0152 
0153     //
0154     // Extra initialization.
0155     //
0156     static void initializeDOMHeap (XMLSize_t initialHeapAllocSize,
0157                                    XMLSize_t maxHeapAllocSize,
0158                                    XMLSize_t maxSubAllocationSize);
0159 };
0160 
0161 
0162 XERCES_CPP_NAMESPACE_END
0163 
0164 #endif