# 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  

fsm_script.h

Go to the documentation of this file.
00001 
00008 /* Copyright, 2000 Nevrax Ltd.
00009  *
00010  * This file is part of NEVRAX NEL.
00011  * NEVRAX NEL is free software; you can redistribute it and/or modify
00012  * it under the terms of the GNU General Public License as published by
00013  * the Free Software Foundation; either version 2, or (at your option)
00014  * any later version.
00015 
00016  * NEVRAX NEL is distributed in the hope that it will be useful, but
00017  * WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00019  * General Public License for more details. 
00020 
00021  * You should have received a copy of the GNU General Public License
00022  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00023  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00024  * MA 02111-1307, USA.
00025  */
00026 
00027 #ifndef NL_FSM_SCRIPT_H_
00028 #define NL_FSM_SCRIPT_H_
00029 
00030 #include "nel/ai/agent/agent.h"
00031 #include "nel/ai/agent/agent_script.h"
00032 #include "nel/ai/agent/agent_manager.h"
00033 #include "nel/ai/logic/bool_cond.h"
00034 #include "nel/ai/script/type_def.h"
00035 #include "nel/ai/script/interpret_fsm.h"
00036 #include "nel/ai/agent/actor_script.h"
00037 
00038 namespace NLAIAGENT
00039 {
00040         class CFsmScript  : public CActorScript
00041         {
00042 
00043                 public:
00044                 /*
00045                         static NLAISCRIPT::COperandSimpleListOr *ParamIdSuccessMsg;
00046                         static NLAISCRIPT::CParam *ParamSuccessMsg;
00047                         static NLAISCRIPT::COperandSimpleListOr *ParamIdFailureMsg;
00048                         static NLAISCRIPT::CParam *ParamFailureMsg;
00049                 */
00050 
00051                 private:
00052                         std::vector<NLAIAGENT::IObjectIA *> _VarValues;         // Values of the vars for the instanciated operator
00053                         NLAILOGIC::CFactBase                            *_FactBase;             // The father's factbase
00054 
00055                         std::vector<IBasicAgent *>                      _ActiveChilds;
00056 
00057                 public:
00058                         // Builds and actor with its father
00059                         CFsmScript(IAgentManager *, bool activated = false);
00060                         // copy constructor
00061                         CFsmScript(const CFsmScript &);
00062                         CFsmScript(IAgentManager *, IBasicAgent *, std::list<IObjectIA *> &, NLAISCRIPT::CFsmClass *);
00063                         virtual ~CFsmScript();
00064 
00066 //                      virtual float priority() const;
00067 
00068                         virtual int getBaseMethodCount() const;
00069 
00071                         virtual const NLAIC::IBasicType *clone() const;
00072                         virtual const NLAIC::IBasicType *newInstance() const;
00073                         virtual void getDebugString(std::string &) const;
00074                         virtual bool isEqual(const IBasicObjectIA &a) const;
00075 //                      virtual void processMessages();
00076                         virtual const CProcessResult &run();
00077                         virtual void runChildren();
00078  
00079 //                      virtual IObjectIA *run(const IMessageBase &msg);
00080 
00081 //                      virtual CProcessResult sendMessage(IObjectIA *);
00082                         virtual const NLAIC::CIdentType &getType() const;
00083 
00084                         static const NLAIC::CIdentType IdFsmScript;
00085 
00086                         virtual void save(NLMISC::IStream &os); 
00087                         virtual void load(NLMISC::IStream &is);         
00088 
00089 //                      virtual IObjectIA::CProcessResult runMethodBase(int heritance, int index,IObjectIA *);
00090                         virtual IObjectIA::CProcessResult runMethodBase(int index,IObjectIA *);
00091 
00092                         virtual tQueue isMember(const NLAIAGENT::IVarName *, const NLAIAGENT::IVarName *, const IObjectIA &) const;
00093                         virtual sint32 getMethodIndexSize() const;
00094 
00095                         void getFatherComponent(IVarName &);
00096 //                      virtual void setParent(const IWordNumRef *parent);
00097 
00098                         virtual void activate(IBasicAgent *);
00099                         virtual void unactivate(IBasicAgent *);
00100 /*
00101                         static void initClass();
00102                         static void releaseClass();
00103                         */
00104 
00105                         virtual void setTopLevel(NLAIAGENT::CAgentScript *);
00106         };
00107 }
00108 #endif