00001 #if !defined (__TRANSPARENTCOMPONENT_HPP)
00002 #define __TRANSPARENTCOMPONENT_HPP
00003
00004 /*
00005 CoreLinux++
00006 Copyright (C) 1999,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(__COMPONENT_HPP)
00029 #include <Component.hpp>
00030 #endif
00031
00032 #if !defined(__ITERATOR_HPP)
00033 #include <Iterator.hpp>
00034 #endif
00035
00036 #if !defined(__INVALIDCOMPOSITEEXCEPTION_HPP)
00037 #include <InvalidCompositeException.hpp>
00038 #endif /* __INVALIDCOMPOSITEEXCEPTION_HPP */
00039
00040
00041 namespace corelinux
00042 {
00043 DECLARE_CLASS(InvalidCompositeException);
00044
00051 template<class CompImpl>
00052 class TransparentComponent : public Component
00053 {
00054 public:
00055
00057
00058 TransparentComponent( void )
00059 :
00060 Component()
00061 {
00062 ; // do nothing
00063 }
00064
00069 TransparentComponent
00070 (
00071 const TransparentComponent & aRef
00072 )
00073 :
00074 Component( aRef )
00075 {
00076 ; // do nothing
00077 }
00078
00080
00081 virtual ~TransparentComponent( void )
00082 {
00083 ; // do nothing
00084 }
00085
00086 //
00087 // Operator overloads
00088 //
00095 TransparentComponent & operator=( const TransparentComponent & )
00096 {
00097 return (*this);
00098 }
00099
00106 bool operator==
00107 (
00108 const TransparentComponent & aRef
00109 ) const
00110 {
00111 return (*this = aRef);
00112 }
00113
00120 bool operator!=
00121 (
00122 const TransparentComponent & aRef
00123 ) const
00124 {
00125 return !(*this = aRef);
00126 }
00127
00128 //
00129 // Accessors
00130 //
00131
00132 //
00133 // Mutators
00134 //
00135
00145 virtual void addComponent( CompImpl )
00146 throw(InvalidCompositeException)
00147 {
00148 throw InvalidCompositeException(LOCATION);
00149 }
00150
00160 virtual void removeComponent( CompImpl )
00161 throw(InvalidCompositeException)
00162 {
00163 throw InvalidCompositeException(LOCATION);
00164 }
00165
00166 //
00167 // Factories
00168 //
00169
00180 virtual Iterator<CompImpl>* createIterator( void )
00181 throw(InvalidCompositeException)
00182 {
00183 throw InvalidCompositeException(LOCATION);
00184 }
00185
00197 virtual void destroyIterator( Iterator<CompImpl> * )
00198 throw(InvalidCompositeException)
00199 {
00200 throw InvalidCompositeException(LOCATION);
00201 }
00202
00203 };
00204
00205 }
00206
00207 #endif // if !defined(__TRANSPARENTCOMPONENT_HPP)
00208
00209 /*
00210 Common rcs information do not modify
00211 $Author: prudhomm $
00212 $Revision: 1.2 $
00213 $Date: 2000/08/31 22:52:20 $
00214 $Locker: $
00215 */
00216
00217
00218