![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: simRsrc.h,v $ $Revision: 1.18 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00012 00015 00016 #ifndef simRsrc_H_ 00017 #define simRsrc_H_ 00018 00019 #include <vlutil/vlMachineTypes.h> 00020 #include "vrfutil/rdrWritr.h" 00021 00022 #include "vrfutil/rsrcFactory.h" 00023 #include "vrfutil/rsrcList.h" 00024 00025 class DtReaderWriterRegistry; 00026 class DtSimResourceManager; 00027 class DtSimResourceFactory; 00028 00040 #include "vrfutil/vrfutilDefines.h" 00041 class DT_DLL_vrfutil DtSimResource : public DtReaderWriter 00042 { 00043 00044 protected: 00045 00047 DtSimResource(); 00048 00053 DtSimResource(const DtString& resourceName, DtReaderWriterRegistry* 00054 parentRegistry = NULL); 00055 00056 DtSimResource(const DtSymbolString& resourceName, DtReaderWriterRegistry* 00057 parentRegistry = NULL); 00058 00066 DtSimResource(const DtSimResource& orig, DtReaderWriterRegistry* 00067 parentRegistry = NULL); 00068 00070 DtSimResource& operator=(const DtSimResource& orig); 00071 00072 public: 00073 00075 virtual ~DtSimResource(); 00076 00080 virtual bool init(); 00081 00084 virtual void putData(FILE *fp, int indentLevel = 0); 00085 00086 virtual void addChildResource(DtSimResource * resource); 00087 00092 virtual bool removeChildResource(DtSimResource * resource); 00093 00094 virtual void copyResource(const DtSimResource& orig); 00095 00098 virtual void updateAmountFromChildren() = 0; 00099 00102 virtual void updateFullAmountFromChildren() = 0; 00103 00106 virtual void distributeAmountToChildren() = 0; 00107 00110 virtual void distributeFullAmountToChildren() = 0; 00111 00116 virtual DtReal percentageFull() const = 0; 00117 00119 virtual void setPercentageFull(DtReal percent) = 0; 00120 00122 virtual DtString type() const = 0; 00123 00124 virtual DtSimResource* clone(DtReaderWriterRegistry* parentRegistry = 0) const = 0; 00125 00126 virtual void setResourceManager(DtSimResourceManager* resourceManager); 00127 virtual DtSimResourceManager* resourceManager(); 00128 virtual const DtSimResourceManager* resourceManager() const; 00129 00131 virtual DtSimResourceList* subresources(); 00132 00135 virtual void setParent(DtSimResource* parent); 00136 virtual DtSimResource* parent(); 00137 virtual const DtSimResource* parent() const; 00138 00139 static DtSimResource* createResource(DtlObjPtr mtlStream, 00140 const DtVariableBindingsList& variableBindings); 00141 00142 static void addResourceCreatorFcn(const DtString& type, DtSimResourceCreatorFcn fcn); 00143 static void addResourceCreatorFcn(const DtSymbolString& type, DtSimResourceCreatorFcn fcn); 00144 00145 static void setFactory(DtSimResourceFactory* factory); 00146 static DtSimResourceFactory* factory(); 00147 00151 virtual const char* readerWriterType() const; 00152 00153 virtual bool isEqual(const DtSimResource& res) const; 00154 00156 bool operator!= (const DtSimResource& orig) const; 00157 bool operator== (const DtSimResource& orig) const; 00158 00159 protected: 00160 00161 DtSimResourceManager* myResourceManager; 00162 DtSimResourceList mySubresources; 00163 DtSimResource* myParent; 00164 00165 static DtSimResourceFactory* myFactory; 00166 }; 00167 00168 inline bool DtSimResource::operator!=(const DtSimResource& orig) const 00169 { 00170 return !(*this == orig); 00171 } 00172 00173 #endif 00174