diff --git a/eo/src/continuator.h b/eo/src/continuator.h index 2bff4abc..97efc8ac 100644 --- a/eo/src/continuator.h +++ b/eo/src/continuator.h @@ -1,69 +1,91 @@ -// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- - -//----------------------------------------------------------------------------- -// continuator.h -// (c) GeNeura Team, 1998 -/* - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Contact: todos@geneura.ugr.es, http://geneura.ugr.es - */ -//----------------------------------------------------------------------------- - -#ifndef _CONTINUATOR_H -#define _CONTINUATOR_H - - -#include -#include - -#include - - -/** - * Continue interface - */ -class continuator -{ -public: - virtual bool check()=0; -}; - - -template < class EOT> class eoContinuator : public continuator{ -public: - - eoContinuator(eoContinue & _cont, const eoPop & _pop): cont (_cont), pop(_pop){} - - virtual bool check(){ - return cont(pop); - } - -protected: - eoContinue & cont ; - const eoPop & pop; -}; - - -#endif - - - - - - - - - +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// continuator.h +// (c) GeNeura Team, 1998 +/* + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Contact: todos@geneura.ugr.es, http://geneura.ugr.es + */ +//----------------------------------------------------------------------------- + +#ifndef _CONTINUATOR_H +#define _CONTINUATOR_H + + +#include +#include + +#include +#include + +/** + * Continue interface + */ +class continuator +{ +public: + virtual bool check()=0; +}; + + +template < class EOT> class eoContinuator : public continuator{ +public: + + eoContinuator(eoContinue & _cont, const eoPop & _pop): cont (_cont), pop(_pop){} + + virtual bool check(){ + return cont(pop); + } + +protected: + eoContinue & cont ; + const eoPop & pop; +}; + + + +template < class TYPE> class selector +{ +public: + virtual const TYPE & select()=0; +}; + + +template < class EOT> class eoSelector : public selector{ +public: + + eoSelector(eoSelectOne & _select, const eoPop & _pop): selector (_select), pop(_pop){} + + virtual const EOT & select(){ + return select(pop); + } + +protected: + eoSelectOne & selector ; + const eoPop & pop; +}; + +#endif + + + + + + + + +