![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2000 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: compMgr.h,v $ $Revision: 1.27 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef DtSimComponentManager_H_ 00015 #define DtSimComponentManager_H_ 00016 00017 #include "vrfobjcore/vrfObject.h" 00018 #include "vrfobjcore/cmpMgrFact.h" 00019 #include "vrfobjcore/vrfobjcoreDefines.h" 00020 #include "vrfobjcore/compSystem.h" 00021 00022 class DtSimComponent; 00023 class DtSimComponentList; 00024 class DtControllerComponentList; 00025 class DtComponentDescriptorList; 00026 class DtConnectionDescriptorList; 00027 class DtPortConnection; 00028 class DtPortGroupConnection; 00029 class DtSimComponentNetwork; 00030 class DtComponentSystemDescriptor; 00031 00035 class DT_DLL_vrfobjcore DtSimComponentManager 00036 { 00037 private: 00039 00040 DtSimComponentManager(); 00041 DtSimComponentManager(const DtSimComponentManager & orig); 00042 const DtSimComponentManager & operator=(const DtSimComponentManager & 00043 orig); 00045 00046 public: 00047 00049 DtSimComponentManager(DtVrfObject * vrfObject); 00050 00052 virtual ~DtSimComponentManager(); 00053 00054 virtual bool init(); 00055 00056 virtual void tick(); 00057 00060 virtual DtVrfObject * vrfObject() const; 00061 00062 virtual bool addComponents(); 00063 00064 virtual bool addSensorComponent(DtSimComponent * component); 00065 virtual bool addControllerComponent(DtSimComponent * component); 00066 virtual bool addActuatorComponent(DtSimComponent * component); 00067 00071 virtual bool removeSensorComponent(DtSimComponent * component); 00075 virtual bool removeControllerComponent(DtSimComponent * component); 00079 virtual bool removeActuatorComponent(DtSimComponent * component); 00080 00082 virtual bool hasComponents() const; 00083 00090 virtual DtSimComponent * lookupComponent(const DtString& name) const; 00091 00092 virtual DtSimComponentList * sensorComponentList() const; 00093 virtual DtControllerComponentList * controllerComponentList() const; 00094 virtual DtSimComponentList * actuatorComponentList() const; 00095 00098 00099 virtual DtComponentSystem* baseSystem(); 00100 virtual const DtComponentSystem* baseSystem() const; 00102 00105 virtual DtString type() const; 00106 00107 virtual DtList* connectionList(); 00108 virtual DtList* groupConnectionList(); 00109 00114 static DtSimComponentManagerFactory * factory(); 00115 static void setFactory(DtSimComponentManagerFactory * factory); 00116 00117 static void addSimComponentManagerCreatorFcn(const DtString & type, 00118 DtSimComponentManagerCreatorFcn fcn); 00119 00120 static DtSimComponentManager * creator(DtVrfObject * vrfObject); 00121 00123 static DtSimComponentManager * createComponentManager(const DtString & type, 00124 DtVrfObject * vrfObject); 00125 00128 virtual void allSystems(DtComponentSystemList&); 00129 00130 protected: 00133 virtual void allSystems(DtComponentSystemList&, DtComponentSystem*); 00134 00135 protected: 00136 DtVrfObject * myVrfObject; 00137 DtComponentSystem* myComponentSystem; 00138 00139 DtList myConnectionList; 00140 DtList myGroupConnectionList; 00141 00142 static DtSimComponentManagerFactory * theFactory; 00143 }; 00144 00145 #endif 00146