VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simComponentManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: compMgr.h,v $ $Revision: 1.27 $ $State: Exp $
7 *******************************************************************************/
8 
11 
13 
14 #ifndef DtSimComponentManager_H_
15 #define DtSimComponentManager_H_
16 
17 #include "vrfobjcore/vrfObject.h"
22 
23 class DtSimComponent;
24 class DtSimComponentList;
28 class DtPortConnection;
32 class DtCriticalSection;
34 class DtSimMessage;
35 
40 {
41 private:
43 
46  const DtSimComponentManager & operator=(const DtSimComponentManager &
47  orig);
49 
50 public:
51 
54 
56  virtual ~DtSimComponentManager();
57 
58  virtual bool init();
59 
60  virtual void tick();
61 
64  virtual DtVrfObject * vrfObject() const;
65 
66  virtual bool addComponents();
67 
68  virtual bool addSensorComponent(DtSimComponent * component);
69  virtual bool addControllerComponent(DtSimComponent * component);
70  virtual bool addActuatorComponent(DtSimComponent * component);
71 
75  virtual bool removeSensorComponent(DtSimComponent * component);
79  virtual bool removeControllerComponent(DtSimComponent * component);
83  virtual bool removeActuatorComponent(DtSimComponent * component);
84 
86  virtual bool hasComponents() const;
87 
90  virtual std::list<DtSimComponent*> lookupComponentsByType(const DtString& typeString) const;
91 
98  virtual DtSimComponent * lookupComponent(const DtString& name) const;
99 
108  virtual DtComponentSystem* lookupSystem(const std::string& printName);
109  virtual const DtComponentSystem* lookupSystem(const std::string& printName) const;
110 
115  virtual DtComponentSystem* lookupSystemFromFullName(const std::string& fullName);
116 
117 
121  virtual void setAllSystemEnabled(bool enableDisable);
122 
124  virtual void setSystemEnabled(const std::string& systemName, bool enableDisable, bool sendSystemUpdate);
125 
127  virtual std::list<std::string> getSystemNames() const;
128 
133  virtual DtString systemCategory(DtString& systemName) const;
134 
135  virtual DtSimComponentList * sensorComponentList() const;
136  virtual DtControllerComponentList * controllerComponentList() const;
137  virtual DtSimComponentList * actuatorComponentList() const;
138 
141 
142  virtual DtComponentSystem* baseSystem();
143  virtual const DtComponentSystem* baseSystem() const;
145 
148  virtual DtString type() const;
149 
150  virtual DtList* connectionList();
151  virtual DtList* groupConnectionList();
152 
157  static DtSimComponentManagerFactory * factory();
158  static void setFactory(DtSimComponentManagerFactory * factory);
159 
160  static void addSimComponentManagerCreatorFcn(const DtString & type,
162 
163  static DtSimComponentManager * creator(DtVrfObject * vrfObject);
164 
166  static DtSimComponentManager * createComponentManager(const DtString & type,
167  DtVrfObject * vrfObject);
168 
171  virtual void allSystems(DtComponentSystemList&) const;
172 
174  virtual bool hasSystemThatCanBeDisabled();
175 
178 
179  static void systemListRequestCallback(const DtVrfObjectMessage* msg, void* usr);
180  virtual void processSystemListRequest(const DtVrfObjectMessage* msg);
182 
185 
186  static void genericSetRwRequestCallback(const DtVrfObjectMessage* msg, void* usr);
187  virtual void processGenericSetRwRequest(const DtVrfObjectMessage* msg);
189 
190  static void notifySetDataSubscriberCallback(DtSimMessage * msg, void * usr);
191  virtual void notifySetDataSubscriber(DtSimMessage * msg);
192  virtual void sendGenericSetRwStateSubscribersUpdate(const DtSetMessageType& type, const DtUUID& uuid = DtUUID::nullUUID());
193 
195  virtual void sendSystemStateUpdated(const std::vector<DtComponentSystem*>& system);
196  virtual void sendSystemStateUpdated(DtComponentSystem* system);
197 protected:
200  virtual void allSystems(DtComponentSystemList&, DtComponentSystem*) const;
201 
202 
203 protected:
206 
209  std::set<DtUUID> mySystemStateSubscribers;
210  std::map< DtString, std::set< DtUUID > > myGenericSetRwStateSubscribers;
212 };
213 
214 #endif
215 
DtList myGroupConnectionList
Definition: simComponentManager.h:208
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Class Description: DtControllerComponentList.
Definition: controllerComponentList.h:38
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtComponentSystem * myComponentSystem
Definition: simComponentManager.h:205
A set of DtSimComponent and DtComponentSystem instances that are connected with a set of connections...
Definition: simComponentNetwork.h:33
A DtComponentSystem is a collection of DtSimComponents that are associated with each other...
Definition: componentSystem.h:35
std::map< DtString, std::set< DtUUID > > myGenericSetRwStateSubscribers
Definition: simComponentManager.h:210
Instances of DtComponentDescriptorList are readable/writeable lists of DtComponentDescriptor objects...
Definition: componentDescriptorList.h:22
DtVrfObject * myVrfObject
Definition: simComponentManager.h:204
DtSimComponentManager *(* DtSimComponentManagerCreatorFcn)(DtVrfObject *vrfObject)
Definition: simComponentManagerFactory.h:23
std::list< DtComponentSystem * > DtComponentSystemList
Definition: componentSystem.h:292
Class Description: DtSimComponentList.
Definition: simComponentList.h:42
static const DtUUID & nullUUID()
A DtPortConnection represents a connection between a DtOutputPort and a DtInputPort.
Definition: portConnection.h:29
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
Instances of DtConnectionDescriptorList are readable/writeable lists of DtConnectionDescriptor object...
Definition: connectionDescriptorList.h:22
std::set< DtUUID > mySystemStateSubscribers
Definition: simComponentManager.h:209
The DtSimComponentManager is the top level class within a DtVrfObject which owns and manages all the ...
Definition: simComponentManager.h:39
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
Descriptor for a DtComponentSystem.
Definition: componentSystemDescriptor.h:23
Admin content for a message that requests the available system lists for an entity The expected respo...
Definition: systemListRequestAdmin.h:31
static DtSimComponentManagerFactory * theFactory
Definition: simComponentManager.h:211
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: portGroupConnection.h:25
class DtSimComponentManagerFactory:
Definition: simComponentManagerFactory.h:31
RAII manager object for accessing paralle tick functionality.
Definition: parallelTickManager.h:324
DtList myConnectionList
Definition: simComponentManager.h:207

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)