# HexBin.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Licensed to the Apache Software Foundation (ASF) under one or more
    00003  * contributor license agreements.  See the NOTICE file distributed with
    00004  * this work for additional information regarding copyright ownership.
    00005  * The ASF licenses this file to You under the Apache License, Version 2.0
    00006  * (the "License"); you may not use this file except in compliance with
    00007  * the License.  You may obtain a copy of the License at
    00008  *
    00009  *      http://www.apache.org/licenses/LICENSE-2.0
    00010  *
    00011  * Unless required by applicable law or agreed to in writing, software
    00012  * distributed under the License is distributed on an "AS IS" BASIS,
    00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00014  * See the License for the specific language governing permissions and
    00015  * limitations under the License.
    00016  */
    00017
    00018 /*
    00019  * $Id: HexBin.hpp 527149 2007-04-10 14:56:39Z amassari $
    00020  */
    00021
    00022 #if !defined(XERCESC_INCLUDE_GUARD_HEXBIN_HPP)
    00023 #define XERCESC_INCLUDE_GUARD_HEXBIN_HPP
    00024
    00025 #include <xercesc/util/PlatformUtils.hpp>
    00026
    00027 XERCES_CPP_NAMESPACE_BEGIN
    00028
    00029 class XMLUTIL_EXPORT HexBin
    00030 {
    00031 public :
    00033
    00043     static int  getDataLength(const XMLCh* const hexData);
    00044
    00054     static bool isArrayByteHex(const XMLCh* const hexData);
    00055
    00070     static XMLCh* getCanonicalRepresentation
    00071                   (
    00072                       const XMLCh*          const hexData
    00073                     ,       MemoryManager*  const manager = XMLPlatformUtils::fgMemoryManager
    00074                   );
    00075
    00092     static XMLByte* decodeToXMLByte(
    00093                          const XMLCh*          const    hexData
    00094                        ,       MemoryManager*  const    manager = XMLPlatformUtils::fgMemoryManager
    00095                         );
    00096
    00097
    00099
    00100 private :
    00101
    00102     // -----------------------------------------------------------------------
    00103     //  Helper methods
    00104     // -----------------------------------------------------------------------
    00105
    00106     static bool isHex(const XMLCh& octect);
    00107
    00108     // -----------------------------------------------------------------------
    00109     //  Unimplemented constructors and operators
    00110     // -----------------------------------------------------------------------
    00111     HexBin();
    00112     HexBin(const HexBin&);
    00113     HexBin& operator=(const HexBin&);
    00114
    00115     // -----------------------------------------------------------------------
    00116     //  Private data members
    00117     //
    00118     //  isInitialized
    00119     //
    00120     //     set once hexNumberTable is initalized.
    00121     //
    00122     //  hexNumberTable
    00123     //
    00124     //     arrany holding valid hexNumber character.
    00125     //
    00126     // -----------------------------------------------------------------------
    00127     static const XMLByte    hexNumberTable[];
    00128 };
    00129
    00130 XERCES_CPP_NAMESPACE_END
    00131
    00132 #endif