Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
action.h
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_COMMON_ACTION_ACTION_H__
22#define __ANTARES_COMMON_ACTION_ACTION_H__
23
24#include <yuni/yuni.h>
25#include <yuni/job/job.h>
26#include <yuni/core/bind.h>
27#include <yuni/core/event.h>
28
29namespace Antares
30{
34namespace Dispatcher
35{
36namespace GUI
37{
43template<class C>
44void Post(const C* object, void (C::*method)(void));
45
51template<class C>
52void Post(const C* object, void (C::*method)(void), uint delay);
53
59void Post(const Yuni::Job::IJob::Ptr& job);
60
66void Post(const Yuni::Job::IJob::Ptr& job, uint delay);
67
73void Post(const Yuni::Bind<void()>& job);
74
80void Post(const Yuni::Bind<void()>& job, uint delay);
81
82} // namespace GUI
83
89template<class C>
90void Post(const C* object, void (C::*method)());
91
97template<class C, class UserDataT>
98void Post(const C* object, void (C::*method)(), const UserDataT& userdata);
99
105void Post(const Yuni::Job::IJob::Ptr& job);
106
112void Post(const Yuni::Bind<void()>& job);
113
117bool Start();
118
124void Stop(uint timeout = 10000 /*10s*/);
125
129void Wait();
130
134bool Empty();
135
136} // namespace Dispatcher
137} // namespace Antares
138
139#include "action.hxx"
140
141#endif // __ANTARES_COMMON_ACTION_ACTION_H__
bool Empty()
Get if some jobs are still running.
Definition action.cpp:140
void Wait()
Wait for the end of all jobs.
Definition action.cpp:135
void Post(const Yuni::Job::IJob::Ptr &job)
Post a new job in the thread pool.
Definition action.cpp:105
void Stop(uint timeout)
Stop the ASync Dispatcher.
Definition action.cpp:129
bool Start()
Start the ASync Dispatcher.
Definition action.cpp:110