PEBL 2.2
Psychology Experiment Building Language - Cross-platform psychological experiment development system
validator/PlatformTimer.h
Go to the documentation of this file.
1//* -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*- */
3// Name: platforms/validator/PlatformTimer.h
4// Purpose: Validator Platform Timer (real implementation using chrono)
5// Author: Shane T. Mueller, Ph.D.
6// Copyright: (c) 2025 Shane T. Mueller <smueller@obereed.net>
7// License: GPL 2
8//
9// This file is part of the PEBL project.
10//
11// PEBL is free software; you can redistribute it and/or modify
12// it under the terms of the GNU General Public License as published by
13// the Free Software Foundation; either version 2 of the License, or
14// (at your option) any later version.
15//
16// PEBL is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with PEBL; if not, write to the Free Software
23// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25#ifndef __VALIDATOR_PLATFORMTIMER_H__
26#define __VALIDATOR_PLATFORMTIMER_H__
27
28#include "../../devices/PTimer.h"
29#include <chrono>
30
33class PlatformTimer : public PTimer {
34public:
36 virtual ~PlatformTimer();
37
38 virtual void Wait(unsigned long int msecs);
39 virtual void Sleep(unsigned long int msecs); // OS sleep (yields CPU)
40 virtual unsigned long int GetTime() const;
41 virtual void GetTimeOfDay(unsigned long & secs, unsigned long & msecs);
42 virtual int GetState(int iface) const;
43
44private:
45 virtual std::ostream& SendToStream(std::ostream& out) const;
46 std::chrono::steady_clock::time_point mStartTime;
47};
48
49#endif
virtual void GetTimeOfDay(unsigned long &secs, unsigned long &msecs)
virtual unsigned long int GetTime() const
virtual ~PlatformTimer()
virtual void Sleep(unsigned long int msecs)
virtual int GetState(int iface) const
virtual void Wait(unsigned long int msecs)