/* LICENSE:
  =========================================================================
    CMPack'04 Source Code Release for OPEN-R SDK 1.1.5-r2 for ERS7
    Copyright (C) 2004 Multirobot Lab [Project Head: Manuela Veloso]
    School of Computer Science, Carnegie Mellon University
    All rights reserved.
  ========================================================================= */

#ifndef __TPRED_H__
#define __TPRED_H__

template <class time_t>
class TPred{
  time_t time_first_true;
  bool last_pred_val;
public:
  TPred() {time_first_true=0; last_pred_val=false;}

  time_t operator()(bool pred,time_t time);
};

template <class time_t>
time_t TPred<time_t>::operator()(bool pred,time_t time)
{
  if(!last_pred_val && pred) time_first_true = time;
  last_val = pred;
  return((pred)? (time - time_first_true) : 0);
}

#endif /*__TPRED_H__*/
