Loading...
Searching...
No Matches
TimerCountdown.h
Go to the documentation of this file.
// -*- c++ -*-
//------------------------------------------------------------------------------
// TimerCountdown.h
//------------------------------------------------------------------------------
// Copyright (c) 1999 by Vladislav Grinchenko
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//------------------------------------------------------------------------------
// Created: 08/25/1999
//------------------------------------------------------------------------------
#ifndef TIMER_COUNTDOWN_H
#define TIMER_COUNTDOWN_H
#include "assa/TimeVal.h"
namespace ASSA {
class TimerCountdown
{
public:
TimerCountdown (TimeVal* wait_time_);
~TimerCountdown ();
private:
TimeVal* m_maxWaitTime;
TimeVal m_start;
};
//------------------------------------------------------------------------------
// inlines
//------------------------------------------------------------------------------
inline
TimerCountdown::
TimerCountdown (TimeVal* wt_)
: m_maxWaitTime (wt_), m_start (TimeVal::gettimeofday ())
{
}
inline
TimerCountdown::
~TimerCountdown ()
{
if (m_maxWaitTime == NULL)
return;
TimeVal elapsed (TimeVal::gettimeofday ());
elapsed -= m_start;
if ( *m_maxWaitTime > elapsed )
*m_maxWaitTime -= elapsed;
else
*m_maxWaitTime = TimeVal::zeroTime ();
}
} // end namespace ASSA
#endif /* TIMER_COUNTDOWN_H */
TimeVal.h
Class TimeVal is a wrapper around UNIX timeval structure.
ASSA::AutoPtrRef
A wrapper class to provide AutoPtr with reference semantics.
Definition AutoPtr.h:32
ASSA::TimeVal
Definition TimeVal.h:31
ASSA::TimeVal::zeroTime
static TimeVal zeroTime()
Static that returns zero timeval: {0,0}.
Definition TimeVal.h:157
ASSA::TimeVal::gettimeofday
static TimeVal gettimeofday()
Shields off underlying OS differences in getting current time.
Definition TimeVal.cpp:44
ASSA::TimerCountdown
Definition TimerCountdown.h:29
ASSA::TimerCountdown::m_start
TimeVal m_start
Time when countdown started.
Definition TimerCountdown.h:44
ASSA::TimerCountdown::TimerCountdown
TimerCountdown(TimeVal *wait_time_)
Constructor.
Definition TimerCountdown.h:53
ASSA::TimerCountdown::~TimerCountdown
~TimerCountdown()
Destructor.
Definition TimerCountdown.h:60
ASSA::TimerCountdown::m_maxWaitTime
TimeVal * m_maxWaitTime
Maximum time to wait.
Definition TimerCountdown.h:41
ASSA
Definition Acceptor.h:40