VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
componentSystem.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include <list>
10 #include <map>
11 #include <string>
12 
13 #include <matrix/vlVector.h>
14 
15 class DtVrfObject;
16 class DtSimManager;
19 class DtString;
20 class DtSimComponent;
24 class DtReaderWriter;
25 class DtCriticalSection;
26 class DtSimComponentList;
27 
28 typedef DtReaderWriter* (*genericAttributeProviderFunctionType)(void*);
30 
36 {
37 private:
39 
42  DtComponentSystem& operator=(const DtComponentSystem& orig);
44 
45 public:
47  DtSimManager* simManager,
48  const DtComponentSystemDescriptor* desc,
49  DtComponentSystem* parentSystem);
50 
51  virtual ~DtComponentSystem();
52 
53  virtual bool init();
54 
61  virtual bool initializeFromDescriptor(int& priority, bool remoteOnly);
62 
64  virtual bool postAddComponentsInit();
65 
67  virtual void tick();
68 
71  virtual DtString name() const;
72 
76  virtual DtString fullName() const;
77 
80  virtual DtString printName() const;
81 
87  virtual void setPrintName(const DtString& name);
88 
90 
91  virtual DtSimComponentNetwork* componentNetwork();
92  virtual const DtSimComponentNetwork* componentNetwork() const;
94 
99  virtual DtComponentSystem* lookupSystem(const DtString& printName);
100 
107  virtual DtComponentSystem* lookupSystemFromRwName(const DtString& rwName);
108 
115  virtual DtComponentSystem* lookupSystemFromFullName(const DtString& fullName);
116 
119  virtual void getSystemNames(std::list<std::string>& nameList) const;
120 
123 
126  virtual DtVrfProcessStateRepositoryManager* processStateRepositoryManager();
127 
130 
131  virtual DtSimResourceManager& resourceManager();
132  virtual const DtSimResourceManager& resourceManager() const;
134 
137  virtual void restoreResources();
138 
139  typedef std::list< std::pair<DtSimComponent*, DtString> > DtComponentPortList;
140 
141 
150 
151  virtual void resolveSystemOutput(const DtString& outputName, DtComponentPortList& componentOutputs);
152 
153  virtual void resolveSystemInput(const DtString& inputName, DtComponentPortList& componentInputs);
155 
156 
157 
159 
160  virtual void enable();
161  virtual void disable();
163 
167  virtual bool isEnabled() const;
168  virtual void setIsEnabled(bool yesNo);
170 
173  virtual bool canBeDisabled() const;
175 
201  virtual bool addAttributeProviderFunction(DtString & attributeName,
202  genericAttributeProviderFunctionType attributeFunction,
203  void* controller);
204 
209  virtual bool addAttributeSetFunction(DtString& attributeName,
210  genericAttributeSetterFunctionType attributeFunction,
211  void* controller);
212 
221  virtual DtReaderWriter* getAttribute(const DtString& attributeName,
222  bool& error) const;
223 
231  virtual bool setAttribute(const DtString& attributeName,
232  DtReaderWriter* value);
233 
236  virtual std::list<std::string> getAllAttributeNames() const;
238 
240  virtual DtComponentSystemPSR* processStateRepository();
241 
244  virtual void setUseParentSystemResourceManager(bool);
245  virtual bool useParentSystemResourceManager() const;
247 
248 protected:
250  virtual bool createPsr();
251 
253  void removeCompatibilityPsrs();
254 
256  virtual void restore(DtSimComponentList*);
257 
258 protected:
265 
269 
271  std::map<DtString, std::pair<genericAttributeProviderFunctionType, void*> >
273  std::map<DtString, std::pair<genericAttributeSetterFunctionType, void*> >
275 
277  std::list< std::pair<DtString, DtVrfProcessStateRepositoryManager*> >
279 
287 };
288 
289 typedef std::list<DtComponentSystem*> DtComponentSystemList;
std::list< std::pair< DtSimComponent *, DtString > > DtComponentPortList
Definition: componentSystem.h:139
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtComponentSystem * myParentSystem
Definition: componentSystem.h:264
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
Definition: readerWriter.h:85
class DtSimResourceManager:
Definition: simResourceManager.h:38
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:47
DtComponentSystemPSR * myProcessStateRepository
Definition: componentSystem.h:263
bool myUseParentSystemResourceManager
If this is true uses the paren system&#39;s resource manager.
Definition: componentSystem.h:286
DtReaderWriter *(* genericAttributeProviderFunctionType)(void *)
Definition: componentSystem.h:28
std::list< DtComponentSystem * > DtComponentSystemList
Definition: componentSystem.h:289
std::map< DtString, std::pair< genericAttributeProviderFunctionType, void * > > myReadableAttributes
Map of attribute-names to provider-functions.
Definition: componentSystem.h:272
Class Description: DtSimComponentList.
Definition: simComponentList.h:42
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimManager * mySimManager
Definition: componentSystem.h:260
bool(* genericAttributeSetterFunctionType)(void *, DtReaderWriter *)
Definition: componentSystem.h:29
std::map< DtString, std::pair< genericAttributeSetterFunctionType, void * > > myWritableAttributes
Definition: componentSystem.h:274
std::list< std::pair< DtString, DtVrfProcessStateRepositoryManager * > > myAddedCompatibilityPsrs
This list is kept so the compatibility PSRs can be removed upon destruction.
Definition: componentSystem.h:278
*array controller(no time code)*/template< class Instance
//!//!//!//!//!//!//!//!//!//!//!//
Definition: asyncJobServer.h:39
DtSimComponentNetwork * myComponentNetwork
Definition: componentSystem.h:262
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
DtComponentSystemPSR.
Definition: componentSystemPSR.h:26
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
RAII manager object for accessing paralle tick functionality.
Definition: parallelTickManager.h:324
const DtComponentSystemDescriptor * mySystemDescriptor
Definition: componentSystem.h:259
DtString myPrintName
A customized print name, if one was specified.
Definition: componentSystem.h:268
DtVrfObject * myVrfObject
Definition: componentSystem.h:261

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)