Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:27:24

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_ENCODINGVALIDATOR_HPP)
0023 #define XERCESC_INCLUDE_GUARD_ENCODINGVALIDATOR_HPP
0024 
0025 // ---------------------------------------------------------------------------
0026 //  Includes
0027 // ---------------------------------------------------------------------------
0028 #include <xercesc/util/ValueHashTableOf.hpp>
0029 
0030 XERCES_CPP_NAMESPACE_BEGIN
0031 
0032 /**
0033   * A singleton class that checks whether an encoding name is a valid IANA
0034   * encoding
0035   */
0036 
0037 class XMLUTIL_EXPORT EncodingValidator {
0038 
0039 public:
0040     // -----------------------------------------------------------------------
0041     //  Validation methods
0042     // -----------------------------------------------------------------------
0043     bool isValidEncoding(const XMLCh* const encName);
0044 
0045     // -----------------------------------------------------------------------
0046     //  Instance methods
0047     // -----------------------------------------------------------------------
0048     static EncodingValidator* instance();
0049 
0050 private:
0051     // -----------------------------------------------------------------------
0052     //  Constructor and destructors
0053     // -----------------------------------------------------------------------
0054     EncodingValidator();
0055     ~EncodingValidator();
0056 
0057     // -----------------------------------------------------------------------
0058     //  Private Helpers methods
0059     // -----------------------------------------------------------------------
0060     /*
0061      *  Initializes the registry with a set of valid IANA encoding names
0062      */
0063      void initializeRegistry();
0064 
0065     // -----------------------------------------------------------------------
0066     //  Private data members
0067     //
0068     //  fEncodingRegistry
0069     //      Contains a set of IANA encoding names
0070     //
0071     //  fInstance
0072     //      An EncodingValidator singleton instance
0073     // -----------------------------------------------------------------------
0074     ValueHashTableOf<bool>*   fEncodingRegistry;
0075     static EncodingValidator* fInstance;
0076     friend class XMLInitializer;
0077 };
0078 
0079 XERCES_CPP_NAMESPACE_END
0080 
0081 #endif
0082 
0083 /**
0084   * End file EncodingValidator.hpp
0085   */