libecs.hpp

Go to the documentation of this file.
00001 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00002 //
00003 //        This file is part of E-Cell Simulation Environment package
00004 //
00005 //                Copyright (C) 1996-2002 Keio University
00006 //
00007 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00008 //
00009 //
00010 // E-Cell is free software; you can redistribute it and/or
00011 // modify it under the terms of the GNU General Public
00012 // License as published by the Free Software Foundation; either
00013 // version 2 of the License, or (at your option) any later version.
00014 // 
00015 // E-Cell is distributed in the hope that it will be useful,
00016 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00018 // See the GNU General Public License for more details.
00019 // 
00020 // You should have received a copy of the GNU General Public
00021 // License along with E-Cell -- see the file COPYING.
00022 // If not, write to the Free Software Foundation, Inc.,
00023 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00024 // 
00025 //END_HEADER
00026 //
00027 // written by Koichi Takahashi <shafi@e-cell.org>,
00028 // E-Cell Project.
00029 //
00030 
00031 #ifndef __LIBECS_HPP
00032 #define __LIBECS_HPP
00033 
00034 #include "Defs.hpp"
00035 
00036 
00037 namespace libecs
00038 {
00039 
00040   /** @defgroup libecs The Libecs library
00041    * The libecs library
00042    * @{ 
00043    */ 
00044   
00045   /** @file */
00046 
00047 
00048   const int MAJOR_VERSION( ECELL_MAJOR_VERSION );
00049   const int MINOR_VERSION( ECELL_MINOR_VERSION );
00050   const int MICRO_VERSION( ECELL_MICRO_VERSION );
00051 
00052   const char* const VERSION_STRING( ECELL_VERSION_STRING );
00053 
00054 
00055   inline const int getMajorVersion()
00056   {
00057     return MAJOR_VERSION;
00058   }
00059 
00060   inline const int getMinorVersion()
00061   {
00062     return MINOR_VERSION;
00063   }
00064 
00065   inline const int getMicroVersion()
00066   {
00067     return MICRO_VERSION;
00068   }
00069 
00070   inline const std::string getVersion()
00071   {
00072     return VERSION_STRING;
00073   }
00074 
00075 
00076   void setDMSearchPath( const String& path );
00077   const String getDMSearchPath();
00078   const String getLoadedDMList();
00079 
00080   //  DECLARE_CLASS( Polymorph );
00081   //  const Polymorph getDMInfoList( const String& aDMName );
00082   //  const String getDMInfo( const String& aDMName,
00083   //                      const String& aFieldName );
00084 
00085   
00086 
00087 
00088   // Forward declarations.
00089 
00090 
00091   // string STL containers.
00092   DECLARE_LIST  ( String, StringList );
00093   DECLARE_VECTOR( String, StringVector );
00094   DECLARE_MAP( const String, String, std::less<const String>, StringMap );
00095   DECLARE_SHAREDPTR( StringList );
00096   DECLARE_SHAREDPTR( StringVector );
00097 
00098 
00099   // classes
00100 
00101   DECLARE_CLASS( System );
00102   DECLARE_CLASS( Entity );
00103   DECLARE_CLASS( EntityType );
00104   DECLARE_CLASS( SystemPath );
00105   DECLARE_CLASS( FullID );
00106   DECLARE_CLASS( FullPN );
00107   DECLARE_CLASS( VariableReference );
00108   DECLARE_CLASS( Process );
00109   DECLARE_CLASS( DiscreteEventProcess );
00110   DECLARE_CLASS( ProcessMaker );
00111   DECLARE_CLASS( Stepper );
00112   DECLARE_CLASS( SystemStepper );
00113   DECLARE_CLASS( Interpolant );
00114   DECLARE_CLASS( Model );
00115   DECLARE_CLASS( Scheduler );
00116   DECLARE_CLASS( StepperEvent );
00117   DECLARE_CLASS( StepperMaker );
00118   DECLARE_CLASS( Variable );
00119   DECLARE_CLASS( VariableMaker );
00120   DECLARE_CLASS( System );
00121   DECLARE_CLASS( SystemMaker );
00122   DECLARE_CLASS( PropertySlotBase );
00123   //  DECLARE_CLASS( PropertyInterface );
00124   DECLARE_CLASS( PropertiedClass );
00125   DECLARE_CLASS( PropertySlotProxy );
00126   DECLARE_CLASS( Polymorph );
00127   DECLARE_CLASS( LoggerBroker );
00128   DECLARE_CLASS( Logger );
00129   DECLARE_CLASS( LoggerAdapter );
00130   DECLARE_CLASS( DataPoint );
00131   DECLARE_CLASS( LongDataPoint );
00132   DECLARE_CLASS( DataPointAggregator );
00133   DECLARE_CLASS( DataPointVector );
00134 
00135 
00136   // containers
00137   DECLARE_VECTOR( Polymorph,    PolymorphVector );
00138   DECLARE_VECTOR( VariablePtr,  VariableVector );
00139   DECLARE_VECTOR( ProcessPtr,   ProcessVector );
00140   DECLARE_VECTOR( SystemPtr,    SystemVector );
00141   DECLARE_VECTOR( StepperPtr,   StepperVector );
00142   DECLARE_VECTOR( LoggerPtr,    LoggerVector );
00143   //  DECLARE_VECTOR( PropertySlotPtr, PropertySlotVector );
00144 
00145   // exceptions
00146 
00147   DECLARE_CLASS( Exception );
00148   DECLARE_CLASS( UnexpectedError );
00149   DECLARE_CLASS( NotFound );
00150   DECLARE_CLASS( CantOpen );
00151   DECLARE_CLASS( BadID );
00152   DECLARE_CLASS( CallbackFailed );
00153   DECLARE_CLASS( NoMethod );
00154   DECLARE_CLASS( NoSlot );
00155   DECLARE_CLASS( InvalidEntityType );
00156 
00157   DECLARE_MAP ( const String, Polymorph, std::less<const String>,
00158                                 PolymorphMap);
00159 
00160 
00161   // other reference counted pointer types
00162 
00163   DECLARE_SHAREDPTR( PolymorphVector );
00164   DECLARE_SHAREDPTR( DataPointVector );
00165   
00166   /** @} */ 
00167 
00168 } // namespace libecs
00169 
00170 #endif // __LIBECS_HPP
00171 
00172 
00173 /*
00174   Do not modify
00175   $Author: shafi $
00176   $Revision: 2529 $
00177   $Date: 2005-11-19 10:36:40 +0100 (Sat, 19 Nov 2005) $
00178   $Locker$
00179 */

Generated on Fri Aug 31 18:32:07 2007 for E-CELL C++ libraries (libecs and libemc) 3.1.105 by  doxygen 1.5.3