VR-Forces 4.0.4 Class Documentation
include/vrfutil/simRsrc.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)