![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: simComponentNetwork.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef simComponentNetwork_h 00015 #define simComponentNetwork_h 00016 00017 #include "vrfobjcore/vrfobjcoreDefines.h" 00018 #include <vlutil/vlList.h> 00019 #include <list> 00020 #include "vrfobjcore/compSystem.h" 00021 00022 class DtSimComponent; 00023 class DtVrfObject; 00024 class DtSimComponentList; 00025 class DtControllerComponentList; 00026 class DtString; 00027 class DtComponentDescriptorList; 00028 class DtPortConnection; 00029 class DtPortGroupConnection; 00030 class DtConnectionDescriptorList; 00031 class DtComponentSystemDescriptorList; 00032 00037 class DT_DLL_vrfobjcore DtSimComponentNetwork 00038 { 00039 private: 00041 00042 DtSimComponentNetwork(); 00043 DtSimComponentNetwork(const DtSimComponentNetwork& orig); 00044 DtSimComponentNetwork& operator=(const DtSimComponentNetwork& orig); 00046 00047 public: 00048 00049 00050 DtSimComponentNetwork(DtVrfObject* vrfObject, DtComponentSystem* parentSystem); 00051 virtual ~DtSimComponentNetwork(); 00052 00053 virtual bool init(); 00054 00055 virtual void tick(bool hostDestroyed); 00056 00058 virtual bool postAddComponentsInit(); 00059 00060 virtual bool addSensorComponent(DtSimComponent * component); 00061 virtual bool addControllerComponent(DtSimComponent * component); 00062 virtual bool addActuatorComponent(DtSimComponent * component); 00063 00067 virtual bool removeSensorComponent(DtSimComponent * component); 00071 virtual bool removeControllerComponent(DtSimComponent * component); 00075 virtual bool removeActuatorComponent(DtSimComponent * component); 00076 00080 virtual DtSimComponent * lookupComponent(const DtString& name) const; 00081 00083 virtual DtComponentSystem* lookupComponentSystem(const DtString& name) const; 00084 virtual const DtComponentSystemList* componentSystemList() const; 00085 00086 virtual DtSimComponentList * sensorComponentList() const; 00087 virtual DtControllerComponentList * controllerComponentList() const; 00088 virtual DtSimComponentList * actuatorComponentList() const; 00089 00090 virtual void createComponentsFromList( 00091 const DtComponentDescriptorList& descList, DtSimComponentList* destination, 00092 int& priority); 00093 00099 virtual void createSystemsFromList(const DtComponentSystemDescriptorList& descList, 00100 int& priority); 00101 00109 virtual bool createComponentConnection(const DtString& source, 00110 const DtString& destination); 00111 00115 virtual void createConnectionsFromList(const DtConnectionDescriptorList& 00116 descList); 00117 00120 virtual void disconnectComponent(DtSimComponent *component); 00121 00123 virtual void removeConnection(DtPortConnection* conn); 00124 00127 virtual void removeConnection(DtPortGroupConnection* conn); 00128 00130 00131 virtual void enable(); 00132 virtual void disable(); 00134 00135 protected: 00139 virtual bool createComponentConnection(DtSimComponent* sourceComp, const DtString& sourcePortName, 00140 DtSimComponent* destComponent, const DtString& destPortName, DtString& errorString); 00141 00142 virtual bool createSensorComponentList(); 00143 virtual bool createControllerComponentList(); 00144 virtual bool createActuatorComponentList(); 00145 00146 protected: 00147 00148 00149 DtSimComponentList * mySensorComponentList; 00150 DtControllerComponentList * myControllerComponentList; 00151 DtSimComponentList * myActuatorComponentList; 00152 DtComponentSystemList mySystemList; 00153 00154 DtVrfObject* myVrfObject; 00155 DtComponentSystem* myParentSystem; 00156 }; 00157 00158 #endif