Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
vpTime.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Time management and measurement.
32 */
33
34#ifndef vpTime_h
35#define vpTime_h
36
41#include <iostream>
42#include <string>
43#include <visp3/core/vpConfig.h>
44#if VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11
45#include <chrono>
46#endif
47
48#include <visp3/core/vpException.h>
49
72namespace vpTime
73{
74VISP_EXPORT std::string getDateTime(const std::string &format = "%Y/%m/%d %H:%M:%S");
75VISP_EXPORT double getMinTimeForUsleepCall();
76VISP_EXPORT double measureTimeSecond();
77VISP_EXPORT double measureTimeMs();
78VISP_EXPORT double measureTimeMicros();
79VISP_EXPORT void sleepMs(double t);
80VISP_EXPORT int wait(double t0, double t);
81VISP_EXPORT void wait(double t);
82} // namespace vpTime
83
84class VISP_EXPORT vpChrono
85{
86public:
87 vpChrono();
88
89 double getDurationMicros();
90 double getDurationMs();
91 double getDurationSeconds();
92 void start(bool reset = true);
93 void stop();
94
95private:
96 double m_durationMs;
97#if VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11 && \
98 (defined(_MSC_VER) && _MSC_VER >= 1900 /* VS2015 */ || !defined(_MSC_VER))
99 std::chrono::steady_clock::time_point m_lastTimePoint;
100#else
101 double m_lastTimePoint;
102#endif
103};
104
105#endif
Time management and measurement.
Definition vpTime.h:73
VISP_EXPORT int wait(double t0, double t)
VISP_EXPORT double measureTimeMicros()
VISP_EXPORT double getMinTimeForUsleepCall()
VISP_EXPORT double measureTimeSecond()
VISP_EXPORT void sleepMs(double t)
VISP_EXPORT std::string getDateTime(const std::string &format="%Y/%m/%d %H:%M:%S")
VISP_EXPORT double measureTimeMs()