| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 2012

Public Types | Public Member Functions | Private Attributes | Friends

# Gaudi::TimeSpan Class Reference

Based on seal::TimeSpan. More...

`#include <GaudiKernel/Time.h>`

Collaboration diagram for Gaudi::TimeSpan:
[legend]

List of all members.

## Public Types
typedef longlong | ValueType
## Public Member Functions
| TimeSpan (void)
| Initialize an empty (zero) time difference.
| TimeSpan (Time t)
| Initialize a time span from Time t.
| TimeSpan (ValueType nsecs)
| Initialize a time span to a specific length.
| TimeSpan (ValueType secs, int nsecs)
| Initialise a time span to a specific length.
| TimeSpan (int days, int hours, int mins, int secs, int nsecs)
| Initialise a time span to a specific length.
int | days (void) const
| Get the number of complete days in the span.
int | hours (void) const
| Get the number of complete hours in the span.
int | minutes (void) const
| Get the number of complete minutes in the span.
ValueType | seconds (void) const
| Get the number of complete seconds in the span.
int | lastHours (void) const
| Get the number of complete hours in the last incomplete day of the span.
int | lastMinutes (void) const
| Get the number of complete minutes in the last incomplete hour of the span.
int | lastSeconds (void) const
| Get the number of complete seconds in the last incomplete minute of the span.
int | lastNSeconds (void) const
| Get the number of nanoseconds in the last incomplete second of the span.
TimeSpan & | operator+= (const TimeSpan &x)
| Add to a time span.
TimeSpan & | operator-= (const TimeSpan &x)
| Subtract from a time span.
TimeSpan & | operator*= (const TimeSpan &n)
| Multiply a time span.
TimeSpan & | operator/= (const TimeSpan &n)
| Divide a time span.
TimeSpan & | operator%= (const TimeSpan &n)
| Compute a modulo of a time span.
ValueType | ns (void) const
| Return the time span as nanoseconds.
## Private Attributes
ValueType | m_nsecs
## Friends
class | Time

## Detailed Description

Based on seal::TimeSpan.

A difference between two Time values. In addition to supporting normal integer artihmetic and comparisons, the span can also be converted to a number useful units.

See also:
  Time.

(Documentation taken from original SEAL class)

Author:
  Marco Clemencic

Date:
  2005-12-15

Definition at line 57 of file Time.h.

## Member Typedef Documentation

typedef longlong Gaudi::TimeSpan::ValueType

Definition at line 60 of file Time.h.

## Constructor & Destructor Documentation

Gaudi::TimeSpan::TimeSpan | ( | void | ) | `[inline]`

Initialize an empty (zero) time difference.

Definition at line 74 of file Time.icpp.

    : m_nsecs(0) {}

Gaudi::TimeSpan::TimeSpan | ( | Time | t ) | `[inline]`

Initialize a time span from Time t.

Definition at line 77 of file Time.icpp.

    : m_nsecs (t.m_nsecs) {}

Gaudi::TimeSpan::TimeSpan | ( | ValueType | nsecs ) | `[inline]`

Initialize a time span to a specific length.

Definition at line 80 of file Time.icpp.

    : m_nsecs (nsecs) {}

Gaudi::TimeSpan::TimeSpan | ( | ValueType | secs,
|  | int | nsecs
| ) |  | `[inline]`

Initialise a time span to a specific length.

The value is initialised to the sum of the parts---the parts do not need to fall into their "natural" ranges. The values are normalised to the natural meanings (e.g. 1000 seconds - 500 nanoseconds), so be careful with signs if you are producing values from other sources.

Parameters:

  secs | Seconds.
  nsecs | Nanoseconds.

Definition at line 90 of file Time.icpp.

        : m_nsecs(secs * Time::SEC_NSECS + nsecs) {}

Gaudi::TimeSpan::TimeSpan | ( | int | days,
|  | int | hours,
|  | int | mins,
|  | int | secs,
|  | int | nsecs
| ) |  | `[inline]`

Initialise a time span to a specific length.

The value is initialised to the sum of the parts---the parts do not need to fall into their "natural" ranges. The values are normalised to the natural meanings (e.g. 1000 seconds - 500 nanoseconds), so be careful with signs if you are producing values from other sources.

Parameters:

  days | Whole days.
  hours | Whole hours.
  mins | Whole minutes.
  secs | Whole seconds.
  nsecs | Nanoseconds.

