VR-Forces 4.0.4 Class Documentation
include/vrvUtil/DtVirtualBaseClass.h
Go to the documentation of this file.
00001 /****************************************************************************** 
00002 ** Copyright (c) 2007 MAK Technologies, Inc. 
00003 ** All rights reserved. 
00004 ******************************************************************************/ 
00005 /****************************************************************************** 
00006 ** $RCSfile: DtVirtualBaseClass.h,v $ $Revision: 1.8 $ $State: Exp $ 
00007 ******************************************************************************/ 
00008  
00012  
00013 #pragma once
00014  
00015 #include <vrvUtil/vrvUtil.h> 
00016  
00017 namespace makVrv 
00018 { 
00022    class DT_DLL_VRVUTIL DtVirtualBaseClass 
00023    { 
00024 
00025    public:
00026 
00028       DtVirtualBaseClass();
00029 
00031       virtual ~DtVirtualBaseClass();
00032 
00033    };
00034 
00037    template <typename T>   
00038    class DtInstanceHolder : public DtVirtualBaseClass
00039    {
00040    public:
00041       DtInstanceHolder(T* ptr) : myPointer(ptr)
00042       {
00043       }
00044 
00045       virtual ~DtInstanceHolder()
00046       {
00047          delete myPointer;
00048          myPointer = 0;
00049       }
00050 
00051       T* get()
00052       {
00053          return myPointer;
00054       }
00055 
00056       T* myPointer;
00057    };
00058 
00061    template <typename T>   
00062    class DtWeakInstanceHolder : public DtVirtualBaseClass
00063    {
00064    public:
00065       DtWeakInstanceHolder(T* ptr) : myPointer(ptr)
00066       {
00067       }
00068 
00069       virtual ~DtWeakInstanceHolder()
00070       {
00071          // do not delete
00072          myPointer = 0;
00073       }
00074 
00075       T* get()
00076       {
00077          return myPointer;
00078       }
00079 
00080       T* myPointer;
00081    };
00082 } 
00083  
00084  

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)