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 // if !defined(__PROTOTYPE_HPP)
00116
00117 00118 00119 00120 00121 00122 00123
00124