Definition at line 104 of file Time.icpp.

                                                                                   {
        m_nsecs = (secs + 60 * (mins + 60 * (hours + 24*days)))*Time::SEC_NSECS + nsecs;
      }

## Member Function Documentation

int Gaudi::TimeSpan::days | ( | void | ) | const`[inline]`

Get the number of complete days in the span.

Definition at line 109 of file Time.icpp.

                                           {
        return int(m_nsecs / Time::SEC_NSECS / Time::SECS_PER_DAY);
      }

int Gaudi::TimeSpan::hours | ( | void | ) | const`[inline]`

Get the number of complete hours in the span.

Definition at line 114 of file Time.icpp.

                                            {
        return int(m_nsecs / Time::SEC_NSECS / Time::SECS_PER_HOUR);
      }

int Gaudi::TimeSpan::lastHours | ( | void | ) | const`[inline]`

Get the number of complete hours in the last incomplete day of the span.

Definition at line 135 of file Time.icpp.

                                                {
        return hours () - days () * 24;
      }

int Gaudi::TimeSpan::lastMinutes | ( | void | ) | const`[inline]`

Get the number of complete minutes in the last incomplete hour of the span.

Definition at line 141 of file Time.icpp.

                                                  {
        return minutes () - hours () * 60;
      }

int Gaudi::TimeSpan::lastNSeconds | ( | void | ) | const`[inline]`

Get the number of nanoseconds in the last incomplete second of the span.

Definition at line 153 of file Time.icpp.

                                                   {
        return int(m_nsecs % Time::SEC_NSECS);
      }

int Gaudi::TimeSpan::lastSeconds | ( | void | ) | const`[inline]`

Get the number of complete seconds in the last incomplete minute of the span.

Definition at line 147 of file Time.icpp.

                                                  {
        return int(seconds() - ( (ValueType)minutes() * (ValueType)60 ));
      }

int Gaudi::TimeSpan::minutes | ( | void | ) | const`[inline]`

Get the number of complete minutes in the span.

Definition at line 119 of file Time.icpp.

                                              {
        return int(m_nsecs / Time::SEC_NSECS / 60);
      }

TimeSpan::ValueType Gaudi::TimeSpan::ns | ( | void | ) | const`[inline]`

Return the time span as nanoseconds.

Definition at line 129 of file Time.icpp.

                                                       {
        return m_nsecs;
      }

TimeSpan & Gaudi::TimeSpan::operator%= | ( | const TimeSpan & | x ) | `[inline]`

Compute a modulo of a time span.

Definition at line 181 of file Time.icpp.

                                                               {
        m_nsecs %= x.m_nsecs; return *this;
      }

TimeSpan & Gaudi::TimeSpan::operator*= | ( | const TimeSpan & | x ) | `[inline]`

Multiply a time span.

Definition at line 170 of file Time.icpp.

                                                               {
        m_nsecs *= x.m_nsecs;
        return *this;
      }

TimeSpan & Gaudi::TimeSpan::operator+= | ( | const TimeSpan & | x ) | `[inline]`

Add to a time span.

Definition at line 158 of file Time.icpp.

                                                              {
        m_nsecs += x.m_nsecs;
        return *this;
      }

TimeSpan & Gaudi::TimeSpan::operator-= | ( | const TimeSpan & | x ) | `[inline]`

Subtract from a time span.

Definition at line 164 of file Time.icpp.

                                                               {
        m_nsecs -= x.m_nsecs;
        return *this;
      }

TimeSpan & Gaudi::TimeSpan::operator/= | ( | const TimeSpan & | x ) | `[inline]`

Divide a time span.

Definition at line 176 of file Time.icpp.

                                                               {
        m_nsecs /= x.m_nsecs; return *this;
      }

TimeSpan::ValueType Gaudi::TimeSpan::seconds | ( | void | ) | const`[inline]`

Get the number of complete seconds in the span.

Definition at line 124 of file Time.icpp.

                                                            {
        return m_nsecs / Time::SEC_NSECS;
      }

## Friends And Related Function Documentation

friend class Time`[friend]`

Definition at line 58 of file Time.h.

## Member Data Documentation

ValueType Gaudi::TimeSpan::m_nsecs`[private]`

Definition at line 87 of file Time.h.

The documentation for this class was generated from the following files:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r1/GaudiKernel/GaudiKernel/Time.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r1/GaudiKernel/GaudiKernel/Time.icpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines