Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
TimestampMng.h
1/*
2 * Copyright 2020 IFPEN-CEA
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * SPDX-License-Identifier: Apache-2.0
17 */
18
19#pragma once
20
21#include <alien/utils/Precomp.h>
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Alien
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class Timestamp;
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
37
38//! Gestionnaire de Timestamp
39/*! Permet d'identifier les éléments à jour d'un point de vue global.
40 * Un TimestampMng est associé à un ensemble de Timestamp qui le connaisse et se réfère à
41 * lui pour la mise à jour de leur valeur 'à jour' */
42class ALIEN_EXPORT TimestampMng
43{
44 public:
45 TimestampMng();
46 TimestampMng(const TimestampMng& tm);
47
48 private:
49 TimestampMng(TimestampMng&&) = delete;
50 void operator=(const TimestampMng&) = delete;
51 void operator=(TimestampMng&&) = delete;
52
53 public:
54 virtual ~TimestampMng() {}
55
56 public:
57 //! Valeur du timestamp de référence
58 Int64 timestamp() const;
59
60 public:
61 //! Requête de mise à jour d'un Timestamp
62 void updateTimestamp(Timestamp* ts) const;
63
64 void addObserver(std::shared_ptr<ITimestampObserver> observer);
65
66 void clearObservers();
67
68 private:
69 /*! Le modificateur mutable est une erreur de conception à corriger mais sans urgence */
70 mutable Int64 m_timestamp;
71
72 UniqueArray<std::shared_ptr<ITimestampObserver>> m_observers;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // namespace Alien
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
Int64 timestamp() const
Valeur du timestamp de référence.
void updateTimestamp(Timestamp *ts) const
Requête de mise à jour d'un Timestamp.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17