Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Examples

ObjectFactory.hpp

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 

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium