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

Modeler.hpp

00001 #if   !defined(__MODELER_HPP)
00002 #define  __MODELER_HPP
00003 
00004 /*
00005   CoreLinux++ 
00006   Copyright (C) 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(__MAP_HPP)
00029 #include <Map.hpp>
00030 #endif
00031 
00032 #if   !defined(__VECTOR_HPP)
00033 #include <Vector.hpp>
00034 #endif
00035 
00036 #if   !defined(__OBJECT_HPP)
00037 #include <Object.hpp>
00038 #endif
00039 
00040 CORELINUX_VECTOR(  DwordIdentifier ,  IdVector ) ;
00041 CORELINUX_MAP( DwordIdentifier, IdVector, less<DwordIdentifier>, IdMap ) ;
00042 
00048 DECLARE_CLASS( Modeler );
00049 
00050 class Modeler
00051 {
00052 public:
00053 
00054    //
00055    // Constructors and destructor
00056    //
00057 
00059 
00060                            Modeler( void );
00061 
00063 
00064                            Modeler( ModelerCref );
00065 
00067 
00068    virtual                 ~Modeler( void );   
00069 
00070    //
00071    // Operator overloads
00072    //
00073 
00075 
00076             ModelerRef  operator=( ModelerCref );
00077 
00079 
00080             bool        operator==( ModelerCref ) const;
00081 
00082    //
00083    // Accessors
00084    //
00091             CORELINUX(Count)  getParentCount( DwordIdentifierCref ) const;
00092 
00100             IdVector          getParents( DwordIdentifierCref ) const
00101                                  throw(CORELINUX(Exception)) ;
00102 
00103    //
00104    // Mutators
00105    //
00112             void  addParent( DwordIdentifierCref, DwordIdentifierCref );
00113 
00119             void  removeParent( DwordIdentifierCref, DwordIdentifierCref );
00120 
00126             void  removeParents( DwordIdentifierCref );
00127 
00133             void  removeChildren( DwordIdentifierCref );
00134 
00135 protected:
00136 
00137 private:
00138 
00139             IdMap    theParentsMap;    
00140 
00141 };
00142 
00143 #endif //   if !defined(__MODELER_HPP)
00144 
00145 /*
00146    Common rcs information do not modify
00147    $Author: prudhomm $
00148    $Revision: 1.4 $
00149    $Date: 2000/08/31 22:47:56 $
00150    $Locker:  $
00151 */
00152 
00153 

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