00001 #if !defined(__OBJECTFACTORY_HPP)
00002 #define __OBJECTFACTORY_HPP
00003
00004 /*
00005 CoreLinux++
00006 Copyright (C) 2000 CoreLinux Consortium
00007
00008 The CoreLinux++ Library is free software; you can redistribute it and/or
00009 modify it under the terms of the GNU Library General Public License as
00010 published by the Free Software Foundation; either version 2 of the
00011 License, or (at your option) any later version.
00012
00013 The CoreLinux++ Library Library is distributed in the hope that it will
00014 be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016 Library General Public License for more details.
00017
00018 You should have received a copy of the GNU Library General Public
00019 License along with the GNU C Library; see the file COPYING.LIB. If not,
00020 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00021 Boston, MA 02111-1307, USA.
00022 */
00023
00024 #if !defined(__COMMON_HPP)
00025 #include <Common.hpp>
00026 #endif
00027
00028 #if !defined(__OBJECT_HPP)
00029 #include <Object.hpp>
00030 #endif
00031
00037 DECLARE_CLASS( ObjectFactory );
00038
00039 class ObjectFactory
00040 {
00041 public:
00042
00043 //
00044 // Destructor
00045 //
00050 ~ObjectFactory( void );
00051
00052 //
00053 // Factory methdods
00054 //
00055
00061 static DwordIdentifier getNewIdentifier( void );
00062
00070 static ObjectCref createObject( DwordIdentifier );
00071
00077 static void destroyObject( DwordIdentifier );
00078
00085 static void destroyObject( ObjectCref );
00086
00092 static void destroyAllObjects( void );
00093
00094 protected:
00095
00096
00097 private:
00098
00099 //
00100 // Constructors are not allowed
00101 //
00103
00104 ObjectFactory( void );
00105
00107
00108 ObjectFactory( ObjectFactoryCref );
00109
00110 //
00111 // Operator not allowed
00112 //
00114
00115 ObjectFactoryRef operator=( ObjectFactoryCref );
00116
00118
00119 bool operator==( ObjectFactoryCref ) const;
00120
00121 private:
00122
00124
00125 static DwordIdentifier theCurrentIdentifier;
00126
00127 };
00128
00129 #endif // if !defined(__OBJECTFACTORY_HPP)
00130
00131 /*
00132 Common rcs information do not modify
00133 $Author: frankc $
00134 $Revision: 1.3 $
00135 $Date: 2000/03/01 03:28:18 $
00136 $Locker: $
00137 */
00138