source: src/UIElements/Qt4/InstanceBoard/ObservedMaximumAtomTrajectorySize.hpp

Candidate_v1.7.1 stable v1.7.1
Last change on this file was f2d5ce, checked in by Frederik Heber <frederik.heber@…>, 6 days ago

QtTimeLine no longers queries WorldTime directly.

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 * ObservedMaximumAtomTrajectorySize.hpp
3 *
4 * Created on: Nov 10, 2025
5 * Author: heber
6 */
7
8
9#ifndef OBSERVEDMAXIMUMTRAJECTORYSIZE_HPP_
10#define OBSERVEDMAXIMUMTRAJECTORYSIZE_HPP_
11
12// include config.h
13#ifdef HAVE_CONFIG_H
14#include <config.h>
15#endif
16
17
18#include "CodePatterns/Singleton.hpp"
19#include "CodePatterns/Observer/Observable.hpp"
20#include "CodePatterns/Observer/Observer.hpp"
21
22/**
23 * Relays the updates from all (individual!) Atom::TrajectoryChanged
24 * received through the AtomObserver, computes the maximum trajectory
25 * size over all atoms from that and provides this as an observable
26 * derived value.
27 *
28 * This can then be used inside an \a ObservedValue to pass on to
29 * the Qt side of molecuilder.
30 */
31class ObservedMaximumAtomTrajectorySize :
32 public Singleton<ObservedMaximumAtomTrajectorySize>,
33 public Observable
34{
35public:
36 //!> grant Singleton access to cstor and dstor.
37 friend class Singleton< ObservedMaximumAtomTrajectorySize >;
38
39 enum NotificationType {
40 MaximumChanged,
41 NotificationType_MAX // denotes the maximum of available notification types
42 };
43
44 /** Dstor of ObservedMaximumAtomTrajectorySize.
45 *
46 */
47 virtual ~ObservedMaximumAtomTrajectorySize();
48
49 const int GetMaximumAtomTrajectorySize() const;
50
51 // Observer functions
52 void update(Observable *publisher);
53 void subjectKilled(Observable *publisher);
54 void recieveNotification(Observable *publisher, Notification_ptr notification);
55
56private:
57
58 /** private cstor of ObservedMaximumAtomTrajectorySize due to singleton.
59 */
60 ObservedMaximumAtomTrajectorySize();
61
62private:
63 //!> maximum size over all current atom trajectories
64 int maximumAtomTrajectorySize;
65
66 //!> whether we are signed on to AtomObserver
67 bool atomObserver_signedOn;
68};
69
70#endif /* OBSERVEDMAXIMUMTRAJECTORYSIZE_HPP_ */
Note: See TracBrowser for help on using the repository browser.