VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfSyncMatrixManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
15 #include <vrfutil/rwUUID.h>
16 #include <vrvCore/DtEntityState.h>
17 #include <vrvCore/DtStateView.h>
21 
25 
26 #include <vrvUtil/signalslib.h>
27 
28 #include <vlpi/simulationAddress.h>
29 #endif
30 #include <boost/signals2.hpp>
31 
32 #include <QtCore/QObject>
33 
34 namespace makVrv
35 {
36  class DtDe;
37 }
38 
39 class QWidget;
40 class DtSimMessage;
41 class DtSimulationAddress;
42 class DtVrfObjectMessage;
43 
44 namespace makVrf
45 {
46  class DtSyncMatrixDialogInterface;
47  class DtVrfBackendState;
48 
50  {
51  Q_OBJECT
52 
53  public:
54 
56  {
57  SyncMatrixWithPhases(const DtString name = ""):myName(name) {}
58  SyncMatrixWithPhases(const SyncMatrixWithPhases& orig):myName(orig.myName), myPhases(orig.myPhases), myPlansStatus(orig.myPlansStatus) {}
59 
65  };
66 
67  typedef std::map<DtUUID, SyncMatrixWithPhases> SyncMatrices;
68 
70  {
72  myUUID(uuid), myUpdateUUID(uuid), mySubEntitiesCount(0), mySubAggregatesCount(0){}
77  std::string myMarkingText;
78  };
79 
80  typedef std::map<makVrv::DtUniqueID, ObjectUpdateMonitor> ObjectUpdateMonitorsMap;
81 
84 
86  virtual ~DtVrfSyncMatrixManager();
87 
89  static DtVrfSyncMatrixManager& instance(makVrv::DtDe& de);
90 
92  virtual void show(QWidget* parent, const DtUUID& forUUID = DtUUID::nullUUID());
93 
94  virtual void requestSyncMatrices();
95 
96  virtual const SyncMatrices& syncMatrices() const;
97 
98  virtual void setSelectedSyncMatrix(const DtUUID& uuid);
99  virtual const DtUUID& selectedSyncMatrix();
100 
101  virtual void requestNewSyncMatrix(const QString& name ="");
102  virtual void requestSyncMatrixRename(const DtUUID& uuid, const QString& name);
103  virtual void requestSyncMatrixRemove(const DtUUID& uuid);
104 
105  virtual void requestSyncMatrixPhaseRemove(const DtUUID& uuid, const QString& phaseName);
106 
107  virtual void requestNewSyncMatrixObjects(const DtUUID& syncMatrix, const std::vector<DtUUID>& objects);
108  virtual void requestSyncMatrixObjectRemove(const DtUUID& syncMatrix, const DtUUID& object);
109 
110  virtual void requestSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
111  const QString& phaseName);
112 
113  virtual void removeSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
114  const QString& phaseName);
115 
116  virtual void activateSyncMatrixPlan(const DtUUID& syncMatrix, const DtUUID& object,
117  const QString& phaseName, bool activate);
118 
119  virtual void setSyncMatrixPhaseInfo(const DtUUID& syncMatrix,
120  const QString& currentName, int phaseIndex,
121  const QString& requestedName, bool endConditionSpecified,
122  const DtSimCondExpr* endCondition = NULL);
123 
124  virtual bool objectExistsInMatrix(const SyncMatrixWithPhases& syncMatrix, const DtUUID& object) const;
125  virtual bool objectExistsInMatrix(const DtUUID& syncMatrix, const DtUUID& object) const;
126 
128  virtual bool objectExistsInMatrix(const DtUUID& object) const;
129 
131  virtual QString findFirstSyncMatrixFor(const DtUUID&) const;
132 
133  virtual void copyPlanToClipboard(const DtUUID& syncMatrix, const DtUUID& object, const QString& phaseName);
134  virtual void copyPlanFromClipboard(const DtUUID& syncMatrix, const DtUUID& object, const QString& phaseName);
135 
136  boost::signals2::signal<void()> signal_clearSyncMatrices;
137  boost::signals2::signal<void()> signal_syncMatrixManagerChanged;
138  boost::signals2::signal<void(const DtUUID&, const DtString&)> signal_receivedRenameSyncMatrix;
139  boost::signals2::signal<void(const DtUUID&)> signal_receivedRemoveSyncMatrix;
140  boost::signals2::signal<void(bool)> signal_enableAddAndRenameSyncMatrix;
141  boost::signals2::signal<void(const DtUUID&)> signal_syncMatrixPhaseUpdate;
142  boost::signals2::signal<void(const DtUUID&)> signal_receivedSyncMatrixInfo;
143  boost::signals2::signal<void(const DtUUID&)> signal_receivedSyncMatrixObjectsList;
144  boost::signals2::signal<void(const DtUUID&, const DtString&, const DtString&, bool)> signal_receivedMoveToPhase;
145  boost::signals2::signal<void(const DtUUID&, const DtString&, const DtString&, bool, bool)> signal_receivedPlanStatus;
146 
147  boost::signals2::signal<void(const DtUUID&, const DtUUID&)> signal_syncMatrixObjectUpdated;
148  boost::signals2::signal<void(const DtUUID&, const DtString&)> signal_syncMatrixObjectRenamed;
149 
150  protected:
151  virtual DtSyncMatrixDialogInterface* createSyncMatrixDialog(QWidget* parent);
152 
153  virtual void sessionStatusChanged(bool status);
154  virtual void backendUpdated(int flags);
155 
156  virtual void clearAllSyncMatrices();
157 
158  virtual makVrv::DtUniqueID registerToObjectUpdate(makVrv::DtUniqueID id);
159  virtual void unregisterToObjectUpdate(makVrv::DtUniqueID id);
160 
161  virtual void registerListToObjectUpdates(const DtRwSyncMatrixObjectList& objectList);
162  virtual void registerToObjectUpdateInHierarchy(makVrv::DtUniqueID id);
163  virtual void resetObjectUpdateMonitors();
164 
165  virtual void processSyncMatrixListResponse(DtSimMessage* msg);
166  virtual void processSyncMatrixRenameResponse(DtSimMessage* msg);
167  virtual void processSyncMatrixRemoveResponse(DtSimMessage* msg);
168  virtual void processSyncMatrixRemovePhaseResponse(DtSimMessage* msg);
169  virtual void processSyncMatrixInfoResponse(DtSimMessage* msg);
170  virtual void processSyncMatrixObjectsListResponse(DtSimMessage* msg);
171  virtual void processSyncMatrixPhaseInfoResponse(DtSimMessage* msg);
172  virtual void processSyncMatrixCurrentPhase(DtSimMessage* msg);
173  virtual void processSyncMatrixPlansStatus(DtSimMessage* msg);
174  virtual void receivedPlanCallbackForCopy(DtSimMessage* msg);
175 
176  virtual void slot_onObjectAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
177  virtual void slot_onObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
178  virtual void slot_onObjectNameChanged(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s, const std::string& newName);
179 
180  virtual void slot_onAggregateStateViewUpdated(makVrv::DtStateView<DtVrlinkSimulatedAggregateState>* s);
181 
182  protected:
183 
190 
194  };
195 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
SyncMatrixWithPhases(const SyncMatrixWithPhases &orig)
Definition: vrfSyncMatrixManager.h:58
DtString myName
Definition: vrfSyncMatrixManager.h:60
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
boost::signals2::signal< void(const DtUUID &, const DtUUID &)> signal_syncMatrixObjectUpdated
Definition: vrfSyncMatrixManager.h:147
boost::signals2::signal< void()> signal_syncMatrixManagerChanged
Definition: vrfSyncMatrixManager.h:137
Definition: vrfSyncMatrixManager.h:55
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtUUID mySelectedSyncMatrix
Definition: vrfSyncMatrixManager.h:188
boost::signals2::signal< void(const DtUUID &, const DtString &, const DtString &, bool)> signal_receivedMoveToPhase
Definition: vrfSyncMatrixManager.h:144
DtUUID myUUID
Definition: vrfSyncMatrixManager.h:73
boost::signals2::signal< void(const DtUUID &, const DtString &)> signal_syncMatrixObjectRenamed
Definition: vrfSyncMatrixManager.h:148
makVrv::DtDe & myDe
Definition: vrfSyncMatrixManager.h:184
Contains makVrv::DtStateView class.
DtUUID myWaitingForCopyObject
Definition: vrfSyncMatrixManager.h:191
boost::signals2::signal< void(const DtUUID &, const DtString &)> signal_receivedRenameSyncMatrix
Definition: vrfSyncMatrixManager.h:138
SyncMatrixWithPhases(const DtString name="")
Definition: vrfSyncMatrixManager.h:57
boost::signals2::signal< void(const DtUUID &)> signal_syncMatrixPhaseUpdate
Definition: vrfSyncMatrixManager.h:141
QString myWaitingForCopyPhase
Definition: vrfSyncMatrixManager.h:193
Contains the DtUUID class declaration.
boost::signals2::signal< void()> signal_clearSyncMatrices
Definition: vrfSyncMatrixManager.h:136
Definition: vrfSyncMatrixManager.h:49
boost::signals2::signal< void(const DtUUID &, const DtString &, const DtString &, bool, bool)> signal_receivedPlanStatus
Definition: vrfSyncMatrixManager.h:145
DtRwSyncMatrixObjectList myObjects
Definition: vrfSyncMatrixManager.h:62
std::map< makVrv::DtUniqueID, ObjectUpdateMonitor > ObjectUpdateMonitorsMap
Definition: vrfSyncMatrixManager.h:80
boost::signals2::signal< void(bool)> signal_enableAddAndRenameSyncMatrix
Definition: vrfSyncMatrixManager.h:140
ObjectUpdateMonitorsMap myObjectsMonitor
Definition: vrfSyncMatrixManager.h:189
std::string myMarkingText
Definition: vrfSyncMatrixManager.h:77
static const DtUUID & nullUUID()
DtUUID myWaitingForCopyMatrix
Definition: vrfSyncMatrixManager.h:192
Contains makVrv::DtVirtualBaseClass class.
DtRwSyncMatrixPhaseList myPhases
Definition: vrfSyncMatrixManager.h:63
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(const DtUUID &)> signal_receivedRemoveSyncMatrix
Definition: vrfSyncMatrixManager.h:139
DtString myCurrentPhase
Definition: vrfSyncMatrixManager.h:61
This list stores entries of DtRwSyncMatrixPlan.
Definition: rwSyncMatrixObjectList.h:17
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
Definition: vrfSyncMatrixManager.h:69
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
std::map< DtUUID, SyncMatrixWithPhases > SyncMatrices
Definition: vrfSyncMatrixManager.h:67
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
int mySubEntitiesCount
Definition: vrfSyncMatrixManager.h:75
Definition: rwSyncMatrixPhaseList.h:17
Base class to provide boost signal/slot management.
ObjectUpdateMonitor(const DtUUID &uuid=DtUUID::nullUUID())
Definition: vrfSyncMatrixManager.h:71
Definition: syncMatrixDialogInterface.h:30
DtUUID myUpdateUUID
Definition: vrfSyncMatrixManager.h:74
boost::signals2::signal< void(const DtUUID &)> signal_receivedSyncMatrixObjectsList
Definition: vrfSyncMatrixManager.h:143
boost::signals2::signal< void(const DtUUID &)> signal_receivedSyncMatrixInfo
Definition: vrfSyncMatrixManager.h:142
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtRwSyncMatrixPlanList myPlansStatus
Definition: vrfSyncMatrixManager.h:64
int mySubAggregatesCount
Definition: vrfSyncMatrixManager.h:76
makVrv::DtSignalConnectionManager myConnections
Definition: vrfSyncMatrixManager.h:187
SyncMatrices mySyncMatrices
Definition: vrfSyncMatrixManager.h:186
This list stores entries of DtRwSyncMatrixPlan.
Definition: rwSyncMatrixPlanList.h:17
DtSyncMatrixDialogInterface * mySyncMatrixDialog
Definition: vrfSyncMatrixManager.h:185

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)