ACE_Time_Value Class Reference

Operations on "timeval" structures, which express time in seconds (secs) and microseconds (usecs). More...

#include <Time_Value.h>

Collaboration diagram for ACE_Time_Value:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Time_Value (void)
 Default Constructor.
 ACE_Time_Value (time_t sec, suseconds_t usec=0)
 Constructor.
 ACE_Time_Value (const struct timeval &t)
 Construct the ACE_Time_Value from a timeval.
 ACE_Time_Value (const timespec_t &t)
 Construct the ACE_Time_Value object from a timespec_t.
 ACE_Time_Value (const FILETIME &ft)
 Construct the ACE_Time_Value object from a Win32 FILETIME.
void set (time_t sec, suseconds_t usec)
 Initializes the ACE_Time_Value from seconds and useconds.
void set (double d)
void set (const timeval &t)
 Initializes the ACE_Time_Value from a timeval.
void set (const timespec_t &t)
 Initializes the ACE_Time_Value object from a timespec_t.
void set (const FILETIME &ft)
 Initializes the ACE_Time_Value object from a Win32 FILETIME.
unsigned long msec (void) const
 Converts from ACE_Time_Value format into milli-seconds format.
void msec (ACE_UINT64 &ms) const
void msec (long)
 Converts from milli-seconds format into ACE_Time_Value format.
 operator timespec_t () const
 Returns the value of the object as a timespec_t.
 operator timeval () const
 Returns the value of the object as a timeval.
 operator const timeval * () const
 Returns a pointer to the object as a timeval.
 operator FILETIME () const
 Returns the value of the object as a Win32 FILETIME.
time_t sec (void) const
 Get seconds.
void sec (time_t sec)
 Set seconds.
suseconds_t usec (void) const
 Get microseconds.
void usec (suseconds_t usec)
 Set microseconds.
void to_usec (ACE_UINT64 &usec) const
ACE_Time_Valueoperator+= (const ACE_Time_Value &tv)
 Add tv to this.
ACE_Time_Valueoperator+= (time_t tv)
 Add tv to this.
ACE_Time_Valueoperator= (const ACE_Time_Value &tv)
 Assign @ tv to this.
ACE_Time_Valueoperator= (time_t tv)
 Assign @ tv to this.
ACE_Time_Valueoperator-= (const ACE_Time_Value &tv)
 Subtract tv to this.
ACE_Time_Valueoperator-= (time_t tv)
 Substract tv to this.
ACE_Time_Valueoperator *= (double d)
 Multiply the time value by the d factor.
ACE_Time_Value operator++ (int)
 Increment microseconds as postfix.
ACE_Time_Valueoperator++ (void)
 Increment microseconds as prefix.
ACE_Time_Value operator-- (int)
 Decrement microseconds as postfix.
ACE_Time_Valueoperator-- (void)
 Decrement microseconds as prefix.
void dump (void) const
 Dump is a no-op.

Static Public Attributes

static const ACE_Time_Value zero
 Constant "0".
static const ACE_Time_Value max_time
static const DWORDLONG FILETIME_to_timval_skew
 Const time difference between FILETIME and POSIX time.

Private Member Functions

void normalize (void)
 Put the timevalue into a canonical form.

Private Attributes

timeval tv_
 Store the values as a timeval.

Friends

