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

TransparentComponent.hpp

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 

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