# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

boolval.h

Go to the documentation of this file.
00001 
00007 /* Copyright, 2000 Nevrax Ltd.
00008  *
00009  * This file is part of NEVRAX NEL.
00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2, or (at your option)
00013  * any later version.
00014 
00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018  * General Public License for more details.
00019 
00020  * You should have received a copy of the GNU General Public License
00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023  * MA 02111-1307, USA.
00024  */
00025 
00026 #ifndef NL_BOOLVAL_H
00027 #define NL_BOOLVAL_H
00028 
00029 #include "nel/ai/agent/agent.h"
00030 
00031 namespace NLAILOGIC {
00032 
00033         class IBaseVar;
00034 
00035         // Classe de base des valeurs booléennes
00036         class IBaseBoolType : public NLAIAGENT::IObjetOp {              
00037                 public:
00038                         IBaseBoolType();
00039                         virtual ~IBaseBoolType();
00040 
00042                         virtual float truthValue() const = 0;
00043                         virtual const CProcessResult &run() = 0;        
00044 //                      virtual std::vector<IBaseVar *> *getVars() = 0;
00045         };
00046 
00047         // Valeur booléenne simple
00048         class CBoolType : public IBaseBoolType {
00049                 private:
00050                         bool _Value;
00051                 public:
00052                         CBoolType(bool);
00053                         CBoolType(const CBoolType &);
00054                         virtual ~CBoolType();
00055                         virtual const NLAIC::IBasicType *clone() const;
00056                         virtual const NLAIC::IBasicType *newInstance() const;
00057                         virtual const NLAIC::CIdentType &getType() const;
00058                         virtual void save(NLMISC::IStream &os);
00059                         virtual void load(NLMISC::IStream &is);
00060                         virtual void getDebugString(std::string &) const;
00061 
00062                         virtual float truthValue() const;                       
00063                         virtual const CProcessResult &run();
00064                         virtual bool isEqual(const NLAIAGENT::IBasicObjectIA &a) const;
00065                         virtual bool isEqual(const CBoolType &a) const;
00066                         virtual std::vector<IBaseVar *> *getVars();
00067 
00068                 public:
00069 
00070                         static const NLAIC::CIdentType IdBoolType;
00071 
00072                         virtual NLAIAGENT::IObjetOp &operator += (const NLAIAGENT::IObjetOp &a);
00073                         virtual NLAIAGENT::IObjetOp &operator -= (const NLAIAGENT::IObjetOp &a);
00074                         virtual NLAIAGENT::IObjetOp &operator *= (const NLAIAGENT::IObjetOp &a);
00075 
00076                         virtual NLAIAGENT::IObjetOp *operator < (NLAIAGENT::IObjetOp &a) const;
00077                         virtual NLAIAGENT::IObjetOp *operator > (NLAIAGENT::IObjetOp &a) const;
00078                         virtual NLAIAGENT::IObjetOp *operator <= (NLAIAGENT::IObjetOp &a) const;        
00079                         virtual NLAIAGENT::IObjetOp *operator >= (NLAIAGENT::IObjetOp &a) const;
00080                         virtual NLAIAGENT::IObjetOp *operator ! () const;
00081                         virtual NLAIAGENT::IObjetOp *operator != (NLAIAGENT::IObjetOp &a) const;
00082                         virtual NLAIAGENT::IObjetOp *operator == (NLAIAGENT::IObjetOp &a) const;
00083 
00084 
00085                         virtual bool isTrue() const;
00086         };
00087 
00088         class CBoolTrue : public CBoolType
00089         {
00090                 public:
00091                         CBoolTrue();
00092         };
00093 
00094         class CBoolFalse : public CBoolType
00095         {
00096                 public:
00097                         CBoolFalse();
00098         };
00099 }
00100 #endif