blob: 3dcf85a88648f979e8181178c178aa9525affdbf [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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$
*/
#if !defined(XERCESC_INCLUDE_GUARD_XMLINITIALIZER_HPP)
#define XERCESC_INCLUDE_GUARD_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 allocationa and initialization of static data
*
* These functions should be called from XMLPlatformUtils::Initialize.
*/
static void initializeTransService();
static void initializeStaticData();
/** Perform per-class release of static data
*
* These functions should be called from XMLPlatformUtils::Terminate.
*/
static void terminateStaticData();
static void terminateTransService();
//@}
friend class XMLPlatformUtils;
private :
XMLInitializer();
XMLInitializer(const XMLInitializer& toCopy);
XMLInitializer& operator=(const XMLInitializer&);
private:
// Note: The name of each function should be in the form
// initialize<class-name>.
//
// Note: In some cases order of initialization is important.
//
//
// Initialize
//
// Core
//
static void initializeEncodingValidator();
static void initializeXMLException();
static void initializeXMLScanner();
static void initializeXMLValidator();
// Regex
//
static void initializeRangeTokenMap();
static void initializeRegularExpression();
// DTD
//
static void initializeDTDGrammar();
// Schema
//
static void initializeXSDErrorReporter();
static void initializeDatatypeValidatorFactory();
static void initializeGeneralAttributeCheck();
static void initializeXSValue();
static void initializeComplexTypeInfo();
// DOM
//
static void initializeDOMImplementationRegistry();
static void initializeDOMImplementationImpl();
static void initializeDOMDocumentTypeImpl();
static void initializeDOMNodeListImpl();
static void initializeDOMNormalizer();
// XInclude
//
static void initializeXInclude();
//
// Terminate
//
// Core
//
static void terminateEncodingValidator();
static void terminateXMLException();
static void terminateXMLScanner();
static void terminateXMLValidator();
// Regex
//
static void terminateRangeTokenMap();
static void terminateRegularExpression();
// DTD
//
static void terminateDTDGrammar();
// Schema
//
static void terminateXSDErrorReporter();
static void terminateDatatypeValidatorFactory();
static void terminateGeneralAttributeCheck();
static void terminateXSValue();
static void terminateComplexTypeInfo();
// DOM
//
static void terminateDOMImplementationRegistry();
static void terminateDOMImplementationImpl();
static void terminateDOMDocumentTypeImpl();
static void terminateDOMNodeListImpl();
static void terminateDOMNormalizer();
// XInclude
//
static void terminateXInclude();
//
// Extra initialization.
//
static void initializeDOMHeap (XMLSize_t initialHeapAllocSize,
XMLSize_t maxHeapAllocSize,
XMLSize_t maxSubAllocationSize);
};
XERCES_CPP_NAMESPACE_END
#endif