00001 #if !defined(__PROTOTYPE_HPP)
00002 #define __PROTOTYPE_HPP
00003
00004 /*
00005 CoreLinux++
00006 Copyright (C) 1999 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 namespace corelinux
00029 {
00035 template< class TypeImpl >
00036 class Prototype : public CoreLinuxObject
00037 {
00038 public:
00039
00040 //
00041 // Constructors and destructor
00042 //
00043
00045
00046 Prototype( void )
00047 :
00048 CoreLinuxObject()
00049 {
00050 ; // do nothing
00051 }
00052
00058 Prototype( const Prototype & aPrototype )
00059 :
00060 CoreLinuxObject( aPrototype )
00061 {
00062 ; // do nothing
00063 }
00064
00066
00067 virtual ~Prototype( void )
00068 {
00069 ; // do nothing
00070 }
00071
00072 //
00073 // Operator overload
00074 //
00075
00082 Prototype & operator=( const Prototype & aPrototype )
00083 {
00084 CoreLinuxObject::operator=( aPrototype );
00085 return ( *this );
00086 }
00087
00094 bool operator==( const Prototype & aPrototype ) const
00095 {
00096 return CoreLinuxObject::operator==( aPrototype );
00097 }
00098
00099 //
00100 // Pure virtual methods
00101 //
00102
00109 virtual TypeImpl * clone( void ) const = 0 ;
00110
00111
00112 };
00113 }
00114
00115 #endif // if !defined(__PROTOTYPE_HPP)
00116
00117 /*
00118 Common rcs information do not modify
00119 $Author: prudhomm $
00120 $Revision: 1.1 $
00121 $Date: 2000/04/23 20:43:13 $
00122 $Locker: $
00123 */
00124