Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
RunQueueEvent.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* RunQueueEvent.h (C) 2000-2025 */
9/* */
10/* Evènement sur une file d'exécution. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ACCELERATOR_CORE_RUNQUEUEEVENT_H
13#define ARCANE_ACCELERATOR_CORE_RUNQUEUEEVENT_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Ref.h"
18#include "arcane/utils/AutoRef.h"
19
20#include "arcane/accelerator/core/RunCommand.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane::Accelerator
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
43class ARCANE_ACCELERATOR_CORE_EXPORT RunQueueEvent
44{
45 friend RunQueueEvent makeEvent(const Runner& runner);
46 friend Ref<RunQueueEvent> makeEventRef(const Runner& runner);
47 friend RunQueue;
48 friend impl::RunQueueImpl;
49 class Impl;
50
51 private:
52
54 explicit RunQueueEvent(const Runner& runner);
55
56 public:
57
60 RunQueueEvent& operator=(const RunQueueEvent&);
61 RunQueueEvent(RunQueueEvent&&) noexcept;
62 RunQueueEvent& operator=(RunQueueEvent&&) noexcept;
64
65 public:
66
72 bool isNull() const { return m_p.get() == nullptr; }
73
75 void wait();
76
77 private:
78
79 impl::IRunQueueEventImpl* _internalEventImpl() const;
80
81 private:
82
84};
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
94inline RunQueueEvent
95makeEvent(const Runner& runner)
96{
97 return RunQueueEvent(runner);
98}
99
100/*---------------------------------------------------------------------------*/
101/*---------------------------------------------------------------------------*/
106makeEventRef(const Runner& runner)
107{
108 return makeRef(new RunQueueEvent(runner));
109}
110
111/*---------------------------------------------------------------------------*/
112/*---------------------------------------------------------------------------*/
113
114} // End namespace Arcane::Accelerator
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119#endif
Evènement pour une file d'exécution.
bool isNull() const
Indique si l'instance est nulle.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Definition core/Runner.h:68
Interface de l'implémentation d'un évènement.
File d'exécution pour accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
Espace de nom pour l'utilisation des accélérateurs.
RunQueueEvent makeEvent(const Runner &runner)
Créé un évènement associé à runner.
Ref< RunQueueEvent > makeEventRef(const Runner &runner)
Créé un évènement associé à runner.