X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2Futil%2FDateTime.h;h=bde44d35c847c6ddbe83fc93c6086c30d9e97666;hb=81b488b2790e7bdeb2f43560b1d4a7d22c3dfdf5;hp=f73e244f995e6ddd7567d08e2edaa93fdcb6359a;hpb=53b781a8ad5387f789b59d2b49978668c291d96c;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/util/DateTime.h b/xmltooling/util/DateTime.h index f73e244..bde44d3 100644 --- a/xmltooling/util/DateTime.h +++ b/xmltooling/util/DateTime.h @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2007 Internet2 +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * Licensed 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 + * UCAID 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 + * 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. + * 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. */ /** @@ -30,6 +34,7 @@ #pragma warning( disable : 4244 ) #endif +#include #include #if defined (_MSC_VER) @@ -56,7 +61,7 @@ namespace xmltooling DateTime& operator=(const DateTime&); ~DateTime(); - inline void setBuffer(const XMLCh* const); + void setBuffer(const XMLCh* const); const XMLCh* getRawData() const; const XMLCh* getFormattedString() const; @@ -117,14 +122,14 @@ namespace xmltooling static int compareResult(int, int, bool); static void addDuration(DateTime* pDuration, const DateTime* const pBaseDate, int index); static int compareResult(const DateTime* const, const DateTime* const, bool, int); - static inline int getRetVal(int, int); + static int getRetVal(int, int); - inline void reset(); + void reset(); //inline void assertBuffer() const; - inline void copy(const DateTime&); + void copy(const DateTime&); - inline void initParser(); - inline bool isNormalized() const; + void initParser(); + bool isNormalized() const; void getDate(); void getTime(); @@ -157,77 +162,6 @@ namespace xmltooling double fMiliSecond; bool fHasTime; }; - - inline void DateTime::setBuffer(const XMLCh* const aString) - { - reset(); - fEnd = xercesc::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 < xercesc::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 < xercesc::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[xercesc::XMLDateTime::utc] == xercesc::XMLDateTime::UTC_STD ? true : false); - } - - inline int DateTime::getRetVal(int c1, int c2) - { - if ((c1 == xercesc::XMLDateTime::LESS_THAN && c2 == xercesc::XMLDateTime::GREATER_THAN) || - (c1 == xercesc::XMLDateTime::GREATER_THAN && c2 == xercesc::XMLDateTime::LESS_THAN)) - return xercesc::XMLDateTime::INDETERMINATE; - - return (c1 != xercesc::XMLDateTime::INDETERMINATE) ? c1 : c2; - } - } #endif /* __xmltool_datetime_h__ */