/*---------------------------------------------------------------------------* * ptimestamp.h * * * * Copyright 2007, 2008 Nuance Communciations, Inc. * * * * 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 * * 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. * * * *---------------------------------------------------------------------------*/ #ifndef PTIMESTAMP_H #define PTIMESTAMP_H #include <time.h> #include "PortPrefix.h" #include "ptypes.h" /** * @addtogroup PTimeStampModule PTimeStamp API functions * * @{ */ /** * Time stamp structure with two fields: seconds and milliseconds. The secs * field represent the number of seconds since January 1st 1970, 00:00:00 UTC. * msecs represent the number of milliseconds within that second. **/ typedef struct PTimeStamp_t { /** * Seconds component of timestamp. */ time_t secs; /** * Milliseconds component of timestamp. */ asr_uint16_t msecs; } PTimeStamp; /** * Sets the time stamp to represent current time. Sets both secs field and * msecs field to 0 if platform does not support it. **/ PORTABLE_API void PTimeStampSet(PTimeStamp *timestamp); /** * Returns the difference between two timestamps, in terms of milliseconds. * * @param a First timestamp * @param b Second timestamp * @return a - b */ PORTABLE_API int PTimeStampDiff(const PTimeStamp *a, const PTimeStamp *b); /** * @} */ #endif