![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtRecordHolder.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtRecordHolder_H_ 00014 #define DtRecordHolder_H_ 00015 00016 #include <vrvUtil/vrvUtil.h> 00017 00018 namespace makVrv 00019 { 00022 class DT_DLL_VRVUTIL DtBaseRecordHolder 00023 { 00024 public: 00025 DtBaseRecordHolder(); 00026 virtual ~DtBaseRecordHolder(); 00027 virtual DtBaseRecordHolder* clone() const = 0; 00028 }; 00029 00031 template <typename Record> 00032 class DtRecordHolder : public DtBaseRecordHolder 00033 { 00034 public: 00035 DtRecordHolder(const Record& record) 00036 : myRecord(record) 00037 { 00038 } 00039 00040 DtRecordHolder(const DtRecordHolder<Record>& copy) 00041 : myRecord(copy.myRecord) 00042 { 00043 } 00044 00045 virtual ~DtRecordHolder() 00046 { 00047 } 00048 00049 virtual DtBaseRecordHolder* clone() const 00050 { 00051 return new DtRecordHolder<Record>(*this); 00052 } 00053 00054 Record& record() 00055 { 00056 return myRecord; 00057 } 00058 00059 const Record& record() const 00060 { 00061 return myRecord; 00062 } 00063 00064 protected: 00065 00066 Record myRecord; 00067 }; 00068 } 00069 00070 #endif 00071