The Gaudi Framework
master (123e188a)
Toggle main menu visibility
Loading...
Searching...
No Matches
PeriodicAction.h
Go to the documentation of this file.
1
/***********************************************************************************\
2
* (c) Copyright 2024-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3
* *
4
* This software is distributed under the terms of the Apache version 2 licence, *
5
* copied verbatim in the file "LICENSE". *
6
* *
7
* In applying this licence, CERN does not waive the privileges and immunities *
8
* granted to it by virtue of its status as an Intergovernmental Organization *
9
* or submit itself to any jurisdiction. *
10
\***********************************************************************************/
11
#pragma once
12
13
#include <chrono>
14
#include <functional>
15
#include <future>
16
#include <thread>
17
18
namespace
Gaudi::Utils
{
29
class
PeriodicAction
{
30
public
:
31
using
clock
= std::chrono::steady_clock;
32
using
time_point
= clock::time_point;
33
using
callback_t
= std::function<void()>;
34
35
PeriodicAction
(
callback_t
callback, std::chrono::milliseconds period_duration,
bool
autostart =
true
,
36
unsigned
int
repetitions = 0 );
37
PeriodicAction
(
PeriodicAction
&& ) =
default
;
38
PeriodicAction
&
operator=
(
PeriodicAction
&& ) =
default
;
39
40
~PeriodicAction
();
41
42
void
start
();
43
void
stop
();
44
45
private
:
46
std::thread
m_thread
;
47
std::promise<void>
m_stop_thread
;
48
callback_t
m_callback
;
49
std::chrono::milliseconds
m_period_duration
;
50
unsigned
int
m_repetitions
;
51
};
52
}
// namespace Gaudi::Utils
Gaudi::Utils::PeriodicAction::PeriodicAction
PeriodicAction(callback_t callback, std::chrono::milliseconds period_duration, bool autostart=true, unsigned int repetitions=0)
Definition
PeriodicAction.cpp:16
Gaudi::Utils::PeriodicAction::m_period_duration
std::chrono::milliseconds m_period_duration
Definition
PeriodicAction.h:49
Gaudi::Utils::PeriodicAction::start
void start()
Definition
PeriodicAction.cpp:24
Gaudi::Utils::PeriodicAction::m_callback
callback_t m_callback
Definition
PeriodicAction.h:48
Gaudi::Utils::PeriodicAction::operator=
PeriodicAction & operator=(PeriodicAction &&)=default
Gaudi::Utils::PeriodicAction::m_stop_thread
std::promise< void > m_stop_thread
Definition
PeriodicAction.h:47
Gaudi::Utils::PeriodicAction::callback_t
std::function< void()> callback_t
Definition
PeriodicAction.h:33
Gaudi::Utils::PeriodicAction::~PeriodicAction
~PeriodicAction()
Definition
PeriodicAction.cpp:22
Gaudi::Utils::PeriodicAction::stop
void stop()
Definition
PeriodicAction.cpp:45
Gaudi::Utils::PeriodicAction::PeriodicAction
PeriodicAction(PeriodicAction &&)=default
Gaudi::Utils::PeriodicAction::clock
std::chrono::steady_clock clock
Definition
PeriodicAction.h:31
Gaudi::Utils::PeriodicAction::time_point
clock::time_point time_point
Definition
PeriodicAction.h:32
Gaudi::Utils::PeriodicAction::m_repetitions
unsigned int m_repetitions
Definition
PeriodicAction.h:50
Gaudi::Utils::PeriodicAction::m_thread
std::thread m_thread
Definition
PeriodicAction.h:46
Gaudi::Utils
Definition
Property.h:693
GaudiUtils
include
Gaudi
Utils
PeriodicAction.h
Generated on
for The Gaudi Framework by
1.17.0