ACE_Export ACE_Time_Value operator+ (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 Adds two ACE_Time_Value objects together, returns the sum.
ACE_Export ACE_Time_Value operator- (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 Subtracts two ACE_Time_Value objects, returns the difference.
ACE_Export bool operator< (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 < tv2.
ACE_Export bool operator> (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 > tv2.
ACE_Export bool operator<= (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 <= tv2.
ACE_Export bool operator>= (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 >= tv2.
ACE_Export bool operator== (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 == tv2.
ACE_Export bool operator!= (const ACE_Time_Value &tv1, const ACE_Time_Value &tv2)
 True if tv1 != tv2.
ACE_Export ACE_Time_Value operator * (double d, const ACE_Time_Value &tv)
 Multiplies the time value by d.
ACE_Export ACE_Time_Value operator * (const ACE_Time_Value &tv, double d)
 Multiplies the time value by d.

Detailed Description

Operations on "timeval" structures, which express time in seconds (secs) and microseconds (usecs).

This class centralizes all the time related processing in ACE. These time values are typically used in conjunction with OS mechanisms like <select>, <poll>, or <cond_timedwait>.


Constructor & Destructor Documentation

ACE_INLINE ACE_Time_Value::ACE_Time_Value ( void   ) 

Default Constructor.

ACE_INLINE ACE_Time_Value::ACE_Time_Value ( time_t  sec,
suseconds_t  usec = 0 
) [explicit]

Constructor.

ACE_INLINE ACE_Time_Value::ACE_Time_Value ( const struct timeval &  t  )  [explicit]

Construct the ACE_Time_Value from a timeval.

ACE_INLINE ACE_Time_Value::ACE_Time_Value ( const timespec_t t  )  [explicit]

Construct the ACE_Time_Value object from a timespec_t.

ACE_Time_Value::ACE_Time_Value ( const FILETIME &  ft  )  [explicit]

Construct the ACE_Time_Value object from a Win32 FILETIME.


Member Function Documentation

ACE_INLINE void ACE_Time_Value::set ( time_t  sec,
suseconds_t  usec 
)

Initializes the ACE_Time_Value from seconds and useconds.

ACE_INLINE void ACE_Time_Value::set ( double  d  ) 

Initializes the ACE_Time_Value from a double, which is assumed to be in second format, with any remainder treated as microseconds.

ACE_INLINE void ACE_Time_Value::set ( const timeval &  t  ) 

Initializes the ACE_Time_Value from a timeval.

ACE_INLINE void ACE_Time_Value::set ( const timespec_t t  ) 

Initializes the ACE_Time_Value object from a timespec_t.

void ACE_Time_Value::set ( const FILETIME &  ft  ) 

Initializes the ACE_Time_Value object from a Win32 FILETIME.

ACE_INLINE unsigned long ACE_Time_Value::msec ( void   )  const

Converts from ACE_Time_Value format into milli-seconds format.

Returns:
Sum of second field (in milliseconds) and microsecond field (in milliseconds). Note that this method can overflow if the second and microsecond field values are large, so use the msec (ACE_UINT64 &ms) method instead.
Note:
The semantics of this method differs from the sec() and usec() methods. There is no analogous "millisecond" component in an ACE_Time_Value.

ACE_INLINE void ACE_Time_Value::msec ( ACE_UINT64 ms  )  const

Returns:
Sum of second field (in milliseconds) and microsecond field (in milliseconds) and return them via the
Parameters:
ms parameter.
Note:
The semantics of this method differs from the sec() and usec() methods. There is no analogous "millisecond" component in an ACE_Time_Value.

ACE_INLINE void ACE_Time_Value::msec ( long   ) 

Converts from milli-seconds format into ACE_Time_Value format.

Note:
The semantics of this method differs from the sec() and usec() methods. There is no analogous "millisecond" component in an ACE_Time_Value.

ACE_INLINE ACE_Time_Value::operator timespec_t (  )  const

Returns the value of the object as a timespec_t.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_Time_Value::operator timeval (  )  const

Returns the value of the object as a timeval.

ACE_INLINE ACE_Time_Value::operator const timeval * (  )  const

Returns a pointer to the object as a timeval.

ACE_Time_Value::operator FILETIME (  )  const

Returns the value of the object as a Win32 FILETIME.

ACE_INLINE time_t ACE_Time_Value::sec ( void   )  const

Get seconds.

Returns:
The second field/component of this ACE_Time_Value.
Note:
The semantics of this method differs from the msec() method.

ACE_INLINE void ACE_Time_Value::sec ( time_t  sec  ) 

Set seconds.

ACE_INLINE suseconds_t ACE_Time_Value::usec ( void   )  const

Get microseconds.

Returns:
The microsecond field/component of this ACE_Time_Value.
Note:
The semantics of this method differs from the msec() method.

ACE_INLINE void ACE_Time_Value::usec ( suseconds_t  usec  ) 

Set microseconds.

ACE_INLINE void ACE_Time_Value::to_usec ( ACE_UINT64 usec  )  const

Returns:
Sum of second field (in microseconds) and microsecond field and return them via the
Parameters:
usec parameter.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator+= ( const ACE_Time_Value tv  ) 

Add tv to this.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator+= ( time_t  tv  ) 

Add tv to this.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator= ( const ACE_Time_Value tv  ) 

Assign @ tv to this.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator= ( time_t  tv  ) 

Assign @ tv to this.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator-= ( const ACE_Time_Value tv  ) 

Subtract tv to this.

ACE_INLINE ACE_Time_Value & ACE_Time_Value::operator-= ( time_t  tv  ) 

Substract tv to this.

ACE_Time_Value & ACE_Time_Value::operator *= ( double  d  ) 

Multiply the time value by the d factor.

Note:
The result of the operator is valid for results from range < (ACE_INT32_MIN, -999999), (ACE_INT32_MAX, 999999) >. Result outside this range are saturated to a limit.

ACE_Time_Value ACE_Time_Value::operator++ ( int   ) 

Increment microseconds as postfix.

Note:
The only reason this is here is to allow the use of ACE_Atomic_Op with ACE_Time_Value.

ACE_Time_Value & ACE_Time_Value::operator++ ( void   ) 

Increment microseconds as prefix.

Note:
The only reason this is here is to allow the use of ACE_Atomic_Op with ACE_Time_Value.

ACE_Time_Value ACE_Time_Value::operator-- ( int   ) 

Decrement microseconds as postfix.

Note:
The only reason this is here is to allow the use of ACE_Atomic_Op with ACE_Time_Value.

ACE_Time_Value & ACE_Time_Value::operator-- ( void   ) 

Decrement microseconds as prefix.

Note:
The only reason this is here is to allow the use of ACE_Atomic_Op with ACE_Time_Value.

void ACE_Time_Value::dump ( void   )  const

Dump is a no-op.

The dump() method is a no-op. It's here for backwards compatibility only, but does not dump anything. Invoking logging methods here violates layering restrictions in ACE because this class is part of the OS layer and ACE_Log_Msg is at a higher level.

void ACE_Time_Value::normalize ( void   )  [private]

Put the timevalue into a canonical form.

Todo:
This loop needs some optimization.

Todo:
This loop needs some optimization.


Friends And Related Function Documentation

ACE_Export ACE_Time_Value operator+ ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

Adds two ACE_Time_Value objects together, returns the sum.

ACE_Export ACE_Time_Value operator- ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

Subtracts two ACE_Time_Value objects, returns the difference.

ACE_Export bool operator< ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 < tv2.

ACE_Export bool operator> ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 > tv2.

ACE_Export bool operator<= ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 <= tv2.

ACE_Export bool operator>= ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 >= tv2.

ACE_Export bool operator== ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 == tv2.

ACE_Export bool operator!= ( const ACE_Time_Value tv1,
const ACE_Time_Value tv2 
) [friend]

True if tv1 != tv2.

ACE_Export ACE_Time_Value operator * ( double  d,
const ACE_Time_Value tv 
) [friend]

Multiplies the time value by d.

ACE_Export ACE_Time_Value operator * ( const ACE_Time_Value tv,
double  d 
) [friend]

Multiplies the time value by d.


Member Data Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL const ACE_Time_Value ACE_Time_Value::zero [static]

Constant "0".

const ACE_Time_Value ACE_Time_Value::max_time [static]

Constant for maximum time representable. Note that this time is not intended for use with <select> or other calls that may have *their own* implementation-specific maximum time representations. Its primary use is in time computations such as those used by the dynamic subpriority strategies in the ACE_Dynamic_Message_Queue class.

const DWORDLONG ACE_Time_Value::FILETIME_to_timval_skew [static]

Initial value:

ACE_INT64_LITERAL (0x19db1ded53e8000)
Const time difference between FILETIME and POSIX time.

timeval ACE_Time_Value::tv_ [private]

Store the values as a timeval.


The documentation for this class was generated from the following files:
Generated on Mon Jun 25 16:28:35 2007 for ACE by  doxygen 1.5.2-2