VR-Forces 5.0.3 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) 2022 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 <boost/unordered_map.hpp>
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:
65 
67  virtual void addElement(DtAggregateElement* element) override;
68 
70  virtual void destroyElement(DtElementID elementID) override;
71 
74  virtual void createElement(DtAggregateStateListener&) override;
75  typedef boost::unordered_map<std::string, DtVrlinkAggregateElement*>
77 
78  const GlobalIdToAggregateElementMap& globalIdToElementMap() const;
79  GlobalIdToAggregateElementMap& globalIdToElementMap();
80 
84  virtual void slot_subordinatesChanged(DtVrlinkAggregateElement*);
85 
86  protected:
89  virtual void watchForGlobalIdDiscovery(DtElementID parent, const std::string& globalId);
90 
92  virtual void slot_entityElementCreated(DtEntityElement*);
93 
95  virtual void aggregateElementCreated(DtVrlinkAggregateStateListener&, DtVrlinkAggregateElement*);
96 
98  virtual void removeFromWatchList(DtElementID id);
99 
101  virtual void connectToElementProcessor();
102  virtual void disconnectFromElementProcessor();
103 
107  virtual void mapGlobalIdsToElementIds(DtElementID parent,
108  const std::set<std::string>& globalIds, DtElementIDHierarchy::ElementIDs& children);
109 
110  virtual void slot_hierarchyItemToBeRemoved(DtElementIDHierarchyNode* node);
111 
112  virtual DtVrlinkConnection& vrlinkConnection();
113  virtual const DtVrlinkConnection& vrlinkConnection() const;
114 
115  protected:
116 
117  typedef boost::unordered_map<std::string, DtElementID> WatchList;
118 
122  };
123 
127  {
128 
129  public:
130 
132  virtual DtAggregateElementManager* create(DtBaseConnection& conn);
133  };
134  }
135 }
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:156
The DtAggregateStateListener extends DtEntityStateListener. It provides a interface to all the visual...
Definition: DtAggregateStateListener.h:33
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
#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:32
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:42

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)