00001 #if !defined(__PROTOTYPE_HPP)
00002 #define __PROTOTYPE_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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
00042
00043
00045
00046 Prototype( void )
00047 :
00048 CoreLinuxObject()
00049 {
00050 ;
00051 }
00052
00058 Prototype( const Prototype & aPrototype )
00059 :
00060 CoreLinuxObject( aPrototype )
00061 {
00062 ;
00063 }
00064
00066
00067 virtual ~Prototype( void )
00068 {
00069 ;
00070 }
00071
00072
00073
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
00101
00102
00109 virtual TypeImpl * clone( void ) const = 0 ;
00110
00111
00112 };
00113 }
00114
00115 #endif
00116
00117
00118
00119
00120
00121
00122
00123
00124