libemc.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 
00032 #ifndef __LIBEMC_HPP
00033 #define __LIBEMC_HPP
00034 
00035 #include <functional>
00036 
00037 #include "ecell/libecs/libecs.hpp"
00038 
00039 namespace libemc
00040 {
00041 
00042   /** @addtogroup libemc_module The E-Cell Micro Core Interface (libemc)
00043    * EMC module.
00044    * @{ 
00045    */ 
00046   
00047   /** @file */
00048 
00049   DECLARE_CLASS( EventChecker );
00050   DECLARE_CLASS( EventHandler );
00051 
00052   DECLARE_CLASS( Simulator );
00053   DECLARE_CLASS( SimulatorImplementation );
00054 
00055 
00056 
00057   DECLARE_SHAREDPTR( EventChecker );
00058   DECLARE_SHAREDPTR( EventHandler );
00059 
00060   class EventHandler
00061     :
00062     public std::unary_function<void,void> 
00063   {
00064   public:
00065     EventHandler() {}
00066     virtual ~EventHandler() {}
00067 
00068     virtual void operator()( void ) const = 0;
00069   };
00070 
00071   class EventChecker
00072     :
00073     public std::unary_function<bool,void>
00074   {
00075   public:
00076     EventChecker() {}
00077     virtual ~EventChecker() {}
00078 
00079     virtual bool operator()( void ) const = 0;
00080   };
00081 
00082   class DefaultEventChecker
00083     :
00084     public EventChecker
00085   {
00086   public:
00087     DefaultEventChecker() {}
00088     //    virtual ~DefaultEventChecker() {}
00089 
00090     virtual bool operator()( void ) const
00091     {
00092       return false;
00093     }
00094   };
00095 
00096 
00097 
00098 
00099   /** @} */ //end of libemc_module 
00100 
00101 } // namespace libemc
00102 
00103 #endif   /* __LIBEMC_HPP */

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