22 #if !defined(XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP) 23 #define XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP 70 inline void setBuffer(
const XMLCh*
const);
104 void parseDateTime();
116 void parseMonthDay();
118 void parseYearMonth();
120 void parseDuration();
157 static int compareResult(
int 171 static inline int getRetVal(
int,
int);
179 inline void assertBuffer()
const;
184 inline bool initParser();
186 inline bool isNormalized()
const;
200 void parseTimeZone();
210 ,
const XMLCh ch)
const;
215 int parseIntYear(
const XMLSize_t end)
const;
217 double parseMiliSecond(
const XMLSize_t start
224 void validateDateTime()
const;
230 int fillYearString(
XMLCh*& ptr,
int value)
const;
232 void searchMiliSeconds(
XMLCh*& miliStartPtr,
XMLCh*& miliEndPtr)
const;
237 bool operator==(
const XMLDateTime& toCompare)
const;
257 int fValue[TOTAL_SIZE];
258 int fTimeZone[TIMEZONE_ARRAYSIZE];
278 for (; fEnd > 0; fEnd--)
286 if (fEnd > fBufferMaxLen)
288 fMemoryManager->deallocate(fBuffer);
289 fBufferMaxLen = fEnd + 8;
290 fBuffer = (
XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) *
sizeof(
XMLCh));
293 memcpy(fBuffer, aString, (fEnd) *
sizeof(
XMLCh));
294 fBuffer[fEnd] =
'\0';
298 inline void XMLDateTime::reset()
300 for (
int i=0; i < TOTAL_SIZE; i++ )
305 fTimeZone[hh] = fTimeZone[mm] = 0;
312 inline void XMLDateTime::copy(
const XMLDateTime& rhs)
314 for (
int i = 0; i < TOTAL_SIZE; i++ )
315 fValue[i] = rhs.fValue[i];
317 fMilliSecond = rhs.fMilliSecond;
318 fHasTime = rhs.fHasTime;
319 fTimeZone[hh] = rhs.fTimeZone[hh];
320 fTimeZone[mm] = rhs.fTimeZone[mm];
326 if (fEnd > fBufferMaxLen)
328 fMemoryManager->deallocate(fBuffer);
329 fBufferMaxLen = rhs.fBufferMaxLen;
330 fBuffer = (
XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) *
sizeof(
XMLCh));
333 memcpy(fBuffer, rhs.fBuffer, (fEnd+1) *
sizeof(
XMLCh));
337 inline bool XMLDateTime::initParser()
339 if (!fBuffer || fBuffer[0] ==
chNull)
348 inline bool XMLDateTime::isNormalized()
const 350 return ( fValue[utc] == UTC_STD ?
true :
false );
353 inline int XMLDateTime::getRetVal(
int c1,
int c2)
355 if ((c1 == LESS_THAN && c2 == GREATER_THAN) ||
356 (c1 == GREATER_THAN && c2 == LESS_THAN) )
361 return ( c1 != INDETERMINATE ) ? c1 : c2;
Definition: XMLDateTime.hpp:48
void setBuffer(const XMLCh *const)
Definition: XMLDateTime.hpp:272
Definition: XSValue.hpp:32
Definition: XMLDateTime.hpp:43
Definition: XMLNumber.hpp:39
Definition: XMLDateTime.hpp:57
Configurable memory manager.
Definition: MemoryManager.hpp:39
static bool isWhitespace(const XMLCh toCheck)
Definition: XMLChar.hpp:223
virtual XMLCh * getRawData() const =0
Return string representation of the decimal value.
static XMLSize_t stringLen(const char *const src)
Get the length of the string.
Definition: XMLDateTime.hpp:36
SIZE_T XMLSize_t
Definition: Xerces_autoconf_config.borland.hpp:86
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
wchar_t XMLCh
Definition: Xerces_autoconf_config.borland.hpp:92
Definition: XMLDateTime.hpp:47
Definition: XMLDateTime.hpp:49
Definition: XMLNumber.hpp:30
#define XMLUTIL_EXPORT
Definition: XercesDefs.hpp:162
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
Definition: XMLDateTime.hpp:56
utcType
Definition: XMLDateTime.hpp:53
Definition: XMLDateTime.hpp:44
virtual const XMLCh * getFormattedString() const =0
Return the original and converted value of the original data.
XERCES_CPP_NAMESPACE_BEGIN const XMLCh chNull
Definition: XMLUniDefs.hpp:37
virtual int getSign() const =0
Returns the sign of this number.
Definition: XMLDateTime.hpp:46
Definition: XMLDateTime.hpp:45
valueIndex
Definition: XMLDateTime.hpp:40