http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XMLDouble.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2001,2004 The Apache Software Foundation.
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /*
00018  * $Id: XMLDouble.hpp,v 1.9 2004/09/08 13:56:24 peiyongz Exp $
00019  * $Log: XMLDouble.hpp,v $
00020  * Revision 1.9  2004/09/08 13:56:24  peiyongz
00021  * Apache License Version 2.0
00022  *
00023  * Revision 1.8  2003/12/17 00:18:35  cargilld
00024  * Update to memory management so that the static memory manager (one used to call Initialize) is only for static data.
00025  *
00026  * Revision 1.7  2003/12/01 23:23:27  neilg
00027  * fix for bug 25118; thanks to Jeroen Witmond
00028  *
00029  * Revision 1.6  2003/09/23 18:16:07  peiyongz
00030  * Inplementation for Serialization/Deserialization
00031  *
00032  * Revision 1.5  2003/05/16 06:01:53  knoaman
00033  * Partial implementation of the configurable memory manager.
00034  *
00035  * Revision 1.4  2002/12/11 00:20:02  peiyongz
00036  * Doing businesss in value space. Converting out-of-bound value into special values.
00037  *
00038  * Revision 1.3  2002/11/04 15:22:05  tng
00039  * C++ Namespace Support.
00040  *
00041  * Revision 1.2  2002/02/20 18:17:02  tng
00042  * [Bug 5977] Warnings on generating apiDocs.
00043  *
00044  * Revision 1.1.1.1  2002/02/01 22:22:15  peiyongz
00045  * sane_include
00046  *
00047  * Revision 1.11  2001/11/28 15:39:26  peiyongz
00048  * return Type& for operator=
00049  *
00050  * Revision 1.10  2001/11/22 20:23:00  peiyongz
00051  * _declspec(dllimport) and inline warning C4273
00052  *
00053  * Revision 1.9  2001/11/19 21:33:42  peiyongz
00054  * Reorganization: Double/Float
00055  *
00056  * Revision 1.8  2001/10/26 16:37:46  peiyongz
00057  * Add thread safe code
00058  *
00059  * Revision 1.6  2001/09/27 14:54:20  peiyongz
00060  * DTV Reorganization: derived from XMLAbstractDoubleFloat
00061  *
00062  * Revision 1.5  2001/08/29 19:03:03  peiyongz
00063  * Bugzilla# 2816:on AIX 4.2, xlC 3 r ev.1, Compilation error on inline method
00064  *
00065  * Revision 1.4  2001/07/31 13:48:29  peiyongz
00066  * fValue removed
00067  *
00068  * Revision 1.3  2001/07/26 18:21:15  peiyongz
00069  * Boundary Checking
00070  *
00071  * Revision 1.2  2001/07/24 21:52:27  peiyongz
00072  * XMLDouble: move fg...String to XMLUni
00073  *
00074  * Revision 1.1  2001/07/24 13:58:11  peiyongz
00075  * XMLDouble and related supporting methods from XMLBigInteger/XMLBigDecimal
00076  *
00077  */
00078 
00079 #ifndef XML_DOUBLE_HPP
00080 #define XML_DOUBLE_HPP
00081 
00082 #include <xercesc/util/XMLAbstractDoubleFloat.hpp>
00083 
00084 XERCES_CPP_NAMESPACE_BEGIN
00085 
00086 class  XMLDouble : public XMLAbstractDoubleFloat
00087 {
00088 public:
00089 
00102     XMLDouble(const XMLCh* const strValue,
00103               MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00104 
00105     ~XMLDouble();
00106 
00119     inline static int            compareValues(const XMLDouble* const lValue
00120                                              , const XMLDouble* const rValue);
00121 
00122     /***
00123      * Support for Serialization/De-serialization
00124      ***/
00125     DECL_XSERIALIZABLE(XMLDouble)
00126 
00127     XMLDouble(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00128 
00129 protected:
00130 
00131     void                  checkBoundary(const XMLCh* const strValue);
00132 
00133 private:
00134     //
00135     // Unimplemented
00136     //
00137     // copy ctor
00138     // assignment ctor
00139     //
00140      XMLDouble(const XMLDouble& toCopy);
00141      XMLDouble& operator=(const XMLDouble& toAssign);
00142 
00143 };
00144 
00145 inline int XMLDouble::compareValues(const XMLDouble* const lValue
00146                                   , const XMLDouble* const rValue)
00147 {
00148     return XMLAbstractDoubleFloat::compareValues((const XMLAbstractDoubleFloat* const) lValue,
00149                                                  (const XMLAbstractDoubleFloat* const) rValue 
00150                                                  , ((XMLAbstractDoubleFloat*)lValue)->getMemoryManager());
00151 }
00152 
00153 XERCES_CPP_NAMESPACE_END
00154 
00155 #endif
00156 


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.