VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtVrlinkAggregateElementManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
18 
19 #include <vlutil/vlSmartPointers.h>
20 #include <vl/globalObjectDesignator.h>
21 
22 #include <unordered_map>
23 
24 namespace makVrv
25 {
26 
27  class DtAggregateEchelonManager;
28  class DtAggregateElement;
29  class DtAggregateStateListener;
30 
31  namespace DT_PROTOCOL_NAMESPACE
32  {
33  class DtVrlinkAggregateStateListener;
34  class DtVrlinkAggregateElement;
35  class DtVrlinkConnection;
44  {
45  public:
48 
51 
54 
57 
60 
62  DtVrlinkAggregateElement* findElementFromGlobalId(const DtGlobalObjectDesignator& id);
63 
64  public:
66  virtual void destroyElement(DtElementID elementID) override;
67 
70  virtual DtAggregateElement* createElement(DtAggregateStateListener&) override;
71 
72  typedef std::unordered_map<std::string, DtVrlinkAggregateElement*>
74 
75  const GlobalIdToAggregateElementMap& globalIdToElementMap() const;
76  GlobalIdToAggregateElementMap& globalIdToElementMap();
77 
81  virtual void slot_subordinatesChanged(DtVrlinkAggregateElement*);
82 
83  protected:
86  virtual void watchForGlobalIdDiscovery(DtElementID parent, const std::string& globalId);
87 
89  virtual void slot_entityElementCreated(DtEntityElement*);
90 
92  virtual void aggregateElementCreated(DtVrlinkAggregateStateListener&, DtVrlinkAggregateElement*);
93 
95  virtual void removeFromWatchList(DtElementID id);
96 
98  virtual void connectToElementProcessor();
99  virtual void disconnectFromElementProcessor();
100 
104  virtual void mapGlobalIdsToElementIds(DtElementID parent,
105  const std::set<std::string>& globalIds, DtElementIDHierarchy::ElementIDs& children);
106 
107  virtual void slot_hierarchyItemToBeRemoved(DtElementIDHierarchyNode* node);
108 
109  virtual DtVrlinkConnection& vrlinkConnection();
110  virtual const DtVrlinkConnection& vrlinkConnection() const;
111 
112  protected:
113 
114  typedef std::unordered_map<std::string, DtElementID> WatchList;
115 
119  };
120 
124  {
125 
126  public:
127 
129  virtual DtAggregateElementManager* create(DtBaseConnection& conn);
130  };
131  }
132 }
A single Aggregate element. An Aggregate element may be visualized using multiple visualizer sets one...
Definition: DtAggregateElement.h:32
std::vector< DtElementID > ElementIDs
Definition: DtElementIDHierarchy.h:114
The abstract Aggregate Element Manager creator for the manager class.
Definition: DtAggregateElementManager.h:157
The DtAggregateStateListener extends DtEntityStateListener. It provides a interface to all the visual...
Definition: DtAggregateStateListener.h:33
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
Contains makVrv::DtElementIDHierarchy class. This is an arbitrary hierarchy class that will allow hie...
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:31
Base class to provide boost signal/slot management.
Contains makVrv::DtEntityElementManager class.
Contains DLL export macros.
The DtAggregateElementManager is used to create DtAggregateElements. It maintains a map of all those ...
Definition: DtAggregateElementManager.h:43

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)