/usr/include/xercesc/util/XMLBigDecimal.hpp is in libxerces-c-dev 3.2.0+debian-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | /*
* 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: XMLBigDecimal.hpp 932889 2010-04-11 13:10:10Z borisk $
*/
#if !defined(XERCESC_INCLUDE_GUARD_XML_BIGDECIMAL_HPP)
#define XERCESC_INCLUDE_GUARD_XML_BIGDECIMAL_HPP
#include <xercesc/util/XMLNumber.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/PlatformUtils.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class XMLUTIL_EXPORT XMLBigDecimal : public XMLNumber
{
public:
/**
* Constructs a newly allocated <code>XMLBigDecimal</code> object that
* represents the value represented by the string.
*
* @param strValue the <code>String</code> to be converted to an
* <code>XMLBigDecimal</code>.
* @param manager Pointer to the memory manager to be used to
* allocate objects.
* @exception NumberFormatException if the <code>String</code> does not
* contain a parsable XMLBigDecimal.
*/
XMLBigDecimal
(
const XMLCh* const strValue
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
~XMLBigDecimal();
static int compareValues(const XMLBigDecimal* const lValue
, const XMLBigDecimal* const rValue
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
static XMLCh* getCanonicalRepresentation
(
const XMLCh* const rawData
, MemoryManager* const memMgr = XMLPlatformUtils::fgMemoryManager
);
static void parseDecimal
(
const XMLCh* const toParse
, XMLCh* const retBuffer
, int& sign
, int& totalDigits
, int& fractDigits
, MemoryManager* const manager
);
static void parseDecimal
(
const XMLCh* const toParse
, MemoryManager* const manager
);
virtual XMLCh* getRawData() const;
virtual const XMLCh* getFormattedString() const;
virtual int getSign() const;
const XMLCh* getValue() const;
unsigned int getScale() const;
unsigned int getTotalDigit() const;
inline XMLCh* getIntVal() const;
/**
* Compares this object to the specified object.
*
* @param other the object to compare with.
* @return <code>-1</code> value is less than other's
* <code>0</code> value equals to other's
* <code>+1</code> value is greater than other's
*/
int toCompare(const XMLBigDecimal& other) const;
/*
* Sets the value to be converted
*
* @param strValue the value to convert
*/
void setDecimalValue(const XMLCh* const strValue);
MemoryManager* getMemoryManager() const;
/***
* Support for Serialization/De-serialization
***/
DECL_XSERIALIZABLE(XMLBigDecimal)
XMLBigDecimal(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
private:
void cleanUp();
// -----------------------------------------------------------------------
// Unimplemented constructors and operators
// -----------------------------------------------------------------------
XMLBigDecimal(const XMLBigDecimal& other);
XMLBigDecimal& operator=(const XMLBigDecimal& other);
// -----------------------------------------------------------------------
// Private data members
//
// fSign
// sign
//
// fTotalDigits
// the total number of digits
//
// fScale
// the number of digits to the right of the decimal point
//
// fIntVal
// The value of this BigDecimal, w/o
// leading whitespace, leading zero
// decimal point
// trailing zero, trailing whitespace
//
// fRawData
// to preserve the original string used to construct this object,
// needed for pattern matching.
//
// -----------------------------------------------------------------------
int fSign;
unsigned int fTotalDigits;
unsigned int fScale;
XMLSize_t fRawDataLen;
XMLCh* fRawData;
XMLCh* fIntVal;
MemoryManager* fMemoryManager;
};
inline int XMLBigDecimal::getSign() const
{
return fSign;
}
inline const XMLCh* XMLBigDecimal::getValue() const
{
return fIntVal;
}
inline unsigned int XMLBigDecimal::getScale() const
{
return fScale;
}
inline unsigned int XMLBigDecimal::getTotalDigit() const
{
return fTotalDigits;
}
inline XMLCh* XMLBigDecimal::getRawData() const
{
return fRawData;
}
inline const XMLCh* XMLBigDecimal::getFormattedString() const
{
return fRawData;
}
inline MemoryManager* XMLBigDecimal::getMemoryManager() const
{
return fMemoryManager;
}
inline XMLCh* XMLBigDecimal::getIntVal() const
{
return fIntVal;
}
XERCES_CPP_NAMESPACE_END
#endif
|