22 #if !defined(XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP) 23 #define XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP 74 inline void setBuffer(
const XMLCh*
const);
108 void parseDateTime();
120 void parseMonthDay();
122 void parseYearMonth();
124 void parseDuration();
139 int getYear()
const {
return fValue[CentYear];}
145 time_t getEpoch(
bool duration=
false)
const;
169 static int compareResult(
int 183 static inline int getRetVal(
int,
int);
191 inline void assertBuffer()
const;
196 inline bool initParser();
198 inline bool isNormalized()
const;
212 void parseTimeZone();
222 ,
const XMLCh ch)
const;
227 int parseIntYear(
const XMLSize_t end)
const;
229 double parseMiliSecond(
const XMLSize_t start
236 void validateDateTime()
const;
242 int fillYearString(
XMLCh*& ptr,
int value)
const;
244 void searchMiliSeconds(
XMLCh*& miliStartPtr,
XMLCh*& miliEndPtr)
const;
249 bool operator==(
const XMLDateTime& toCompare)
const;
269 int fValue[TOTAL_SIZE];
270 int fTimeZone[TIMEZONE_ARRAYSIZE];
290 for (; fEnd > 0; fEnd--)
298 if (fEnd > fBufferMaxLen)
300 fMemoryManager->deallocate(fBuffer);
301 fBufferMaxLen = fEnd + 8;
302 fBuffer = (
XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) *
sizeof(
XMLCh));
305 memcpy(fBuffer, aString, (fEnd) *
sizeof(
XMLCh));
306 fBuffer[fEnd] =
'\0';
310 inline void XMLDateTime::reset()
312 for (
int i=0; i < TOTAL_SIZE; i++ )
317 fTimeZone[hh] = fTimeZone[mm] = 0;
324 inline void XMLDateTime::copy(
const XMLDateTime& rhs)
326 for (
int i = 0; i < TOTAL_SIZE; i++ )
327 fValue[i] = rhs.fValue[i];
329 fMilliSecond = rhs.fMilliSecond;
330 fHasTime = rhs.fHasTime;
331 fTimeZone[hh] = rhs.fTimeZone[hh];
332 fTimeZone[mm] = rhs.fTimeZone[mm];
338 if (fEnd > fBufferMaxLen)
340 fMemoryManager->deallocate(fBuffer);
341 fBufferMaxLen = rhs.fBufferMaxLen;
342 fBuffer = (
XMLCh*) fMemoryManager->allocate((fBufferMaxLen+1) *
sizeof(
XMLCh));
345 memcpy(fBuffer, rhs.fBuffer, (fEnd+1) *
sizeof(
XMLCh));
349 inline bool XMLDateTime::initParser()
351 if (!fBuffer || fBuffer[0] ==
chNull)
360 inline bool XMLDateTime::isNormalized()
const 362 return ( fValue[utc] == UTC_STD ?
true :
false );
365 inline int XMLDateTime::getRetVal(
int c1,
int c2)
367 if ((c1 == LESS_THAN && c2 == GREATER_THAN) ||
368 (c1 == GREATER_THAN && c2 == LESS_THAN) )
373 return ( c1 != INDETERMINATE ) ? c1 : c2;
Definition: XMLDateTime.hpp:50
void setBuffer(const XMLCh *const)
Definition: XMLDateTime.hpp:284
Definition: XSValue.hpp:32
Definition: XMLDateTime.hpp:45
Definition: XMLNumber.hpp:39
Definition: XMLDateTime.hpp:59
Configurable memory manager.
Definition: MemoryManager.hpp:39
static bool isWhitespace(const XMLCh toCheck)
Definition: XMLChar.hpp:242
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.
int getSecond() const
Definition: XMLDateTime.hpp:144
Definition: XMLDateTime.hpp:38
uint16_t XMLCh
Definition: Xerces_autoconf_config.hpp:120
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
Definition: XMLDateTime.hpp:49
Definition: XMLDateTime.hpp:51
int getDay() const
Definition: XMLDateTime.hpp:141
int getMonth() const
Definition: XMLDateTime.hpp:140
Definition: XMLNumber.hpp:30
size_t XMLSize_t
Definition: Xerces_autoconf_config.hpp:112
int getYear() const
Definition: XMLDateTime.hpp:139
#define XMLUTIL_EXPORT
Definition: XercesDefs.hpp:162
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
Definition: XMLDateTime.hpp:58
utcType
Definition: XMLDateTime.hpp:55
int getHour() const
Definition: XMLDateTime.hpp:142
Definition: XMLDateTime.hpp:46
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:48
Definition: XMLDateTime.hpp:47
int getMinute() const
Definition: XMLDateTime.hpp:143
valueIndex
Definition: XMLDateTime.hpp:42