Reference

ACE_Time_Value(3)

Operations on "timeval" structures.

NAME

ACE_Time_Value - Operations on "timeval" structures.

SYNOPSIS

#include <ace/OS.h>
class ACE_Time_Value
{
  public:
    static const ACE_Time_Value zero;
    static const ACE_Time_Value max_time;
    ACE_Time_Value (void);
    ACE_Time_Value (long sec, long usec = 0);
    ACE_Time_Value (const struct timeval &t);
    ACE_Time_Value (const timespec_t &t);
    ACE_Time_Value (const ACE_Time_Value &tv);
    ACE_Time_Value (const FILETIME &ft);
    void set (long sec, long usec);
    void set (double d);
    void set (const timeval &t);
    void set (const timespec_t &t);
    void set (const FILETIME &ft);
    long msec (void) const;
    void msec (long);
    operator timespec_t () const;
    operator timeval () const;
    operator const timeval *() const;
    operator FILETIME () const;
    long sec (void) const;
    void sec (long sec);
    long usec (void) const;
    void usec (long usec);
    void operator += (const ACE_Time_Value &tv);
    void operator -= (const ACE_Time_Value &tv);
    friend ACE_Export ACE_Time_Value operator + (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export ACE_Time_Value operator - (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator < (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator > (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator <= (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator >= (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator == (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    friend ACE_Export int operator != (
        const ACE_Time_Value &tv1,
        const ACE_Time_Value &tv2
        );
    void dump (void) const;
    static const DWORDLONG FILETIME_to_timval_skew;
  private:
    void normalize (void);
    timeval tv_;
};

DESCRIPTION

This class centralizes all the time related processing in ACE. These timers are typically used in conjunction with OS mechanisms like select, poll, or cond_timedwait. ACE_Time_Value makes the use of these mechanisms portable across OS platforms,

Useful constants.

static const ACE_Time_Value zero;

Constant "0".

static const ACE_Time_Value max_time;

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.

Initialization methods.

ACE_Time_Value (void);

Default Constructor.

ACE_Time_Value (long sec, long usec = 0);

Constructor.

Methods for converting to/from various time formats.

ACE_Time_Value (const struct timeval &t);

Construct the ACE_Time_Value from a timeval.

ACE_Time_Value (const timespec_t &t);

Initializes the ACE_Time_Value object from a timespec_t.

ACE_Time_Value (const ACE_Time_Value &tv);

Copy constructor.

ACE_Time_Value (const FILETIME &ft);

Initializes the ACE_Time_Value object from a Win32 FILETIME

void set (long sec, long usec);

Construct a Time_Value from two longs.

void set (double d);

Construct a Time_Value from a double, which is assumed to be in second format, with any remainder treated as microseconds.

void set (const timeval &t);

Construct a Time_Value from a timeval.

void set (const timespec_t &t);

Initializes the Time_Value object from a timespec_t.

void set (const FILETIME &ft);

Initializes the Time_Value object from a timespec_t.

long msec (void) const;

Converts from Time_Value format into milli-seconds format.

void msec (long);

Converts from milli-seconds format into 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.

The following are accessor/mutator methods.

long sec (void) const;

Get seconds.

void sec (long sec);

Set seconds.

long usec (void) const;

Get microseconds.

void usec (long usec);

Set microseconds.

The following are arithmetic methods for operating on

Time_Values.

void operator += (const ACE_Time_Value &tv);

Add tv to this.

void operator -= (const ACE_Time_Value &tv);

Subtract tv to this.

friend 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.

friend 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.

friend ACE_Export int operator < (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 tv2.

friend ACE_Export int operator > (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 tv2.

friend ACE_Export int operator <= (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 = tv2.

friend ACE_Export int operator >= (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 = tv2.

friend ACE_Export int operator == (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 == tv2.

friend ACE_Export int operator != (
    const ACE_Time_Value &tv1,
    const ACE_Time_Value &tv2
    );

True if tv1 != tv2.

void dump (void) const;

Dump the state of an object.

static const DWORDLONG FILETIME_to_timval_skew;

Const time difference between FILETIME and POSIX time.

AUTHOR

Doug Schmidt [email protected], Jesper S. M|ller [email protected], and a cast of thousands...

The ACE_Sched_Priority type should be used for platform-

independent thread and process priorities, by convention. int should be used for OS-specific priorities.

typedef for the _stat data structure

Giving unique ACE scoped names for some important

RTSignal-Related constants. Becuase sometimes, different platforms use different names for these constants.

LIBRARY

ace