28 #define P6RFC822DATESZ 35
29 #define P6ISO8601DATESZ 26
31 #define P6INRVLINFINITE ((P6R::P6INTERVAL)-1)
32 #define P6INRVLNOTIMEOUT ((P6R::P6INTERVAL)0)
495 #define IF_p6ITime {0xC44DC7E7,0x23BD,0x45dc,{0x88,0x1C,0x5A,0xCB,0x28,0x89,0x7E,0x87}}
498 #define COMP_p6Time {0x9A30C203,0xA82C,0x46b3,{0x93,0x07,0x8C,0xB1,0xF5,0x9A,0xC0,0xBB}}
666 #define IF_p6IIntervalTime {0x4AB989F9,0x4310,0x4DDB,{0xB6,0x14,0xEB,0x7F,0x8C,0xF5,0x95,0x8C}}
669 #define COMP_p6IntervalTime {0xFAB4E452,0xCBD8,0x488E,{0xB7,0x96,0xCA,0x78,0xAE,0x92,0x70,0xE6}}
671 #define GLOBAL_TIMEZONES_INTERFACE "P6R::p6Time::GlobalTimezonesConfig"
673 #define P6MSECPERSEC 1000
674 #define P6USECPERSEC 1000000
675 #define P6NANOSECPERSEC 1000000000
virtual P6R::P6ERR collapse(P6R::P6TIMEINFO *pExpandedTime, P6R::P6TIME *pTime)=0
Colapses the specified P6TIMEINFO structure into a P6TIME value, automatically adjusting for any chan...
virtual P6R::P6ERR getLocalTimezoneOffset(P6R::P6INT32 *pOffset)=0
Retrieves the local timezone offset from GMT.
virtual P6R::P6ERR unixTimeToP6Time(P6R::P6INT32 unixTime, P6R::P6TIME *pTimeOut)=0
This method converts a unix style time (seconds since Jan 1, 1970) into a P6TIME. ...
virtual P6R::P6ERR getFrequency(P6R::P6UINT64 *pFrequency)=0
Returns the platform dependent counter frequency (ticks/second).
virtual P6R::P6ERR milliSecondsToInterval(P6R::P6UINT32 nMilliSeconds, P6R::P6INTERVAL *pInterval)=0
Convert the specified number of milliseconds (1/1000 second) into an interval time value...
virtual P6R::P6ERR addHours(P6R::P6TIME *pTime, P6R::P6INT32 nHours)=0
Adds the specified number of hours to the provided P6TIME value.
Provides an interface to the system wallclock time.
virtual P6R::P6ERR addMicroSeconds(P6R::P6INTERVAL *pInterval, P6R::P6INT64 uSeconds)=0
virtual P6R::P6ERR microSecondsToInterval(P6R::P6UINT64 nMicroSeconds, P6R::P6INTERVAL *pInterval)=0
Convert the specified number of microseconds (1/1000000 second) into an interval time value...
virtual P6R::P6ERR expand(const P6R::P6TIME *pTime, P6R::P6TIMEINFO *pExpandedTime, P6R::P6BOOL bLocalTime)=0
Expands the provided P6TIME value into an P6TIMEINFO structure.
virtual P6R::P6ERR createRfc822DateA(const P6R::P6TIME *pTime, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Given a P6R::P6TIME, creates an RFC 822 compliant date string.
P6COM runtime interfaces definitions.
wchar_t P6WCHAR
Wide character type see p6i18n.h.
A structure that is used to describe a specified time.
virtual P6R::P6ERR addSeconds(P6R::P6INTERVAL *pInterval, P6R::P6INT32 seconds)=0
The base interface all [p6]COM components must derive from and implement.
P6COM base interface definitions.
virtual P6R::P6ERR diffP6Time(const P6R::P6TIME *pTime1, const P6R::P6TIME *pTime2, P6R::P6INTERVAL *pIntervalDifference)=0
Find the difference between two P6TIME's and return the result as a P6INTERVAL.
p6IErrorInfo interface definition
virtual P6R::P6ERR parseISO8601DateA(const P6R::P6CHAR *pszDate, P6R::P6TIME *pOutTime, P6R::P6INT32 *pDeltaFromGMT)=0
Given an ISO 8601 compliant narrow character date string, this method converts it into a P6R::P6TIME...
virtual P6R::P6ERR secondsToInterval(P6R::P6UINT32 nSeconds, P6R::P6INTERVAL *pInterval)=0
Convert the specified number of seconds into an interval time value.
virtual P6R::P6ERR expandInterval(const P6R::P6INTERVAL *pInterval, P6R::P6EXPANDEDINTERVAL *pExpanded)=0
Expands the specified interval time value into hour.
virtual P6R::P6ERR p6TimeToUnixTime(const P6R::P6TIME *pTime, P6R::P6INT32 *pUnixTime)=0
This method converts a P6TIME into a unix style time (seconds since Jan 1, 1970). ...
virtual P6R::P6ERR addMilliSeconds(P6R::P6INTERVAL *pInterval, P6R::P6INT32 mSeconds)=0
virtual P6R::P6ERR parseRfc822DateW(const P6R::P6WCHAR *pwszDate, P6R::P6TIME *pOutTime, P6R::P6INT32 *pDeltaFromGMT)=0
Given an RFC 822 compliant wide character date string, this method converts it into a P6R::P6TIME...
virtual P6R::P6ERR parseRfc822DateA(const P6R::P6CHAR *pszDate, P6R::P6TIME *pOutTime, P6R::P6INT32 *pDeltaFromGMT)=0
Given an RFC 822 compliant narrow character date string, this method converts it into a P6R::P6TIME...
virtual P6R::P6ERR getFractionalSeconds(const P6R::P6INTERVAL *pInterval, P6R::P6UINT64 *pnFractionalSeconds)=0
virtual P6R::P6ERR addHours(P6R::P6INTERVAL *pInterval, P6R::P6INT32 hours)=0
virtual P6R::P6ERR createISO8601DateA(const P6R::P6TIME *pTime, P6R::P6INT32 deltaFromGMT, P6R::P6UINT8 degree, P6R::P6CHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Given a P6R::P6TIME, creates an ISO 8601 compliant date string.
virtual P6R::P6ERR addSeconds(P6R::P6TIME *pTime, P6R::P6INT32 nSeconds)=0
Adds the specified number of seconds to the provided P6TIME value.
Get and translate interval times.
virtual P6R::P6ERR parseISO8601DateW(const P6R::P6WCHAR *pwszDate, P6R::P6TIME *pOutTime, P6R::P6INT32 *pDeltaFromGMT)=0
Given an ISO 8601 compliant wide character date string, this method converts it into a P6R::P6TIME...
virtual P6R::P6ERR initialize()=0
Inialize the component interface for use.
virtual P6R::P6ERR intervalToMilliSeconds(P6R::P6INTERVAL *pInterval, P6R::P6UINT32 *pnMilliSeconds)=0
Converts the specified interval time into milliseconds (1/1000 second).
virtual P6R::P6ERR createRfc822DateW(const P6R::P6TIME *pTime, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Given a P6R::P6TIME, creates an RFC 822 compliant date string.
virtual P6R::P6ERR adjust(P6R::P6TIMEINFO *pExpandedTime, P6R::P6INT32 tzOffset)=0
This method provides the ability to easily modify times and adjust for diferent timezone offsets etc...
virtual P6R::P6ERR createISO8601DateW(const P6R::P6TIME *pTime, P6R::P6INT32 deltaFromGMT, P6R::P6UINT8 degree, P6R::P6WCHAR *pBuffer, P6R::P6SIZE cBuffer, P6R::P6SIZE *pcWritten)=0
Given a P6R::P6TIME, creates an ISO 8601 compliant date string.
P6INT64 P6TIME
The wallclock time represented as the number of microseconds since midnight January 1 1970 UTC...
virtual P6R::P6ERR initialize()=0
This method is used to initialize this instance of the the component for use.
virtual P6R::P6ERR addMillseconds(P6R::P6TIME *pTime, P6R::P6INT32 nMilliseconds)=0
Adds the specified number of milliseconds to the provided P6TIME value.
virtual P6R::P6ERR now(P6R::P6TIME *pTime)=0
Returns microseconds since UTC epoch (Midinight, January 1, 1970) as a 64bit value representing the c...
virtual P6R::P6ERR getTimezoneOffset(P6R::P6INT32 *pTzOffset)=0
Retrieves the current localtime's offset from GMT in seconds.
virtual P6R::P6ERR addMinutes(P6R::P6INTERVAL *pInterval, P6R::P6INT32 minutes)=0
virtual P6R::P6ERR intervalToSeconds(P6R::P6INTERVAL *pInterval, P6R::P6UINT32 *pnSeconds)=0
Converts the specified interval time into seconds.
virtual P6R::P6ERR intervalToMicroSeconds(P6R::P6INTERVAL *pInterval, P6R::P6UINT64 *pnMicroSeconds)=0
Converts the specified interval time into microseconds (1/1000000 second).
P6R Component runtime helper macros, templated, etc.
virtual P6R::P6ERR addP6Interval(P6R::P6TIME *pTime, const P6R::P6INTERVAL *pInterval)=0
Add the amount of time specified in pInterval to pTime.
char P6CHAR
Narrow character type.
virtual P6R::P6ERR addMinutes(P6R::P6TIME *pTime, P6R::P6INT32 nMinutes)=0
Adds the specified number of minutes to the provided P6TIME value.