LibreOffice Module canvas (master) 1
elapsedtime.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_CANVAS_ELAPSEDTIME_HXX
21#define INCLUDED_CANVAS_ELAPSEDTIME_HXX
22
24#include <memory>
25
26namespace canvas::tools
27{
35 {
36 public:
45
56 ElapsedTime( std::shared_ptr<ElapsedTime> xTimeBase );
57
65 void reset();
66
77 double getElapsedTime() const;
78
87 void pauseTimer();
88
100 void continueTimer();
101
114 void adjustTimer( double fOffset );
115
127 void holdTimer();
128
134 void releaseTimer();
135
136 private:
137 static double getSystemTime();
138 double getCurrentTime() const;
139 double getElapsedTimeImpl() const; // does not set m_fLastQueriedTime
140
141 const std::shared_ptr<ElapsedTime> m_pTimeBase;
142
144 mutable double m_fLastQueriedTime;
145
148
151
154
157 };
158
159}
160
161#endif /* INCLUDED_CANVAS_ELAPSEDTIME_HXX */
162
163/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define CANVASTOOLS_DLLPUBLIC
Calculate elapsed time.
Definition: elapsedtime.hxx:35
double m_fFrozenTime
Instant, when last pause or hold started, relative to m_fStartTime.
double m_fStartTime
Start time, from which the difference to the time base is returned.
double m_fLastQueriedTime
To validate adjustTimer() calls with bLimitToLastQueriedTime=true.
const std::shared_ptr< ElapsedTime > m_pTimeBase
bool m_bInPauseMode
True, when in pause mode.
bool m_bInHoldMode
True, when in hold mode.