-
- inline void DateTime::setBuffer(const XMLCh* const aString)
- {
- reset();
- fEnd = XMLString::stringLen(aString);
- if (fEnd > 0) {
- if (fEnd > fBufferMaxLen) {
- delete[] fBuffer;
- fBufferMaxLen = fEnd + 8;
- fBuffer = new XMLCh[fBufferMaxLen+1];
- }
- memcpy(fBuffer, aString, (fEnd+1) * sizeof(XMLCh));
- }
- }
-
- inline void DateTime::reset()
- {
- for ( int i=0; i < XMLDateTime::TOTAL_SIZE; i++ )
- fValue[i] = 0;
-
- fMiliSecond = 0;
- fHasTime = false;
- fTimeZone[hh] = fTimeZone[mm] = 0;
- fStart = fEnd = 0;
-
- if (fBuffer)
- *fBuffer = 0;
- }
-
- inline void DateTime::copy(const DateTime& rhs)
- {
- for ( int i = 0; i < XMLDateTime::TOTAL_SIZE; i++ )
- fValue[i] = rhs.fValue[i];
-
- fMiliSecond = rhs.fMiliSecond;
- fHasTime = rhs.fHasTime;
- fTimeZone[hh] = rhs.fTimeZone[hh];
- fTimeZone[mm] = rhs.fTimeZone[mm];
- fStart = rhs.fStart;
- fEnd = rhs.fEnd;
-
- if (fEnd > 0) {
- if (fEnd > fBufferMaxLen) {
- delete[] fBuffer;
- fBufferMaxLen = rhs.fBufferMaxLen;
- fBuffer = new XMLCh[fBufferMaxLen+1];
- }
- memcpy(fBuffer, rhs.fBuffer, (fEnd+1) * sizeof(XMLCh));
- }
- }
-
- inline void DateTime::initParser()
- {
- fStart = 0; // to ensure scan from the very first beginning
- // in case the pointer is updated accidentally by someone else.
- }
-
- inline bool DateTime::isNormalized() const
- {
- return (fValue[XMLDateTime::utc] == XMLDateTime::UTC_STD ? true : false);
- }
-
- inline int DateTime::getRetVal(int c1, int c2)
- {
- if ((c1 == XMLDateTime::LESS_THAN && c2 == XMLDateTime::GREATER_THAN) ||
- (c1 == XMLDateTime::GREATER_THAN && c2 == XMLDateTime::LESS_THAN))
- return XMLDateTime::INDETERMINATE;
-
- return (c1 != XMLDateTime::INDETERMINATE) ? c1 : c2;
- }
-