00001 #ifndef VR_DVDEVICEBASE_H
00002 #define VR_DVDEVICEBASE_H
00003
00004 #include <Base/BaseDebug.h>
00005 #include <Base/BaseUtility.h>
00006 #include <iosfwd>
00007
00008 namespace Spr {
00009
00010
00011
00012
00013 class DRRealDevice;
00014
00015
00016 class SPR_DLL DVVirtualDevice:public UTRefCount{
00017 bool used;
00018 virtual bool GetUsed(){return used;}
00019 virtual void SetUsed(bool b){used = b;}
00020 friend class DVVirtualDevicePool;
00021 public:
00022 DVVirtualDevice(){ used = false; }
00023 virtual ~DVVirtualDevice(){}
00024
00025 virtual const char* Name() const=0;
00026
00027 virtual const char* Type() const=0;
00028
00029 virtual DRRealDevice* RealDevice()=0;
00030
00031 virtual void Print(std::ostream& o) const;
00032
00033 virtual void Update(){}
00034 };
00035 inline std::ostream& operator << (std::ostream& o, const DVVirtualDevice& d){
00036 d.Print(o);
00037 return o;
00038 }
00039 }
00040
00041 #endif