Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

lktidier.h

00001 /* liblookdb: lktidier.h - Class tidier.(makes things a bit automatic)
00002     Copyright (C) 1998-2001 LOOK Systems
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Lesser General Public
00006     License as published by the Free Software Foundation; either
00007     version 2.1 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Lesser General Public License for more details.
00013 
00014     You should have received a copy of the GNU Lesser General Public
00015     License along with this library; if not, write to the Free Software
00016     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 */
00018 #ifndef LIBLOOKDB_LKTIDIER_H
00019 #define LIBLOOKDB_LKTIDIER_H
00020 
00021 // $Id: lktidier.h,v 1.5 2001/07/04 15:53:20 clive Exp $
00022 
00023 #include "looktypes.h"
00024 
00025 namespace look {
00026 
00027 // while this class is entirely inline, don't put any dll export
00028 // things in.
00029 // however, don't pass references to these around - keep them local
00030 
00032 
00035 template<class tBody> class LookTidier
00036 {
00037 public:
00038 
00040 
00045         LookTidier( tBody* theThing )
00046                 : itsThing( theThing )
00047         {
00048         }
00049 
00051 
00054         ~LookTidier()
00055         {
00056                 delete itsThing;
00057         }
00058 
00060 
00063         void Release( void )
00064         {
00065                 itsThing = NULL;
00066         }
00067 
00068 protected:
00069 
00071         tBody* itsThing;
00072 };
00073 
00075 
00080 template<class tBody> class LookArrayTidier
00081 {
00082 public:
00083 
00085 
00090         LookArrayTidier( tBody* theThing )
00091                 : itsThing( theThing )
00092         {
00093         }
00094 
00096 
00099         ~LookArrayTidier()
00100         {
00101                 delete [] itsThing;
00102         }
00103 
00105 
00108         void Release( void )
00109         {
00110                 itsThing = NULL;
00111         }
00112 
00113 protected:
00114 
00116         tBody* itsThing;
00117 };
00118 
00119 
00120 } // end of "look" namespace
00121 #endif

Generated at Thu Jan 17 12:53:06 2002 for liblookdb by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001