NLAISCRIPT::CCodeBrancheRunDebug Class Reference

#include <code_branche_run_debug.h>

Inheritance diagram for NLAISCRIPT::CCodeBrancheRunDebug:

NLAISCRIPT::CCodeBrancheRun NLAISCRIPT::ICodeBranche NLAISCRIPT::IOpCode NLAIAGENT::IObjectIA NLAIAGENT::IBasicObjectIA NLAIC::IBasicInterface NLAIC::IBasicType NLAIC::IPointerGestion NLMISC::IStreamable NLMISC::IClassable

Detailed Description

A debug version of CCodeBrancheRun. It keep a trace between original source code and OpCode.
Author:
Gabriel ROBERT

Nevrax France

Date:
2000

Definition at line 28 of file code_branche_run_debug.h.

Public Member Functions

virtual TQueue canProcessMessage (const IVarName &)
 CCodeBrancheRunDebug (const CCodeBrancheRunDebug &l)
 Copy constructor.

 CCodeBrancheRunDebug (const TListCode &l)
 CCodeBrancheRunDebug (sint32 N, IScriptDebugSource *sourceCode)
 CCodeBrancheRunDebug (sint32 N, const IOpCode &op)
sint32 decRef ()
 Decrement the reference of an object.

uint16 getCurrentSourceCodeLineNumber () const
 Return the line number in source code of the actual opCode.

void getDebugResult (std::string &str, CCodeContext &context) const
 Return a debug string.

virtual const std::string getInfo ()
virtual std::string getMethodeMemberDebugString (sint32, sint32) const
virtual sint32 getMethodIndexSize () const
const sint32getRef () const
 get the refence count.

std::string getSourceFileName () const
 Return the name (& path) of the source code file.

const IObjectIA * getStaticMember (const IVarName &compName) const
virtual const IObjectIA * getStaticMember (sint32) const
virtual sint32 getStaticMemberIndex (const IVarName &) const
virtual sint32 getStaticMemberSize () const
void incRef ()
 Inc a reference. We use this when we have to conserve a pointer memeory for exemple in a list.

virtual void init (IObjectIA *)
void init ()
void initCode (const CCodeBrancheRun &l)
void initCode (const CCodeBrancheRunDebug &l)
 Init the CCodeBrancheRunDebug from an other CCodeBrancheRunDebug.

void initCode (const TListCode &l)
 Init the CCodeBrancheRunDebug from a CBagOfCode list.

virtual sint32 isClassInheritedFrom (const IVarName &) const
virtual bool isEqual (const IBasicObjectIA &a) const=0
virtual bool isLocal ()
 If the result is true the object is loclal else its a representation of an object on the server. By the method return true.

virtual TQueue isMember (const IVarName *, const IVarName *, const IObjectIA &) const
IOpCodenextCode ()
 get the op code from the curent position.

 operator uint32 ()
 get the ip pointer.

void operator+= (uint32 l)
 move the ip pointer at l element.

bool operator== (const IBasicObjectIA &classType) const
IOpCode *& operator[] (int i)
 allow us to acces to an element in the internal table of the class.

void printCurrentSourceCodeLine () const
 Print the current line in source code of the actual opCode.

void printSourceCodeLine (int first, int last) const
 Print lines between first and last in source code of the actual opCode.

virtual void release ()
 Release allow to release the pointer. The last release when the _Ref is nul delete the object.

const NLAIAGENT::IObjectIA::CProcessResultrun (CCodeContext &)
 Run with a given context.

const NLAIAGENT::IObjectIA::CProcessResultrun (NLAIAGENT::IObjectIA &self)
virtual CProcessResult runMethodeMember (sint32 index, IObjectIA *)
virtual CProcessResult runMethodeMember (sint32, sint32, IObjectIA *)
NLAIAGENT::TProcessStatement runOpCode (CCodeContext &context)
 Run the next IOpCode in the array.

virtual const CProcessResult & runStep ()
virtual CProcessResult sendMessage (const IVarName &, IObjectIA *)
virtual CProcessResult sendMessage (IObjectIA *)
virtual void serial (NLMISC::IStream &f) throw (NLMISC::EStream)
void setLineCode (int ligne, int index)
 Store the linde in the source code associate with the OpCode.

virtual bool setStaticMember (sint32, IObjectIA *)
bool setStaticMember (const IVarName &compName, IObjectIA *change)
virtual ~CCodeBrancheRunDebug ()
 Destructor.

IBasicObjectIA method.
bool isEqual (const NLAIAGENT::IBasicObjectIA &a) const
IObjectIA method.
virtual const NLAIAGENT::IObjectIA::CProcessResultrun ()
IBasicInterface method.
const NLAIC::IBasicTypeclone () const
const NLAIC::CIdentTypegetType () const
virtual void load (NLMISC::IStream &)
const NLAIC::IBasicTypenewInstance () const
virtual void save (NLMISC::IStream &)
IBasicInterface method.
void getDebugString (std::string &) const
IBasicObjectIA method.
bool isEqual (const NLAIAGENT::IBasicObjectIA &a) const
IObjectIA method.
virtual const NLAIAGENT::IObjectIA::CProcessResultrun ()

Static Public Attributes

const NLAIC::CIdentType IdCodeBrancheRun
const NLAIC::CIdentType IdCodeBrancheRunDebug
NLAIC::IIOInputOutput = NULL
TProcessStatement ProcessBuzzy = processBuzzy
TProcessStatement ProcessEnd = processEnd
TProcessStatement ProcessError = processError
TProcessStatement ProcessIdle = processIdle
TProcessStatement ProcessLocked = processLocked
CProcessResult ProcessNotComplit = IObjectIA::CProcessResult(processNotComplete)
CProcessResult ProcessRun = IObjectIA::CProcessResult()

Protected Member Functions

void del ()
 del allow the class to del and reinitialize the class.


Protected Attributes

int _Count
 The count of the op code table.

int _Ip
 The code pointer index of the curent op code in run.

NLAIAGENT::IObjectIA::CProcessResult _RunState
 The state of tje last run method called.

IOpCode ** _TableCode
 Table for storage the op code.


Private Member Functions

void fixContextDebugMode (CCodeContext &P) const
void initCBRD ()
void printArgs (CCodeContext &P) const
void printVariable (CCodeContext &P, const char *c) const
bool readCommandLine (CCodeContext &P, const char *commandLine)
 Return True if the next opCode must be run.


Private Attributes

int * _LineInSourceCodeArray
IScriptDebugSource_SourceCode


Constructor & Destructor Documentation

NLAISCRIPT::CCodeBrancheRunDebug::CCodeBrancheRunDebug sint32  N,
const IOpCode op
 

Constructor param N Size of the CodeBranche param op Default OpCode

Definition at line 49 of file code_branche_run_debug.cpp.

References initCBRD(), and sint32.

Referenced by clone(), and newInstance().

00049                                                                             :
00050                 CCodeBrancheRun(N, op), _SourceCode(NULL)
00051         {
00052                 initCBRD();
00053         }

NLAISCRIPT::CCodeBrancheRunDebug::CCodeBrancheRunDebug sint32  N,
IScriptDebugSource sourceCode
 

Constructor param N Size of the CodeBranche

Definition at line 55 of file code_branche_run_debug.cpp.

References _SourceCode, NLAIC::IPointerGestion::incRef(), initCBRD(), and sint32.

00055                                                                                           :
00056         CCodeBrancheRun(N),
00057         _SourceCode(sourceCode)
00058         {
00059                 _SourceCode->incRef();
00060                 initCBRD();
00061         }

NLAISCRIPT::CCodeBrancheRunDebug::CCodeBrancheRunDebug const TListCode l  ) 
 

Constructor param l CBagOfCode list

Definition at line 63 of file code_branche_run_debug.cpp.

References initCBRD(), NLAISCRIPT::l, and NLAISCRIPT::TListCode.

00063                                                                     :
00064         CCodeBrancheRun(l),
00065         _SourceCode(NULL)
00066         {
00067                 initCBRD();
00068         }       

NLAISCRIPT::CCodeBrancheRunDebug::CCodeBrancheRunDebug const CCodeBrancheRunDebug l  ) 
 

Copy constructor.

Definition at line 70 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, _SourceCode, NLAIC::IPointerGestion::incRef(), initCBRD(), NLAISCRIPT::l, and sint32.

00070                                                                                :
00071         CCodeBrancheRun(l),
00072         _LineInSourceCodeArray(NULL),
00073         _SourceCode(l._SourceCode)
00074         {
00075                 _SourceCode->incRef();
00076                 initCBRD();
00077                 for(sint32 i = 0 ;i < _Count; i ++) 
00078                 {
00079                         _LineInSourceCodeArray[i] = l._LineInSourceCodeArray[i];
00080                 }
00081         }

NLAISCRIPT::CCodeBrancheRunDebug::~CCodeBrancheRunDebug  )  [virtual]
 

Destructor.

Definition at line 83 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, _SourceCode, and NLAIC::IPointerGestion::release().

00084         {
00085                 delete []_LineInSourceCodeArray;
00086                 if (_SourceCode) _SourceCode->release();
00087         }


Member Function Documentation

TQueue NLAIAGENT::IObjectIA::canProcessMessage const IVarName  )  [virtual, inherited]
 

The method canProcessMessage(const IVarName &msgName) allow us to know if agent can preocess given by msgName.

TQueue contain the liste of method (same as a run(msg)) that coud process the msg.

Reimplemented in NLAIAGENT::CLocalAgentMail.

Definition at line 350 of file baseai.cpp.

References NLAIAGENT::TQueue.

Referenced by NLAIAGENT::CLocalAgentMail::canProcessMessage().

00351         {
00352                 return TQueue();
00353         }

const NLAIC::IBasicType * NLAISCRIPT::CCodeBrancheRunDebug::clone  )  const [virtual]
 

This function allow a pointer copy, that mean that the new class have the sam attributs caracteristics as the owne.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 89 of file code_branche_run_debug.cpp.

References CCodeBrancheRunDebug(), and x.

00090         {
00091                 NLAIC::IBasicType *x = new CCodeBrancheRunDebug(*this);
00092                 return x;
00093         }

sint32 NLAIC::IPointerGestion::decRef  )  [inline, inherited]
 

Decrement the reference of an object.

Definition at line 93 of file abstract_interface.h.

References NLAIC::IPointerGestion::_Ref, and sint32.

Referenced by NLAIC::IPointerGestion::release(), and NLAIAGENT::CAgentTimerHandle::~CAgentTimerHandle().

00094                 {
00095                         return --_Ref;
00096                 }

void NLAISCRIPT::CCodeBrancheRun::del  )  [inline, protected, inherited]
 

del allow the class to del and reinitialize the class.

Definition at line 522 of file codage.h.

Referenced by initCode(), and NLAISCRIPT::CCodeBrancheRun::load().

00523                 {
00524                         if(_TableCode != NULL)
00525                         {
00526                                 for(int i = 0 ;i < _Count; i ++)
00527                                 {
00528                                         if(_TableCode[i]) _TableCode[i]->release();
00529                                 }
00530                                 delete []_TableCode;
00531                         }
00532                 }

void NLAISCRIPT::CCodeBrancheRunDebug::fixContextDebugMode CCodeContext P  )  const [private]
 

Definition at line 262 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, NLAISCRIPT::CCodeContext::ContextDebug, NLAISCRIPT::CContextDebug::getBreakPointValue(), NLAISCRIPT::CContextDebug::getCallStackTopIndex(), NLAISCRIPT::CContextDebug::getDebugMode(), getSourceFileName(), NLAISCRIPT::CContextDebug::getStepIndex(), NLAISCRIPT::CContextDebug::setDebugMode(), NLAISCRIPT::CContextDebug::setStepIndex(), NLAISCRIPT::stepByStepMode, NLAISCRIPT::stepInMode, and NLAISCRIPT::stepOutMode.

Referenced by runOpCode().

00263         {
00264                 // We are in step by step mode on the current CCodeBrancheRun :
00265                 if (   P.ContextDebug.getBreakPointValue(_LineInSourceCodeArray[_Ip-1],getSourceFileName().c_str()) // After a BreakPoint.
00266                         || P.ContextDebug.getDebugMode() == stepInMode  // After a stepInMode.
00267                         || P.ContextDebug.getDebugMode() == stepOutMode && (P.ContextDebug.getCallStackTopIndex() < P.ContextDebug.getStepIndex()) // After leaving a branche in stepOutMode.
00268                         || P.ContextDebug.getDebugMode() == stepByStepMode && P.ContextDebug.getCallStackTopIndex() < P.ContextDebug.getStepIndex()) // If we reach a higer level branch in stepBySteplMode.
00269                 {
00270                         P.ContextDebug.setDebugMode(stepByStepMode);
00271                         P.ContextDebug.setStepIndex(P.ContextDebug.getCallStackTopIndex());
00272                 }
00273         }

virtual std::string NLAIC::IPointerGestion::getClassName  )  [inline, virtual, inherited]
 

Implements NLMISC::IClassable.

Reimplemented in NLAIC::CIdentType.

Definition at line 116 of file abstract_interface.h.

Referenced by NLAISCRIPT::CAgentClass::isClassInheritedFrom().

00117                 {
00118                         return std::string("<unnamed>");
00119                 }

uint16 NLAISCRIPT::CCodeBrancheRunDebug::getCurrentSourceCodeLineNumber  )  const
 

Return the line number in source code of the actual opCode.

Definition at line 343 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, sint32, and uint16.

Referenced by printCurrentSourceCodeLine(), printSourceCodeLine(), and readCommandLine().

00344         {
00345                 if (_Ip ==0)
00346                         return 0; // This shouldn't appen.
00347                 
00348                 if (_LineInSourceCodeArray[_Ip-1] != 0)
00349                 {
00350                         return (_LineInSourceCodeArray[_Ip-1]);
00351                 }
00352                 else
00353                 {
00354                         sint32 i = 2;
00355                         while (_LineInSourceCodeArray[_Ip-i] == 0)
00356                         {
00357                                 i++;
00358                         }
00359                         return _LineInSourceCodeArray[_Ip-i];
00360                 }
00361         }

void NLAISCRIPT::CCodeBrancheRunDebug::getDebugResult std::string &  str,
CCodeContext context
const [virtual]
 

Return a debug string.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 213 of file code_branche_run_debug.cpp.

References NLAISCRIPT::IOpCode::getDebugResult().

00214         {               
00215                 _TableCode[_Ip]->getDebugResult(str,p);
00216         }

void NLAISCRIPT::CCodeBrancheRun::getDebugString std::string &   )  const [virtual, inherited]
 

This is a Debug function, text is an character pointer to receive the debug text output, the debug text containe all think sensible to interset user.

Implements NLAIC::IBasicType.

Definition at line 90 of file codage.cpp.

References NLAIC::stringGetBuild(), and t.

00091         {
00092                 t += NLAIC::stringGetBuild("<CCodeBrancheRun _count = %d>", _Count);
00093         }

virtual const std::string NLAIC::IBasicType::getInfo  )  [inline, virtual, inherited]
 

Definition at line 292 of file abstract_interface.h.

References NLAIC::IBasicType::getDebugString(), and s.

00293                 {
00294                         std::string s;
00295                         getDebugString(s);
00296                         return s;
00297                 }

std::string NLAIAGENT::IObjectIA::getMethodeMemberDebugString sint32  ,
sint32 
const [virtual, inherited]
 

The methode getMethodeMemberDebugString(sint32 heritance, sint32 index) return a string that define the name and the argument of the method

Reimplemented in NLAIAGENT::CAgentScript.

Definition at line 311 of file baseai.cpp.

References sint32.

Referenced by NLAISCRIPT::CCallHeapMethodi::getDebugResult(), NLAISCRIPT::CCallStackMethodi::getDebugResult(), NLAISCRIPT::CCallMethodi::getDebugResult(), NLAISCRIPT::CLibHeapMemberMethod::getDebugResult(), NLAISCRIPT::CLibStackNewMemberMethod::getDebugResult(), NLAISCRIPT::CLibStackMemberMethod::getDebugResult(), NLAISCRIPT::CLibCallMethodi::getDebugResult(), NLAISCRIPT::CLibCallInheritedMethod::getDebugResult(), NLAISCRIPT::CLibCallMethod::getDebugResult(), NLAISCRIPT::CLibMemberMethodi::getDebugResult(), NLAISCRIPT::CLibMemberInheritedMethod::getDebugResult(), and NLAISCRIPT::CLibMemberMethod::getDebugResult().

00312         {
00313                 switch(id)
00314                 {
00315                 case 0:
00316                         {
00317                                 return std::string("IObjectIA::sendMessage(IMessage)");
00318                         }                       
00319                         break;
00320                 case 1:                 
00321                         break;
00322                 case 2:                 
00323                         return std::string("IObjectIA::run()");
00324                         break;
00325 
00326                 case 3:
00327                         {                               
00328                                 return std::string("IObjectIA::getStaticMember(Integer)");                              
00329                         }
00330                 }
00331                 return std::string("Mathod_?????(Param_?????)");
00332         }

sint32 NLAIAGENT::IObjectIA::getMethodIndexSize  )  const [virtual, inherited]
 

getMethodIndexSize define the nomber of method define in the class.

Reimplemented in NLAIAGENT::CActor, NLAIAGENT::CActorScript, NLAIAGENT::IBasicAgent, NLAIAGENT::IVector, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombreDefine, NLAIAGENT::CPairType, NLAIAGENT::IBaseGroupType, NLAIAGENT::CVectorGroupType, NLAIAGENT::IObjetOp, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CLibTimerManager, NLAIAGENT::CAgentWatchTimer, NLAIAGENT::CAgentTimerHandle, NLAILOGIC::CGoalStack, NLAIAGENT::IListBasicManager, NLAIAGENT::CMessageScript, NLAIAGENT::IMessageBase, NLAIAGENT::CAgentOperation, NLAIFUZZY::CFuzzyVar, NLAILOGIC::CFact, NLAIAGENT::CFsmScript, NLAILOGIC::CGoal, NLAILOGIC::CInternalGoal, NLAILOGIC::CGoalPath, NLAILOGIC::CGoalStack, NLAIAGENT::COperatorScript, NLAILOGIC::IBaseVar, NLAISCRIPT::CAgentClass, and NLAISCRIPT::CLibTest.

Definition at line 251 of file baseai.cpp.

References sint32.

00252         {
00253                 return 4;
00254         }

const sint32& NLAIC::IPointerGestion::getRef  )  const [inline, inherited]
 

get the refence count.

Definition at line 99 of file abstract_interface.h.

References NLAIC::IPointerGestion::_Ref, and sint32.

Referenced by NLAIAGENT::CAgentTimerHandle::~CAgentTimerHandle().

00100                 {
00101                         return _Ref;
00102                 }

std::string NLAISCRIPT::CCodeBrancheRunDebug::getSourceFileName  )  const
 

Return the name (& path) of the source code file.

Definition at line 257 of file code_branche_run_debug.cpp.

References _SourceCode, and NLAISCRIPT::IScriptDebugSource::getSourceName().

Referenced by NLAISCRIPT::CContextDebug::callStackPrint(), fixContextDebugMode(), and readCommandLine().

00258         {
00259                 return _SourceCode->getSourceName().c_str();
00260         }

const IObjectIA* NLAIAGENT::IObjectIA::getStaticMember const IVarName compName  )  const [inline, inherited]
 

to get the pointer of a given components referened by an string.

Definition at line 261 of file baseai.h.

References NLAIAGENT::IObjectIA::getStaticMember(), and NLAIAGENT::IObjectIA::getStaticMemberIndex().

00262                 {
00263                         return getStaticMember(getStaticMemberIndex(compName));
00264                 }

const IObjectIA * NLAIAGENT::IObjectIA::getStaticMember sint32   )  const [virtual, inherited]
 

to get the pointer of a given components referened by an index.

Reimplemented in NLAIAGENT::CLocalAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CMessageScript, and NLAISCRIPT::CAgentClass.

Definition at line 193 of file baseai.cpp.

References sint32.

Referenced by NLAISCRIPT::CCompilateur::affectationMember(), NLAIAGENT::CComponentHandle::getComponent(), NLAISCRIPT::CLdbMemberiOpCode::getDebugResult(), NLAISCRIPT::CLdbHeapMemberiOpCode::getDebugResult(), NLAISCRIPT::CLdbStackMemberiOpCode::getDebugResult(), NLAISCRIPT::CCallStackNewMethodi::getDebugResult(), NLAISCRIPT::CCallHeapMethodi::getDebugResult(), NLAISCRIPT::CCallStackMethodi::getDebugResult(), NLAISCRIPT::CCallMethodi::getDebugResult(), NLAISCRIPT::CLibHeapMemberMethod::getDebugResult(), NLAISCRIPT::CLibStackNewMemberMethod::getDebugResult(), NLAISCRIPT::CLibStackMemberMethod::getDebugResult(), NLAISCRIPT::CLibCallMethodi::getDebugResult(), NLAISCRIPT::CLibMemberMethodi::getDebugResult(), NLAISCRIPT::CLoadHeapObject::getObject(), NLAISCRIPT::CLoadStackObject::getObject(), NLAISCRIPT::CLoadSelfObject::getObject(), NLAIAGENT::IObjectIA::getStaticMember(), NLAIAGENT::CLocalAgentMail::getStaticMember(), NLAISCRIPT::CCompilateur::getValidateHierarchyBase(), NLAISCRIPT::CCompilateur::isValidateVarName(), printVariable(), NLAIAGENT::IObjectIA::runMethodeMember(), NLAISCRIPT::CLdbMemberiOpCode::runOpCode(), NLAISCRIPT::CLdbHeapMemberiOpCode::runOpCode(), NLAISCRIPT::CLdbStackMemberiOpCode::runOpCode(), NLAISCRIPT::CCallHeapMethodi::runOpCode(), NLAISCRIPT::CCallStackMethodi::runOpCode(), NLAISCRIPT::CCallStackNewMethodi::runOpCode(), NLAISCRIPT::CCallMethodi::runOpCode(), NLAISCRIPT::CLibHeapMemberMethod::runOpCode(), NLAISCRIPT::CLibStackNewMemberMethod::runOpCode(), NLAISCRIPT::CLibStackMemberMethod::runOpCode(), NLAISCRIPT::CLibCallMethodi::runOpCode(), NLAISCRIPT::CLibMemberMethodi::runOpCode(), NLAISCRIPT::CAffHeapMemberiOpCode::runOpCode(), and NLAISCRIPT::CAffMemberiOpCode::runOpCode().

00194         {
00195                 return NULL;
00196         }

sint32 NLAIAGENT::IObjectIA::getStaticMemberIndex const IVarName  )  const [virtual, inherited]
 

to get the index of a given components name.

Reimplemented in NLAIAGENT::CLocalAgentMail, NLAIAGENT::CAgentScript, and NLAIAGENT::CMessageScript.

Definition at line 188 of file baseai.cpp.

References sint32.

Referenced by NLAISCRIPT::CCompilateur::affectation(), NLAIAGENT::CComponentHandle::getComponent(), NLAIAGENT::IObjectIA::getStaticMember(), NLAIAGENT::CLocalAgentMail::getStaticMemberIndex(), NLAISCRIPT::CCompilateur::getValidateHierarchyBase(), NLAISCRIPT::CCompilateur::isValidateVarName(), printVariable(), NLAISCRIPT::CCompilateur::processingVar(), NLAISCRIPT::CConstraintStackComp::run(), and NLAIAGENT::IObjectIA::setStaticMember().

00189         {
00190                 return -1;
00191         }

sint32 NLAIAGENT::IObjectIA::getStaticMemberSize  )  const [virtual, inherited]
 

Static member is the component that the agent is create and die with. getStaticMemberSize to get the size of the static member components

Reimplemented in NLAIAGENT::CLocalAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CMessageScript, NLAISCRIPT::IClassInterpret, and NLAISCRIPT::CAgentClass.

Definition at line 180 of file baseai.cpp.

References NLAIC::IBasicType::getType(), sint32, and NLAIC::stringGetBuild().

Referenced by NLAIAGENT::CLocalAgentMail::getStaticMemberSize().

00181         {
00182                 std::string text;
00183                 text = NLAIC::stringGetBuild("sint32 IObjectIA::getStaticMemberSize() note implementaited for the '%s' interface",(const char *)getType());
00184                 throw NLAIE::CExceptionNotImplemented(text.c_str());
00185                 return 0;       
00186         }

const NLAIC::CIdentType & NLAISCRIPT::CCodeBrancheRunDebug::getType  )  const [virtual]
 

getType return a unique string how represente the class, it can be the name of the class. This function is used for the sytem regstry class (see the definition of the template class Gen::CRegistry).

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 218 of file code_branche_run_debug.cpp.

References IdCodeBrancheRunDebug.

00219         {               
00220                 return IdCodeBrancheRunDebug;
00221         }

void NLAIC::IPointerGestion::incRef  )  [inline, inherited]
 

Inc a reference. We use this when we have to conserve a pointer memeory for exemple in a list.

Definition at line 80 of file abstract_interface.h.

References NLAIC::IPointerGestion::_Ref.

Referenced by NLAIAGENT::CSeqFsmScript::activate(), NLAILOGIC::CFactBase::addAssert(), NLAIAGENT::IAgentComposite::addChild(), NLAILOGIC::IBaseAssert::addInput(), NLAILOGIC::CBoolOperator::addPostcondition(), NLAILOGIC::CBoolOperator::addPrecondition(), NLAILOGIC::CInternalGoal::addPredecessor(), NLAILOGIC::CGoal::addPredecessor(), NLAIFUZZY::CFuzzyVar::addSet(), NLAISCRIPT::CCompilateur::affectation(), NLAILOGIC::CFact::asValueSet(), NLAIAGENT::CAgentWatchTimer::attach(), NLAISCRIPT::CCompilateur::buildObject(), NLAISCRIPT::CAgentClass::buildVMethode(), NLAIAGENT::CAgentOperation::CAgentOperation(), NLAIAGENT::CAgentTimerHandle::CAgentTimerHandle(), NLAISCRIPT::CCompilateur::callFunction(), NLAISCRIPT::CClassInterpretFactory::CClassInterpretFactory(), CCodeBrancheRunDebug(), NLAISCRIPT::CCompilateur::CCompilateur(), NLAISCRIPT::CFactorType::CFactorType(), NLAISCRIPT::CFunctionTag::CFunctionTag(), NLAIAGENT::COperatorScript::checkTrigMsg(), NLAIC::CIdentType::CIdentType(), NLAIAGENT::CIdMethod::CIdMethod(), NLAIAGENT::CKeyObject::CKeyObject(), NLAISCRIPT::CFindRunMsg::clone(), NLAISCRIPT::CObjectUnknown::clone(), NLAISCRIPT::CConstraintStackComp::clone(), NLAISCRIPT::CConstraintFindRun::clone(), NLAISCRIPT::CConstraintMethode::clone(), NLAILINK::IOTrace::clone(), NLAISCRIPT::CMethodeName::CMethodeName(), NLAISCRIPT::CAgentClass::CMethodType::CMethodType(), NLAISCRIPT::CObjectUnknown::CObjectUnknown(), NLAIAGENT::CPairType::CPairType(), NLAISCRIPT::CAgentClass::createComponents(), NLAILOGIC::CValueSet::CValueSet(), NLAILOGIC::CVar::CVar(), NLAILOGIC::CValueSet::forward(), NLAIAGENT::IMessageBase::IMessageBase(), NLAIAGENT::CAgentScript::initAgentScript(), NLAISCRIPT::CCompilateur::initMessageManager(), NLAISCRIPT::COperatorClass::isValidFonc(), NLAILOGIC::CValueSet::load(), NLAILOGIC::IBaseOperator::load(), NLAISCRIPT::CAgentClass::load(), NLAISCRIPT::CComponent::load(), NLAISCRIPT::CMethodeName::load(), NLAIAGENT::CVectorGroupType::operator+(), NLAIAGENT::CGroupType::operator+(), NLAISCRIPT::CPramContainer::operator+=(), NLAIAGENT::IMessageBase::operator=(), NLAIAGENT::CKeyObject::operator=(), NLAISCRIPT::CAgentClass::CMethodType::operator=(), NLAISCRIPT::CFunctionTag::operator=(), NLAIAGENT::CIdMethod::operator=(), NLAISCRIPT::CCompilateur::processingVar(), NLAIAGENT::CAgentScript::processMessages(), NLAISCRIPT::CCompilateur::pushParamExpression(), NLAISCRIPT::CConstraintFindRun::run(), NLAIAGENT::IBasicAgent::run(), NLAIAGENT::CAgentScript::runAskGetValue(), NLAIAGENT::IAgent::runChildren(), NLAIAGENT::CMainAgentScript::runExec(), NLAIAGENT::CAgentScript::runInitComponent(), NLAIAGENT::CAgentOperation::runMethodBase(), NLAIAGENT::CAgentWatchTimer::runMethodBase(), NLAIAGENT::CAgentScript::runMethodBase(), NLAIAGENT::CActorScript::runMethodBase(), NLAIAGENT::IMessageBase::runMethodeMember(), NLAIAGENT::IBaseGroupType::runMethodeMember(), NLAIAGENT::IBasicAgent::runMethodeMember(), NLAISCRIPT::CLdbRefOpCode::runOpCode(), NLAISCRIPT::CLdbMemberiOpCode::runOpCode(), NLAISCRIPT::CLdbHeapMemberiOpCode::runOpCode(), NLAISCRIPT::CLdbStackMemberiOpCode::runOpCode(), NLAISCRIPT::CCallStackMethodi::runOpCode(), NLAISCRIPT::CCallStackNewMethodi::runOpCode(), NLAISCRIPT::CLibStackNewMemberMethod::runOpCode(), NLAISCRIPT::CLibStackMemberMethod::runOpCode(), NLAISCRIPT::CAffOpCode::runOpCode(), NLAISCRIPT::CAddParamNameDebug::runOpCode(), NLAISCRIPT::CAffOpCodeDebug::runOpCode(), NLAISCRIPT::CAffHeapMemberiOpCode::runOpCode(), NLAISCRIPT::CAffMemberOpCode::runOpCode(), NLAISCRIPT::CAffMemberiOpCode::runOpCode(), NLAIAGENT::CAgentScript::runTellComponent(), NLAIAGENT::CAgentScript::runTellSetValue(), NLAISCRIPT::CMethodContextDebug::saveContext(), NLAISCRIPT::CMethodContext::saveContext(), NLAIAGENT::CAgentScript::sendBroadCast(), NLAIAGENT::IListManager::sendMessage(), NLAIAGENT::CAgentScript::sendMethodCompoment(), NLAIAGENT::CVolatilMemmory::sendUpdateMessage(), NLAISCRIPT::CFactorType::set(), NLAILOGIC::IBaseOperator::setGoal(), NLAISCRIPT::CCompilateur::setImediateVarNill(), NLAISCRIPT::CCompilateur::setMethodVar(), NLAISCRIPT::CCompilateur::setParamVarName(), NLAISCRIPT::CFunctionTag::setTypeObject(), NLAILOGIC::CVar::setValue(), NLAILOGIC::CValueSet::setValue(), NLAIAGENT::CAgentWatchTimer::tellBroker(), NLAISCRIPT::CCompilateur::typeOfMethod(), NLAILOGIC::CVar::unify(), NLAILOGIC::CValueSet::unify(), and NLAIAGENT::CAgentOperation::update().

00081                 {
00082                         _Ref ++;
00083                 }

void NLAIAGENT::IObjectIA::init IObjectIA  )  [virtual, inherited]
 

Init method alows to init the attribut of an object. the maparmetre is in more time a list of IObjectIA.

Reimplemented in NLAIFUZZY::CSimpleFuzzyCond, NLAIFUZZY::CFuzzyRule, NLAIFUZZY::CFuzzyRuleSet, NLAIFUZZY::CFuzzyInterval, NLAIFUZZY::CRightFuzzySet, NLAIFUZZY::CTriangleFuzzySet, NLAIFUZZY::CTrapezeFuzzySet, NLAIFUZZY::CLeftFuzzySet, NLAIFUZZY::CFuzzyVar, NLAILOGIC::CFirstOrderAssert, NLAILOGIC::CRule, and NLAILOGIC::CFactPattern.

Definition at line 116 of file baseai.cpp.

Referenced by NLAIFUZZY::IFuzzySet::runMethodeMember(), and NLAISCRIPT::CLdbNewOpCode::runOpCode().

00117         {
00118                 
00119         }

void NLAISCRIPT::CCodeBrancheRun::init void   )  [inline, inherited]
 

Definition at line 627 of file codage.h.

00628                 {
00629                         _Ip = 0;
00630                 }

void NLAISCRIPT::CCodeBrancheRunDebug::initCBRD  )  [private]
 

Definition at line 40 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, and sint32.

Referenced by CCodeBrancheRunDebug().

00041         {
00042                 _LineInSourceCodeArray = new int[_Count];
00043                 for(sint32 i = 0 ;i < _Count; i ++) 
00044                 {
00045                         _LineInSourceCodeArray[i] = 0; // It's a mark, because 0 could'nt be a true value.
00046                 }
00047         }

void NLAISCRIPT::CCodeBrancheRun::initCode const CCodeBrancheRun l  )  [inline, inherited]
 

Definition at line 589 of file codage.h.

References NLAISCRIPT::l.

00590                 {
00591                         del();
00592 
00593                         _Ip = 0;
00594                         _Count = l._Count;
00595                         
00596                         _TableCode = new IOpCode * [_Count];            
00597                         for(int i = 0; i < _Count;i ++)
00598                         {
00599                                 _TableCode[i ++] = (IOpCode *)l._TableCode[i]->clone();
00600                         }
00601                 }

void NLAISCRIPT::CCodeBrancheRunDebug::initCode const CCodeBrancheRunDebug l  ) 
 

Init the CCodeBrancheRunDebug from an other CCodeBrancheRunDebug.

Definition at line 238 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CCodeBrancheRun::del(), NLAISCRIPT::l, and sint32.

00239         {
00240                 del();
00241 
00242                 _Ip = 0;
00243                 _Count = l._Count;
00244                 
00245                 _TableCode = new IOpCode * [_Count];            
00246                 for(sint32 i = 0; i < _Count;i ++)
00247                 {
00248                         _TableCode[i] = (IOpCode *)l._TableCode[i]->clone();    
00249                 }
00250         }

void NLAISCRIPT::CCodeBrancheRunDebug::initCode const TListCode l  ) 
 

Init the CCodeBrancheRunDebug from a CBagOfCode list.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 223 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CCodeBrancheRun::del(), NLAISCRIPT::l, sint32, and NLAISCRIPT::TListCode.

00224         {
00225                 del();
00226                 _Count = l.size();
00227 
00228                 TListCode::const_iterator i;            
00229                 _TableCode = new IOpCode * [l.size()];
00230                 i = l.begin();
00231                 sint32 k = 0;
00232                 while(i != l.end())
00233                 {
00234                         _TableCode[k ++] = (IOpCode *)*i++;
00235                 }               
00236         }

sint32 NLAIAGENT::IObjectIA::isClassInheritedFrom const IVarName  )  const [virtual, inherited]
 

isClassInheritedFrom(className) allow us to known if this class have a base class with the name className.

If true the method return the range of the base class, this range is an arbitrary reference id define by the programmer or bay the scrypt. the false return is define by -1.

Reimplemented in NLAIAGENT::IVector, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombreDefine, NLAIAGENT::IBaseGroupType, and NLAIAGENT::CMessageScript.

Definition at line 246 of file baseai.cpp.

References sint32.

Referenced by NLAISCRIPT::CCompilateur::getValidateHierarchyBase(), NLAIAGENT::CLocalAgentMail::isClassInheritedFrom(), NLAIAGENT::CActorScript::Launch(), NLAIAGENT::CFsmScript::setTopLevel(), and NLAIAGENT::CActorScript::setTopLevel().

00247         {
00248                 return -1;
00249         }       

virtual bool NLAIAGENT::IBasicObjectIA::isEqual const IBasicObjectIA a  )  const [pure virtual, inherited]
 

The bool operator == (const IBasicObjectIA &a) const member method call this function when class 'classType' have the same type of this class, programme have to assume the equality between the memebers of this class and the memeber of the class 'classType'.

Implemented in NLAIAGENT::CActor, NLAIAGENT::CActorScript, NLAIAGENT::IAgent, NLAIAGENT::IVector, NLAIAGENT::IAgentInput, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombre< tNombre >, NLAIAGENT::CStringType, NLAIAGENT::CPairType, NLAIAGENT::CGroupType, NLAIAGENT::CVectorGroupType, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::IListBasicManager, NLAIAGENT::IListManager, NLAIAGENT::CLocalMailBox, NLAIAGENT::CMessageScript, NLAIAGENT::IMessageBase, NLAIAGENT::CObjectIdent, NLAIAGENT::CObjectType, NLAIAGENT::CAgentOperation, NLAIAGENT::CHashTimerManager, NLAIAGENT::CVolatilMemmory, NLAIAGENT::CFsmScript, NLAIAGENT::CSeqFsmScript, NLAIAGENT::COperatorScript, NLAIAGENT::INombre< double >, NLAIAGENT::INombre< uint16 >, NLAIAGENT::INombre< float >, NLAIAGENT::INombre< sint8 >, NLAIAGENT::INombre< uint64 >, NLAIAGENT::INombre< sint16 >, NLAIAGENT::INombre< uint8 >, NLAIAGENT::INombre< uint32 >, and NLAIAGENT::INombre< sint32 >.

Referenced by NLAIAGENT::CAgentOperation::isEqual(), NLAIAGENT::IMessageBase::isEqual(), NLAIAGENT::IListBasicManager::isEqual(), NLAIAGENT::CLocalAgentMail::isEqual(), NLAIAGENT::IAgentInput::isEqual(), and NLAIAGENT::IBasicObjectIA::operator==().

bool NLAISCRIPT::CCodeBrancheRun::isEqual const NLAIAGENT::IBasicObjectIA a  )  const [inline, inherited]
 

Definition at line 664 of file codage.h.

00664 { return true;} 

bool NLAIAGENT::IObjectIA::isLocal  )  [virtual, inherited]
 

If the result is true the object is loclal else its a representation of an object on the server. By the method return true.

Definition at line 356 of file baseai.cpp.

00357         {
00358                 return true;
00359         }

TQueue NLAIAGENT::IObjectIA::isMember const IVarName ,
const IVarName ,
const IObjectIA
const [virtual, inherited]
 

The method isMember(nameSubClass,methodName,param) return the best method correspondent to the search. remember we use the overloadind method.

NameSubClass: if this pointer is not NULL then NameSubClass is the name of the base class were the method are defined.

methodName: is the name of the class.

param: is an IObjectIA where it defined the parametre of the method. lot of method use a IObjectIA vector object with an NLAIC::CIdentType as the the template argm.

Reimplemented in NLAIAGENT::IBasicAgent, NLAIAGENT::IVector, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombreDefine, NLAIAGENT::CPairType, NLAIAGENT::IBaseGroupType, NLAIAGENT::CVectorGroupType, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentTimerHandle, NLAIAGENT::IListBasicManager, NLAIAGENT::CMessageScript, and NLAIAGENT::IMessageBase.

Definition at line 206 of file baseai.cpp.

References _CONSTRUCTOR_, _RUN_, _SEND_, param, r, NLAIAGENT::IObjectIA::run(), and NLAIAGENT::TQueue.

Referenced by NLAIAGENT::CAgentWatchTimer::addAttrib(), NLAISCRIPT::CCompilateur::findMethode(), NLAISCRIPT::CAgentClass::isMember(), NLAIAGENT::CLocalAgentMail::isMember(), and NLAISCRIPT::CFindRunMsg::runOpCode().

00207         {               
00208                 static CStringVarName send(_SEND_);
00209                 static CStringVarName constructor(_CONSTRUCTOR_);
00210                 static CStringVarName run(_RUN_);
00211                 static CStringVarName statM("GetStaticMember");
00212 
00213                 if(*methodName == send)
00214                 {
00215                         TQueue r;                       
00216                         CObjectType *c = new CObjectType(new NLAIC::CIdentType(NLAIC::CIdentType::VoidType));
00217                         r.push(CIdMethod(0,0.0,NULL,c));
00218                         return r;
00219                 }
00220                 else
00221                 if(*methodName == constructor && !((const NLAISCRIPT::CParam &)param).size())
00222                 {
00223                         TQueue r;
00224                         CObjectType *c = new CObjectType(new NLAIC::CIdentType(NLAIC::CIdentType::VoidType));
00225                         r.push(CIdMethod(1,0.0,NULL,c));
00226                         return r;
00227                 }
00228                 else
00229                 if(*methodName == run && !((const NLAISCRIPT::CParam &)param).size())
00230                 {
00231                         TQueue r;
00232                         CObjectType *c = new CObjectType(new NLAIC::CIdentType(NLAIC::CIdentType::VoidType));
00233                         r.push(CIdMethod(2,0.0,NULL,c));
00234                         return r;                       
00235                 }
00236                 if(*methodName == statM && ((const NLAISCRIPT::CParam &)param).size())
00237                 {
00238                         TQueue r;
00239                         CObjectType *c = new CObjectType(new NLAIC::CIdentType(*IAgent::IdAgent));
00240                         r.push(CIdMethod(3,0.0,NULL,c));
00241                         return r;                       
00242                 }
00243                 return TQueue();
00244         }

void NLAISCRIPT::CCodeBrancheRunDebug::load NLMISC::IStream  )  [virtual]
 

Load the class from a stream.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 114 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, _SourceCode, NLAISCRIPT::IScriptDebugSource::load(), NLMISC::IStream::serial(), and sint32.

00115         {               
00116                 int i;
00117                 CCodeBrancheRun::load(is);
00118                 delete[] _LineInSourceCodeArray;
00119                 _LineInSourceCodeArray = new int[_Count];
00120                 for(i = 0 ;i < _Count; i ++)
00121                 {
00122                         sint32 n;
00123                         is.serial( n );
00124                         _LineInSourceCodeArray[i] = (int)n;
00125                 }
00126                 _SourceCode->load(is);
00127         }

const NLAIC::IBasicType * NLAISCRIPT::CCodeBrancheRunDebug::newInstance  )  const [virtual]
 

This function allow a new instance, that mean that the class is a class factory.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 95 of file code_branche_run_debug.cpp.

References CCodeBrancheRunDebug(), and x.

00096         {
00097                 NLAIC::IBasicType *x = new CCodeBrancheRunDebug(1,CHaltOpCode());
00098                 return x;
00099         }

IOpCode& NLAISCRIPT::CCodeBrancheRun::nextCode  )  [inline, virtual, inherited]
 

get the op code from the curent position.

Implements NLAISCRIPT::ICodeBranche.

Definition at line 633 of file codage.h.

Referenced by runOpCode(), and NLAISCRIPT::CCodeBrancheRun::runOpCode().

00634                 {
00635                         return *_TableCode[_Ip++];
00636                 }                                       

NLAISCRIPT::CCodeBrancheRun::operator uint32  )  [inline, inherited]
 

get the ip pointer.

Definition at line 622 of file codage.h.

00623                 {
00624                         return _Ip;
00625                 }

void NLAISCRIPT::CCodeBrancheRun::operator+= uint32  l  )  [inline, inherited]
 

move the ip pointer at l element.

Definition at line 616 of file codage.h.

References NLAISCRIPT::l, and uint32.

00617                 {
00618                         _Ip += l;
00619                 }

bool NLAIAGENT::IBasicObjectIA::operator== const IBasicObjectIA classType  )  const [inherited]
 

Lot of algo use this function to determine the equality between 2 class, in particular the extraction from stl list. the == operator call the bool isEqual(const IBasicObjectIA &a) const member method to determine the equality between tow class.

Definition at line 134 of file baseai.cpp.

References NLAIC::IBasicType::getType(), and NLAIAGENT::IBasicObjectIA::isEqual().

00135         {                                               
00136                 if(a.getType() == getType() ) return isEqual(a);                        
00137                 return false;
00138         }               

IOpCode*& NLAISCRIPT::CCodeBrancheRun::operator[] int  i  )  [inline, inherited]
 

allow us to acces to an element in the internal table of the class.

Definition at line 604 of file codage.h.

00605                 {
00606                         return _TableCode[i];
00607                 }

void NLAISCRIPT::CCodeBrancheRunDebug::printArgs CCodeContext P  )  const [private]
 

Definition at line 469 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CCodeContext::ContextDebug, NLAIAGENT::CStringType::getDebugString(), NLAIAGENT::CConstIteratorContener::isInEnd(), NLAISCRIPT::CContextDebug::Param, and NLAISCRIPT::CCodeContext::Param.

Referenced by readCommandLine().

00470         {
00471                 if (P.Param.size() >0 )
00472                 {
00473                         NLAIAGENT::CIteratorContener Ita = ((NLAIAGENT::CGroupType *) P.ContextDebug.Param.back())->getIterator();
00474                         NLAIAGENT::CIteratorContener Itb = ((NLAIAGENT::CGroupType *) P.Param.back())->getIterator();;                  
00475                         while(!Ita.isInEnd())
00476                         {                       
00477                                 std::string buf;
00478                                 Ita++;
00479                                 NLAIAGENT::CStringType *p = (NLAIAGENT::CStringType *)Itb++;
00480                                 p->getDebugString(buf);
00481 //                              InputOutput->Echo("%s = %s\n", o->getStr().getString(), buf);
00482                         }
00483                 }
00484         }

void NLAISCRIPT::CCodeBrancheRunDebug::printCurrentSourceCodeLine  )  const
 

Print the current line in source code of the actual opCode.

Definition at line 337 of file code_branche_run_debug.cpp.

References getCurrentSourceCodeLineNumber(), printSourceCodeLine(), and uint16.

Referenced by NLAISCRIPT::CContextDebug::callStackPrint(), and runOpCode().

00338         {
00339                 uint16 lineNumber = getCurrentSourceCodeLineNumber();
00340                 printSourceCodeLine(lineNumber, lineNumber);
00341         }

void NLAISCRIPT::CCodeBrancheRunDebug::printSourceCodeLine int  first,
int  last
const
 

Print lines between first and last in source code of the actual opCode.

Definition at line 275 of file code_branche_run_debug.cpp.

References _SourceCode, NLAIC::IIO::Echo(), getCurrentSourceCodeLineNumber(), NLAISCRIPT::IScriptDebugSource::getSourceBuffer(), sint32, and size.

Referenced by printCurrentSourceCodeLine(), and readCommandLine().

00276         {
00277                 sint32 i, j, k, size, lineNumber;
00278                 const char* buf;
00279                 char* lineTxt;
00280                 std::string code;
00281 
00282                 lineNumber = this->getCurrentSourceCodeLineNumber();
00283                 code = " ";
00284                 code += _SourceCode->getSourceBuffer();
00285                 code +="\n";
00286                 size = code.size();
00287                 buf = code.c_str();
00288 
00289                 // first should be lowest than last.
00290                 if (first > last) last = first;
00291 
00292                 // Seek the good line
00293                 i = 0; // Line start
00294                 j = 0; // Line end
00295                 k = 0; // Line number
00296                 lineTxt = new char[1024];
00297 
00298                 // Seek the first line
00299                 while (k != first && j < size)
00300                 {
00301                         j++;
00302                         i = j;
00303                         while (buf[j] != '\n')
00304                         {
00305                                 j++;
00306                         }
00307                         k++;
00308                 }
00309 
00310                 // Print until the last line
00311                 while (k != last+1 && j < size)
00312                 {
00313                         strncpy (lineTxt, buf+i,j-i);
00314                         lineTxt[j-i] = 0;
00315 
00316                         // Print debug informations
00317                         if ( k == lineNumber)
00318                         {
00319                                 InputOutput->Echo("%d ->\t %s\n", k, lineTxt);
00320                         }
00321                         else
00322                         {
00323                                 InputOutput->Echo("%d   \t %s\n", k, lineTxt);
00324                         }
00325 
00326                         j++;
00327                         i = j;
00328                         while (buf[j] != '\n')
00329                         {
00330                                 j++;
00331                         }
00332                         k++;
00333                 }
00334                 delete[] lineTxt;
00335         }

void NLAISCRIPT::CCodeBrancheRunDebug::printVariable CCodeContext P,
const char *  c
const [private]
 

Definition at line 363 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CCodeContext::ContextDebug, NLAIC::IIO::Echo(), NLAIC::IBasicType::getDebugString(), NLAIAGENT::IObjectIA::getStaticMember(), NLAIAGENT::IObjectIA::getStaticMemberIndex(), NLAIAGENT::CStringType::getStr(), NLAIAGENT::CStringVarName::getString(), NLAIC::IBasicType::getType(), NLAISCRIPT::CCodeContext::Heap, NLAISCRIPT::CContextDebug::HeapDebug, NLAISCRIPT::CCodeContext::Self, and sint32.

Referenced by readCommandLine().

00364         {
00365                 sint32 begin;
00366                 const NLAIAGENT::IObjectIA* base;
00367                 const NLAIAGENT::IVarName* ivn;
00368                 NLAIAGENT::CStringType* st;
00369                 NLAIAGENT::CStringVarName* svn;
00370                 char* buf = new char[1024*8];
00371                 char* bufA = new char[1024*8];
00372                 char* bufX = new char[1024*8];
00373                 int i;
00374                 int j;
00375                 char*  dotPos;
00376                 buf[0] = 0;
00377                 bufA[0] = 0;
00378                 bufX[0] = 0;
00379 
00380                 // Wee look if it's a composed varaible. If so, we just store the first part in buf and the second in bufX.
00381                 strcpy (buf, c);
00382                 dotPos =  strchr(buf,'.');
00383                 if(dotPos != NULL)
00384                 {
00385                         strcpy(bufX, dotPos+1);
00386                         strchr(buf,'.')[0]= '\0';
00387                 }
00388 
00389                 // Seek in the heap from the bottom the buf in order to know if it's a local variable.
00390                 begin = (int)P.ContextDebug.HeapDebug;
00391                 for (i = begin; i>=0; i--)
00392                 {
00393                         base = P.ContextDebug.HeapDebug[i];
00394                         if (base)
00395                         {
00396                                 if (base->getType() == NLAIAGENT::CStringType::IdStringType)
00397                                 {
00398                                         st = (NLAIAGENT::CStringType*) base;
00399                                         ivn = &(st->getStr());
00400                                         if (ivn->getType() == NLAIAGENT::CStringVarName::IdStringVarName)
00401                                         {
00402                                                 svn = (NLAIAGENT::CStringVarName*) ivn;
00403                                                 if (strcmp(svn->getString(), buf) == 0)
00404                                                 {
00405                                                         break;
00406                                                 }
00407                                         }
00408                                 }
00409                         }
00410                 }
00411 
00412                 base = NULL;
00413                 if (i>=0)
00414                 {
00415                         // It's a local variable
00416                         base = P.Heap[i];
00417                 }
00418                 else
00419                 {
00420                         j = P.Self->getStaticMemberIndex(NLAIAGENT::CStringVarName(buf));
00421                         if (j >= 0)
00422                         {
00423                                 // It's a static member.
00424                                 base = P.Self->getStaticMember(j);
00425                         }
00426                 }
00427 
00428                 if (base != NULL)
00429                 {
00430                         // We found a reference.
00431                         if (bufX[0] == 0)
00432                         {
00433                                 // The variable wasn't composit.
00434                                 std::string buf;
00435                                 base->getDebugString(buf);
00436                                 InputOutput->Echo("%s\n",buf.c_str());
00437                         }
00438                         else
00439                         {
00440                                 // The variable was composit.
00441                                 dotPos =  strchr(bufX,'.');
00442                                 while (dotPos != NULL)
00443                                 {
00444                                         strcpy(buf,bufX);
00445                                         strcpy(bufX, dotPos+1);
00446                                         strcpy(bufA,buf);
00447                                         strchr(bufA,'.')[0]= '\0';
00448                                         j = base->getStaticMemberIndex(NLAIAGENT::CStringVarName(bufA));
00449                                         if (j >= 0)
00450                                         {
00451                                                 base =  base->getStaticMember(j);
00452                                         }
00453                                         dotPos =  strchr(bufX,'.');
00454                                 }
00455                                 j = base->getStaticMemberIndex(NLAIAGENT::CStringVarName(bufX));
00456                                 if (j >= 0)
00457                                 {
00458                                         std::string buf;
00459                                         base->getStaticMember(j)->getDebugString(buf);
00460                                         InputOutput->Echo("%s\n",buf.c_str());
00461                                 }
00462                         }
00463                 }
00464 
00465                 delete[] buf;
00466                 delete[] bufA;
00467                 delete[] bufX;
00468         }

bool NLAISCRIPT::CCodeBrancheRunDebug::readCommandLine CCodeContext P,
const char *  commandLine
[private]
 

Return True if the next opCode must be run.

Definition at line 486 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CContextDebug::addBreakPoint(), NLAISCRIPT::CContextDebug::callStackPrint(), NLAISCRIPT::CCodeContext::ContextDebug, NLAIC::IIO::Echo(), NLAISCRIPT::CContextDebug::eraseBreakPoint(), getCurrentSourceCodeLineNumber(), NLAISCRIPT::CContextDebug::getLastCommandLine(), getSourceFileName(), NLAISCRIPT::CContextDebug::printActiveBeaks(), printArgs(), printSourceCodeLine(), printVariable(), NLAISCRIPT::runMode, NLAISCRIPT::CContextDebug::setDebugMode(), sint32, NLAISCRIPT::stepByStepMode, NLAISCRIPT::CContextDebug::stepIndexDown(), NLAISCRIPT::CContextDebug::stepIndexUp(), NLAISCRIPT::stepInMode, NLAISCRIPT::stepOutMode, NLAISCRIPT::stopMode, uint16, and uint32.

Referenced by runOpCode().

00487         {
00488                 char* sourceFileName;
00489                 char* varName;
00490                 uint32 lineNumber;
00491                 sint32 first, last;
00492                 bool ret = false;
00493 
00494                 switch (buf[0])
00495                 {
00496                 case 'p' :
00497                         // p(rint) expression   | Inspect variables / attributes, evaluate expressions, call functions/methods.
00498                         varName = new char[1024];
00499                         sscanf(buf+1, "%s", varName);
00500                         printVariable(P,varName);
00501                         delete[] varName;
00502                         break;
00503                 case 'w' :
00504                         // w(here)                              | Dump the call stack : the context of the current program location.
00505                         P.ContextDebug.callStackPrint(InputOutput);
00506                         break;
00507                 case 'u' :
00508                         // u(p)                                 | Travel up (to newer) frames in the call stack.
00509                         P.ContextDebug.stepIndexUp();
00510                         break;
00511                 case 'd' :
00512                         // d(own)                               | Travel down (to older) frames in the call stack.
00513                         P.ContextDebug.stepIndexDown();
00514                         break;
00515                 case 'l' :
00516                         // l(ist) first?, last? | List the current context's source code file : 11 lines, or around lines numbers.
00517                         first = last = 0;
00518                         sscanf(buf+1, "%d %d",&first, &last);
00519                         if (0 == first) first = this->getCurrentSourceCodeLineNumber() - 6;
00520                         if (0 >  first) first = 0;
00521                         if (0 == last) last = first + 11;
00522                         printSourceCodeLine(first, last);
00523                         break;
00524                 case 'b' :
00525                         // b(reak) line?                | Set more breakpoints on functions or line numbers, or list active breaks.
00526                         sourceFileName = new char[1024];
00527                         sourceFileName[0] = 0;
00528                         lineNumber = 0;
00529                         sscanf(buf+1,"%d %s",&lineNumber,sourceFileName);
00530                         if (0 == lineNumber)
00531                         {
00532                                 P.ContextDebug.printActiveBeaks(InputOutput);
00533                         }
00534                         else
00535                         {
00536                                 if (sourceFileName[0])
00537                                 {
00538                                         P.ContextDebug.addBreakPoint((uint16)lineNumber,sourceFileName);
00539                                 }
00540                                 else
00541                                 {
00542                                         P.ContextDebug.addBreakPoint((uint16)lineNumber,getSourceFileName().c_str());
00543                                 }
00544                         }
00545                         delete[] sourceFileName;
00546                         break;
00547                 case 'e' :
00548                         // e(rase) line?                | Erase a specific breakpoint (or all of them)
00549                         sourceFileName = new char[1024];
00550                         sourceFileName[0] = 0;
00551                         sscanf(buf+1,"%d %s",&lineNumber,sourceFileName);
00552                         if (sourceFileName[0])
00553                         {
00554                                 P.ContextDebug.eraseBreakPoint((uint16)lineNumber,sourceFileName);
00555                         }
00556                         else
00557                         {
00558                                 P.ContextDebug.eraseBreakPoint((uint16)lineNumber,getSourceFileName().c_str());
00559                         }
00560                         delete[] sourceFileName;
00561                         break;
00562                 case 's' :
00563                         // s(tep)                               | Run the next line and stop; stop in called functions.
00564                         P.ContextDebug.setDebugMode(stepInMode);
00565                         ret = true;
00566                         break;
00567                 case 'n' :
00568                         // n(ext)                               | Run the next line and stop, but don't stop in functions it calls.
00569                         P.ContextDebug.setDebugMode(stepByStepMode);
00570                         ret = true;
00571                         break;
00572                 case 'r' :
00573                         // r(eturn)                             | Continue silently until the current function returns.
00574                         P.ContextDebug.setDebugMode(stepOutMode);
00575                         ret = true;
00576                         break;
00577                 case 'c' :
00578                         // c(ontinue)                   | Continue programm execution until an error, breakpoint, or exit.
00579                         P.ContextDebug.setDebugMode(runMode);
00580                         ret = true;
00581                         break;
00582                 case 'a' :
00583                         // a(rgs)                               | Print arguments passed to the current context's function.
00584                         printArgs(P);
00585                         break;
00586                 case 'q' :
00587                         // q(uit)                               | Quit the debugger; also terminates the code being debugged.
00588                         P.ContextDebug.setDebugMode(stopMode);
00589                         ret = true;
00590                         break;
00591                 case 0 :
00592                         // <enter-key>                  | Repeat the last command.
00593                         ret = this->readCommandLine(P, P.ContextDebug.getLastCommandLine());
00594                         break;
00595                 case 'h' :
00596                         // h(elp) command ?             | Get command help; you can forget the rest if you remember 'h'.
00597 
00598                         InputOutput->Echo("p(rint) expr.\t| Inspect variables / attributes.\n");
00599                         InputOutput->Echo("w(here)\t\t| Dump the call stack.\n");
00600                         InputOutput->Echo("u(p)\t\t| Travel up (to newer) frames in the call stack.\n");
00601                         InputOutput->Echo("d(own)\t\t| Travel down (to older) frames in the call stack.\n");
00602                         InputOutput->Echo("l(ist) f?, l?\t| List the current context's source code file.\n");
00603                         InputOutput->Echo("b(reak) line?\t| Set more breakpoints on line numbers, or list active breaks.\n");
00604                         InputOutput->Echo("e(rase) line?\t| Erase a specific breakpoint (or all of them)\n");
00605                         InputOutput->Echo("s(tep)\t\t| Run the next line and stop; stop in called functions.\n");
00606                         InputOutput->Echo("n(ext)\t\t| Run the next line and stop, don't stop in functions it calls.\n");
00607                         InputOutput->Echo("r(eturn)\t| Continue silently until the current function returns.\n");
00608                         InputOutput->Echo("c(ontinue)\t| Continue programm execution until breakpoint, or exit.\n");
00609                         InputOutput->Echo("a(rgs)\t\t| Print arguments passed to the current context's function.\n");
00610                         InputOutput->Echo("q(uit)\t\t| Quit the debugger; also terminates the code being debugged.\n");
00611                         InputOutput->Echo("<enter-key>\t| Repeat the last command.\n");
00612                         InputOutput->Echo("h(elp) command ?| Get command help; you can forget the rest if you remember 'h'.\n");
00613                         break;
00614                 }
00615 
00616                 return ret;
00617         }

virtual void NLAIC::IPointerGestion::release void   )  [inline, virtual, inherited]
 

Release allow to release the pointer. The last release when the _Ref is nul delete the object.

Definition at line 86 of file abstract_interface.h.

References NLAIC::IPointerGestion::decRef().

Referenced by NLAIAGENT::CSeqFsmScript::activate(), NLAISCRIPT::CAgentClass::addBrancheCode(), NLAISCRIPT::CConstraintDebug::addIndex(), NLAISCRIPT::CCompilateur::affectation(), NLAISCRIPT::CCompilateur::affectationMember(), NLAISCRIPT::COperatorClass::backward(), NLAILOGIC::CFirstOrderOperator::backward(), NLAILOGIC::CFirstOrderAssert::backward(), NLAISCRIPT::CCompilateur::buildObject(), NLAILINK::buildScript(), NLAISCRIPT::CCompilateur::callFunction(), NLAIC::CIdentType::CIdentType(), NLAISCRIPT::CCompilateur::clean(), NLAISCRIPT::CParam::clear(), NLAIAGENT::CVectorGroupType::clear(), NLAIAGENT::CGroupType::clear(), NLAIAGENT::CVolatilMemmory::CVolatilMemmory(), NLAISCRIPT::CFactorType::del(), NLAIAGENT::IAgentComposite::deleteListe(), NLAIPYSERVER::endPythonInterface(), NLAIAGENT::CVectorGroupType::erase(), NLAIAGENT::CGroupType::erase(), NLAIAGENT::CVectorGroupType::eraseAll(), NLAIAGENT::CGroupType::eraseAll(), NLAISCRIPT::CCompilateur::errorMethodConstraint(), NLAISCRIPT::CCompilateur::errorTypeConstraint(), NLAISCRIPT::CCompilateur::findMethode(), NLAISCRIPT::COperatorClass::forward(), NLAILOGIC::CFirstOrderOperator::forward(), NLAIAGENT::CComponentHandle::getComponent(), NLAIAGENT::COperatorScript::getDebugString(), NLAIAGENT::CAgentScript::getDebugString(), NLAILOGIC::IBaseOperator::IBaseOperator(), NLAISCRIPT::CCompilateur::ifInterrogation(), NLAISCRIPT::CCompilateur::ifInterrogationEnd(), NLAILOGIC::CFactPattern::init(), NLAILOGIC::CRule::init(), NLAIFUZZY::CTrapezeFuzzySet::init(), NLAIFUZZY::CLeftFuzzySet::init(), NLAIFUZZY::CTriangleFuzzySet::init(), NLAIFUZZY::CRightFuzzySet::init(), NLAIFUZZY::CFuzzyInterval::init(), NLAIFUZZY::CFuzzyRule::init(), NLAIFUZZY::CSimpleFuzzyCond::init(), NLAISCRIPT::CCompilateur::interrogationEnd(), NLAISCRIPT::COperatorClass::isValidFonc(), NLAIAGENT::IAgent::Kill(), NLAILOGIC::CVar::load(), NLAILOGIC::CValueSet::load(), NLAISCRIPT::CLdbOpCode::load(), NLAISCRIPT::CLibCallMethodi::load(), NLAISCRIPT::CLibCallInheritedMethod::load(), NLAISCRIPT::CLibCallMethod::load(), NLAISCRIPT::CLdbNewOpCode::load(), NLAISCRIPT::CAddParamNameDebug::load(), NLAISCRIPT::CFindRunMsg::load(), NLAIAGENT::IListBasicManager::load(), NLAIAGENT::CVectorGroupType::load(), NLAIAGENT::CGroupType::load(), NLAIAGENT::CAgentScript::load(), NLAIAGENT::CStringType::load(), NLAIAGENT::CLocalAgentMail::load(), NLAISCRIPT::CMethodContextDebug::loadContext(), NLAISCRIPT::CCompilateur::onEndClass(), NLAIAGENT::CLocalMailBox::onKill(), NLAIAGENT::IAgent::onKill(), NLAIAGENT::CLocalAgentMail::onKill(), NLAIAGENT::CVectorGroupType::operator-(), NLAIAGENT::CGroupType::operator-(), NLAIAGENT::CKeyObject::operator=(), NLAISCRIPT::CFunctionTag::operator=(), NLAIAGENT::CIdMethod::operator=(), NLAISCRIPT::CCompilateur::PrivateError(), NLAISCRIPT::CCompilateur::processingVar(), NLAIAGENT::CAgentScript::processMessages(), NLAIAGENT::IRefrence::refLoadStream(), NLAISCRIPT::CCompilateur::registerMethod(), NLAIAGENT::IAgentComposite::removeChild(), NLAILOGIC::CFirstOrderAssert::removeFact(), NLAISCRIPT::CConstraintStackComp::run(), NLAISCRIPT::CConstraintFindRun::run(), NLAISCRIPT::CConstraintMethode::run(), NLAIAGENT::IBasicAgent::run(), NLAIAGENT::CAgentScript::runInitComponent(), NLAIAGENT::CVolatilMemmory::runMessage(), NLAIAGENT::CAgentOperation::runMethodBase(), NLAISCRIPT::CCompilateur::runMethodConstraint(), NLAILOGIC::CInternalGoal::runMethodeMember(), NLAILOGIC::CGoal::runMethodeMember(), NLAILOGIC::CFact::runMethodeMember(), NLAIAGENT::IObjectIA::runMethodeMember(), NLAISCRIPT::CLdbStackMemberiOpCode::runOpCode(), NLAISCRIPT::CCallStackMethodi::runOpCode(), NLAISCRIPT::CLibHeapMemberMethod::runOpCode(), NLAISCRIPT::CAffOpCode::runOpCode(), NLAISCRIPT::CJFalseOpCode::runOpCode(), NLAISCRIPT::CAffOpCodeDebug::runOpCode(), NLAISCRIPT::CDiffOpCode::runOpCode(), NLAISCRIPT::CInfEqOpCode::runOpCode(), NLAISCRIPT::CSupEqOpCode::runOpCode(), NLAISCRIPT::CEqOpCode::runOpCode(), NLAISCRIPT::CInfOpCode::runOpCode(), NLAISCRIPT::CSupOpCode::runOpCode(), NLAISCRIPT::CMulOpCode::runOpCode(), NLAISCRIPT::CDivOpCode::runOpCode(), NLAISCRIPT::CSubOpCode::runOpCode(), NLAISCRIPT::CAddOpCode::runOpCode(), NLAISCRIPT::CNegOpCode::runOpCode(), NLAIAGENT::CAgentScript::runTellParentNotify(), NLAISCRIPT::CCompilateur::runTypeConstraint(), NLAIAGENT::CHashTimerManager::sendMessage(), NLAIAGENT::CVolatilMemmory::sendMessage(), NLAIAGENT::CLocalMailBox::sendMessage(), NLAIAGENT::IListManager::sendMessage(), NLAIAGENT::CAgentTimerHandle::sendMessage(), NLAIAGENT::CAgentScript::sendMessage(), NLAIAGENT::CAgentScript::sendMethod(), NLAISCRIPT::COperandSimple::serial(), NLAISCRIPT::CObjectUnknown::setBaseType(), NLAISCRIPT::CCompilateur::setChaineVar(), NLAISCRIPT::CClassInterpretFactory::setClass(), NLAIC::CSelfClassFactory::setClass(), NLAISCRIPT::IClassInterpret::setClassName(), NLAISCRIPT::CObjectUnknown::setClassType(), NLAIAGENT::IMessageBase::setContinuation(), NLAILOGIC::IBaseOperator::setGoal(), NLAISCRIPT::COperatorClass::setGoal(), NLAISCRIPT::CCompilateur::setImediateVar(), NLAISCRIPT::CCompilateur::setImediateVarNill(), NLAISCRIPT::CParam::setInfo(), NLAISCRIPT::CAgentClass::setInheritanceName(), NLAISCRIPT::CCompilateur::setListVar(), NLAIAGENT::IMessageBase::setMessageGroup(), NLAISCRIPT::CCompilateur::setMethodVar(), NLAILOGIC::IBaseVar::setName(), NLAIAGENT::CAgentOperation::setName(), NLAISCRIPT::CMethodeName::setName(), NLAIAGENT::IRefrence::setNumRef(), NLAISCRIPT::CConstraintFindRun::setOpCode(), NLAISCRIPT::CConstraintMethode::setOpCode(), NLAISCRIPT::CCompilateur::setPerformative(), NLAILOGIC::CInternalGoal::setProperty(), NLAIAGENT::IMessageBase::setReceiver(), NLAIAGENT::IMessageBase::setSender(), NLAILOGIC::CValueSet::setSize(), NLAISCRIPT::CCompilateur::setStackVar(), NLAIAGENT::CMessageScript::setStaticMember(), NLAIAGENT::CAgentScript::setStaticMember(), NLAISCRIPT::IClassInterpret::setType(), NLAISCRIPT::CFunctionTag::setTypeObject(), NLAISCRIPT::CMethodeName::setTypeOfMethode(), NLAILOGIC::CVar::setValue(), NLAIAGENT::CAgentOperation::setValue(), NLAIAGENT::IAgentInput::setValue(), NLAILOGIC::CValueSet::unify(), NLAISCRIPT::COperatorClass::unifyBackward(), NLAILOGIC::CFirstOrderOperator::unifyBackward(), NLAISCRIPT::COperatorClass::unifyForward(), NLAILOGIC::CFirstOrderOperator::unifyForward(), NLAILOGIC::CRule::unifyLiaisonBack(), NLAISCRIPT::CAddParamNameDebug::~CAddParamNameDebug(), NLAISCRIPT::CAgentClass::~CAgentClass(), NLAIAGENT::CAgentOperation::~CAgentOperation(), NLAIAGENT::CAgentScript::~CAgentScript(), NLAIAGENT::CAgentTimerHandle::~CAgentTimerHandle(), NLAIAGENT::CAgentWatchTimer::~CAgentWatchTimer(), NLAISCRIPT::CClassInterpretFactory::~CClassInterpretFactory(), ~CCodeBrancheRunDebug(), NLAISCRIPT::CCompilateur::~CCompilateur(), NLAIAGENT::CComponentHandle::~CComponentHandle(), NLAISCRIPT::CConstraintChkMethodeType::~CConstraintChkMethodeType(), NLAISCRIPT::CConstraintMethode::~CConstraintMethode(), NLAISCRIPT::CConstraintStackComp::~CConstraintStackComp(), NLAILOGIC::CFact::~CFact(), NLAISCRIPT::CFindRunMsg::~CFindRunMsg(), NLAILOGIC::CFirstOrderAssert::~CFirstOrderAssert(), NLAISCRIPT::CFunctionTag::~CFunctionTag(), NLAIC::CIdentType::~CIdentType(), NLAIAGENT::CIdMethod::~CIdMethod(), NLAILOGIC::CInternalGoal::~CInternalGoal(), NLAIAGENT::CKeyObject::~CKeyObject(), NLAISCRIPT::CLdbNewOpCode::~CLdbNewOpCode(), NLAISCRIPT::CLdbOpCode::~CLdbOpCode(), NLAISCRIPT::CLibCallInheritedMethod::~CLibCallInheritedMethod(), NLAISCRIPT::CLibCallMethod::~CLibCallMethod(), NLAISCRIPT::CLibCallMethodi::~CLibCallMethodi(), NLAIAGENT::CLocalMailBox::~CLocalMailBox(), NLAIAGENT::CMainAgentScript::~CMainAgentScript(), NLAISCRIPT::CLibTest::CMethodCall::~CMethodCall(), NLAIAGENT::CAgentScript::CMethodCall::~CMethodCall(), NLAISCRIPT::CMethodeName::~CMethodeName(), NLAISCRIPT::CAgentClass::CMethodType::~CMethodType(), NLAISCRIPT::CObjectUnknown::~CObjectUnknown(), NLAISCRIPT::COperandSimple::~COperandSimple(), NLAISCRIPT::COperandUnknown::~COperandUnknown(), NLAISCRIPT::COperationType::~COperationType(), NLAISCRIPT::COperationTypeGD::~COperationTypeGD(), NLAISCRIPT::COperatorClass::~COperatorClass(), NLAIAGENT::CPairType::~CPairType(), NLAIC::CSelfClassFactory::~CSelfClassFactory(), NLAIAGENT::CStringType::~CStringType(), NLAILOGIC::CValueSet::~CValueSet(), NLAILOGIC::CVar::~CVar(), NLAIAGENT::CVolatilMemmory::~CVolatilMemmory(), NLAIAGENT::IAgentInput::~IAgentInput(), NLAILOGIC::IBaseAssert::~IBaseAssert(), NLAILOGIC::IBaseOperator::~IBaseOperator(), NLAILOGIC::IBaseVar::~IBaseVar(), NLAIAGENT::IBasicAgent::~IBasicAgent(), NLAISCRIPT::IBlock::~IBlock(), NLAISCRIPT::IClassInterpret::~IClassInterpret(), NLAILOGIC::IGoal::~IGoal(), NLAIAGENT::IListBasicManager::~IListBasicManager(), NLAIAGENT::IMessageBase::~IMessageBase(), NLAIAGENT::IRefrence::~IRefrence(), and NLAICHARACTER::IZone::~IZone().

00087                 {
00088                         if(decRef() == 0) 
00089                                         delete this;
00090                 }

const NLAIAGENT::IObjectIA::CProcessResult & NLAISCRIPT::CCodeBrancheRun::run  )  [virtual, inherited]
 

Some where Run method define the process of the agen.

Implements NLAIAGENT::IObjectIA.

Definition at line 95 of file codage.cpp.

References NLAIAGENT::IObjectIA::CProcessResult::Result, and NLAIAGENT::IObjectIA::CProcessResult::ResultState.

Referenced by run(), and NLAISCRIPT::CCodeBrancheRun::run().

00096         {
00097                 _RunState.ResultState = NLAIAGENT::processBuzzy;
00098                 _RunState.Result = NULL;
00099                 CStackPointer   stack,heap;
00100                 CCodeContext p(stack,heap,this,NULL,InputOutput);
00101                 
00102                 CVarPStack::_LocalTableRef = &heap[0];
00103                 stack --;
00104 
00105                 run(p);
00106 
00107                 stack -= (int)stack; 
00108                 heap -= (int)heap; 
00109                 return _RunState;
00110         }       

const NLAIAGENT::IObjectIA::CProcessResult & NLAISCRIPT::CCodeBrancheRunDebug::run CCodeContext  )  [virtual]
 

Run with a given context.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 143 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CContextDebug::Active, NLAISCRIPT::CContextDebug::callStackPush(), NLAISCRIPT::CCodeContext::ContextDebug, NLAIAGENT::IObjectIA::CProcessResult::Result, NLAIAGENT::IObjectIA::CProcessResult::ResultState, and runOpCode().

00144         {
00145                 NLAIAGENT::TProcessStatement i = NLAIAGENT::processIdle;
00146                 
00147                 p.ContextDebug.Active = true; // We are in Debug mode.
00148                 p.ContextDebug.callStackPush(this);
00149 
00150                 _RunState.Result = NULL;
00151                 while(i != NLAIAGENT::processEnd)
00152                 {       
00153                         i = runOpCode(p);
00154                 }
00155                 
00156                 _RunState.ResultState = NLAIAGENT::processIdle;
00157                 return _RunState;
00158         }

const NLAIAGENT::IObjectIA::CProcessResult & NLAISCRIPT::CCodeBrancheRunDebug::run NLAIAGENT::IObjectIA self  )  [virtual]
 

The true run of this class param self A reference to the IObjectIA which call this ICodeBranche

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 129 of file code_branche_run_debug.cpp.

References NLAISCRIPT::CCodeBrancheRun::run(), and sint32.

00130         {               
00131                 CStackPointer   stack,heap;
00132                 CCodeContext p(stack,heap,this,&self,InputOutput);
00133                 CVarPStack::_LocalTableRef = &heap[0];
00134                 stack --;
00135                 
00136                 run(p);
00137 
00138                 stack -= (sint32)stack; 
00139                 heap -= (sint32)heap; 
00140                 return _RunState;
00141         }       

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::runMethodeMember sint32  index,
IObjectIA
[virtual, inherited]
 

The methode runMethodeMember(sint32 index,IObjectIA *param) allow us to run a own member method.

index: is the method id return by the isMember(const IVarName *,const IVarName *,const IObjectIA &) const method. param: is the parametre for the method.

Reimplemented in NLAIAGENT::CActor, NLAIAGENT::IBasicAgent, NLAIAGENT::IVector, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombre< tNombre >, NLAIAGENT::CPairType, NLAIAGENT::IBaseGroupType, NLAIAGENT::CVectorGroupType, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CLibTimerManager, NLAIAGENT::CAgentWatchTimer, NLAIAGENT::CAgentTimerHandle, NLAILOGIC::CGoalStack, NLAIAGENT::IListBasicManager, NLAIAGENT::CMessageScript, NLAIAGENT::IMessageBase, NLAIAGENT::CSuccessMsg, NLAIAGENT::CFailureMsg, NLAIAGENT::CFactMsg, NLAIAGENT::CGetValueMsg, NLAIAGENT::CGoalMsg, NLAIAGENT::CCancelGoalMsg, NLAIAGENT::CSetValueMsg, NLAIFUZZY::IFuzzySet, NLAIFUZZY::CFuzzyVar, NLAILOGIC::CFact, NLAILOGIC::CGoal, NLAILOGIC::CInternalGoal, NLAILOGIC::CGoalStack, NLAILOGIC::IBaseVar, NLAISCRIPT::CCallPrint, NLAISCRIPT::CLibTest, NLAIAGENT::INombre< double >, NLAIAGENT::INombre< uint16 >, NLAIAGENT::INombre< float >, NLAIAGENT::INombre< sint8 >, NLAIAGENT::INombre< uint64 >, NLAIAGENT::INombre< sint16 >, NLAIAGENT::INombre< uint8 >, NLAIAGENT::INombre< uint32 >, and NLAIAGENT::INombre< sint32 >.

Definition at line 266 of file baseai.cpp.

References NLAIAGENT::IDigital< sint32 >::getNumber(), NLAIAGENT::IObjectIA::getStaticMember(), NLAIAGENT::CStringType::getStr(), param, NLAIAGENT::IListBasicManager::pop(), r, NLAIC::IPointerGestion::release(), NLAIAGENT::IObjectIA::run(), NLAIAGENT::IObjectIA::sendMessage(), NLAIAGENT::IMessageBase::setPerformatif(), NLAIAGENT::IMessageBase::setReceiver(), sint, and sint32.

00267         {
00268                 
00269                 switch(id)
00270                 {
00271                 case 0:
00272                         {
00273                                 IMessageBase *msg;
00274 
00275                                 IPerformative *p;
00276                                 msg = (IMessageBase *)((IBaseGroupType *)a)->pop();
00277                                 //this->incRef();
00278                                 msg->setReceiver(this);
00279                                 p = (IPerformative *)((IBaseGroupType *)a)->pop();
00280                                 msg->setPerformatif((IMessageBase::TPerformatif)(sint)p->getNumber());
00281                                 p->release();
00282                                 if(((IBaseGroupType *)a)->size())
00283                                 {                                       
00284                                         CStringType *name = (CStringType *)((IBaseGroupType *)a)->pop();
00285                                         IObjectIA::CProcessResult r = sendMessage(name->getStr(),msg);
00286                                         name->release();
00287                                         return r;
00288                                         
00289                                 }                               
00290                                 return sendMessage(msg);
00291                         }                       
00292                         break;
00293                 case 1:                 
00294                         break;
00295                 case 2:
00296                         return run();
00297                         break;
00298 
00299                 case 3:
00300                         {
00301                                 CProcessResult r;
00302                                 NLAIAGENT::IBaseGroupType *param = (NLAIAGENT::IBaseGroupType *)a;
00303                                 r.Result =      (IObjectIA *)getStaticMember((sint)((NLAIAGENT::INombreDefine *)param->get())->getNumber());
00304                                 r.Result->incRef();
00305                                 return r;
00306                         }
00307                 }
00308                 return CProcessResult();
00309         }

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::runMethodeMember sint32  ,
sint32  ,
IObjectIA
[virtual, inherited]
 

The methode runMethodeMember(sint32 heritance, sint32 index, IObjectIA *param) allow us to run a member method.

heritance: is the id returned by the methodisClassInheritedFrom(const IVarName &). index: is the method id return by the isMember(const IVarName *,const IVarName *,const IObjectIA &) const method. param: is the parametre for the method.

Reimplemented in NLAIAGENT::IBasicAgent, NLAIAGENT::IVector, NLAIAGENT::CLocalAgentMail, NLAIAGENT::INombre< tNombre >, NLAIAGENT::CPairType, NLAIAGENT::IBaseGroupType, NLAIAGENT::CVectorGroupType, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CAgentTimerHandle, NLAILOGIC::CGoalStack, NLAIAGENT::IListBasicManager, NLAIAGENT::CMessageScript, NLAIAGENT::IMessageBase, NLAIAGENT::CSuccessMsg, NLAIAGENT::CFailureMsg, NLAIAGENT::CFactMsg, NLAIAGENT::CGetValueMsg, NLAIAGENT::CGoalMsg, NLAIAGENT::CCancelGoalMsg, NLAIAGENT::CSetValueMsg, NLAIFUZZY::CFuzzyVar, NLAILOGIC::CFact, NLAILOGIC::CGoal, NLAILOGIC::CInternalGoal, NLAILOGIC::CGoalStack, NLAISCRIPT::CCallPrint, NLAISCRIPT::CLibTest, NLAIAGENT::INombre< double >, NLAIAGENT::INombre< uint16 >, NLAIAGENT::INombre< float >, NLAIAGENT::INombre< sint8 >, NLAIAGENT::INombre< uint64 >, NLAIAGENT::INombre< sint16 >, NLAIAGENT::INombre< uint8 >, NLAIAGENT::INombre< uint32 >, and NLAIAGENT::INombre< sint32 >.

Definition at line 257 of file baseai.cpp.

References sint32.

Referenced by NLAISCRIPT::CLibHeapMemberMethod::runOpCode(), NLAISCRIPT::CLibStackNewMemberMethod::runOpCode(), NLAISCRIPT::CLibStackMemberMethod::runOpCode(), NLAISCRIPT::CLibCallMethodi::runOpCode(), NLAISCRIPT::CLibCallInheritedMethod::runOpCode(), NLAISCRIPT::CLibCallMethod::runOpCode(), and NLAISCRIPT::CLibMemberMethodi::runOpCode().

00258         {
00259                 /*char text[2048*8];
00260                 sprintf(text,"method  runMethodeMember(sint32 h, sint32 id,const IObjectIA &) not implemented for the '%s' interface",(const char *)getType());
00261                 throw NLAIE::CExceptionNotImplemented(text);
00262                 return CProcessResult();*/
00263                 return IObjectIA::runMethodeMember(id,a);
00264         }

NLAIAGENT::TProcessStatement NLAISCRIPT::CCodeBrancheRunDebug::runOpCode CCodeContext context  )  [virtual]
 

Run the next IOpCode in the array.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 162 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, NLAISCRIPT::CContextDebug::Active, NLAISCRIPT::CCodeContext::ContextDebug, NLAIC::IIO::Echo(), fixContextDebugMode(), NLAISCRIPT::CContextDebug::getCallStackTopIndex(), NLAISCRIPT::CContextDebug::getDebugMode(), NLAISCRIPT::IOpCode::getDebugResult(), NLAISCRIPT::CContextDebug::getStepIndex(), NLAIC::IIO::InPut(), NLAISCRIPT::CCodeBrancheRun::nextCode(), printCurrentSourceCodeLine(), readCommandLine(), NLAISCRIPT::IOpCode::runOpCode(), NLAISCRIPT::CContextDebug::setLastCommandLine(), NLAISCRIPT::stepByStepMode, and NLAISCRIPT::stopMode.

Referenced by run().

00163         {
00164                 std::string buf;
00165                 p.ContextDebug.Active = true; // We are in Debug mode.
00166 
00167                 IOpCode &op = nextCode();
00168 
00169 #ifdef NL_DEBUG
00170                 if(NL_AI_DEBUG_SERVER)
00171                 {
00172                         std::string chaine;
00173                         op.getDebugResult(chaine,p);
00174 #ifdef NL_OS_WINDOWS
00175                         OutputDebugString(chaine.c_str());
00176                         OutputDebugString("\n");
00177 #endif
00178                 }
00179 #endif
00180                 if (_LineInSourceCodeArray[_Ip-1] != 0)
00181                 {
00182                         fixContextDebugMode(p);
00183 
00184                         // We print info debug only if we are running the stepByStep codeBrancheRun.
00185                         if (   p.ContextDebug.getDebugMode() == stepByStepMode 
00186                                 && p.ContextDebug.getCallStackTopIndex() == p.ContextDebug.getStepIndex())
00187                         {
00188                                 printCurrentSourceCodeLine();
00189 
00190                                 bool executOpcode = false;
00191 
00192                                 while (!executOpcode)
00193                                 {
00194                                         // Wait command
00195                                         InputOutput->Echo("(db) ");
00196                                         buf = InputOutput->InPut();
00197                                         executOpcode = readCommandLine(p, buf.c_str());
00198                                         if (0 != buf.c_str()[0]) p.ContextDebug.setLastCommandLine(buf.c_str());
00199                                 }
00200                         }
00201                 }
00202 
00203                 if (p.ContextDebug.getDebugMode() == stopMode)
00204                 {
00205                         return NLAIAGENT::processEnd;
00206                 }
00207                 else
00208                 {
00209                         return op.runOpCode(p);
00210                 }
00211         }

const IObjectIA::CProcessResult & NLAIAGENT::IObjectIA::runStep  )  [virtual, inherited]
 

Some where Run method define the process of the agen.

Reimplemented in NLAIAGENT::IAgent, and NLAIAGENT::CAgentScript.

Definition at line 163 of file baseai.cpp.

References NLAIC::IBasicType::getType(), and NLAIC::stringGetBuild().

Referenced by NLAIAGENT::IAgent::runChildrenStepByStep().

00164         {
00165                 std::string text;
00166                 text = NLAIC::stringGetBuild("const CProcessResult &IObjectIA::runStep() note implementaited for the '%s' interface",(const char *)getType());
00167                 throw NLAIE::CExceptionNotImplemented(text.c_str());
00168                 return IObjectIA::ProcessNotComplit;
00169         }

void NLAISCRIPT::CCodeBrancheRunDebug::save NLMISC::IStream  )  [virtual]
 

Save the class in a stream.

Reimplemented from NLAISCRIPT::CCodeBrancheRun.

Definition at line 101 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, _SourceCode, NLAISCRIPT::IScriptDebugSource::save(), NLMISC::IStream::serial(), and sint32.

00102         {
00103                 CCodeBrancheRun::save(os);
00104 
00105                 for(int i = 0 ;i < _Count; i ++)
00106                 {               
00107                         sint32 n = _LineInSourceCodeArray[i];
00108                         os.serial( n );
00109                 }
00110                 _SourceCode->save(os);
00111                 
00112         }

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::sendMessage const IVarName ,
IObjectIA
[virtual, inherited]
 

This method allow to send a message to an compoment given by an string IVarName.

Reimplemented in NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, and NLAIAGENT::IMessageBase.

Definition at line 334 of file baseai.cpp.

References NLAIAGENT::IVarName::getString(), NLAIC::IBasicType::getType(), and NLAIC::stringGetBuild().

00335         {
00336                 std::string text;
00337                 text = NLAIC::stringGetBuild("method 'sendMessage(%s,const IObjectIA &)' '%s' interface",name.getString(), (const char *)getType());
00338                 throw NLAIE::CExceptionNotImplemented(text.c_str());
00339                 return CProcessResult();
00340         }

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::sendMessage IObjectIA  )  [virtual, inherited]
 

The method sendMessage(const IObjectIA &msg) allow us to achive a message defined in msg.

Reimplemented in NLAIAGENT::CActorScript, NLAIAGENT::CLocalAgentMail, NLAIAGENT::CProxyAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CAgentTimerHandle, NLAIAGENT::IConnectIA, NLAIAGENT::IListManager, NLAIAGENT::CMainAgentScript, and NLAIAGENT::IMessageBase.

Definition at line 342 of file baseai.cpp.

References NLAIC::IBasicType::getType(), and NLAIC::stringGetBuild().

Referenced by NLAIAGENT::IObjectIA::runMethodeMember(), NLAIAGENT::CAgentScript::sendBroadCast(), NLAIAGENT::IMessageBase::sendMessage(), NLAIAGENT::IListManager::sendMessage(), and NLAIAGENT::CAgentScript::sendMessage().

00343         {
00344                 std::string text;
00345                 text = NLAIC::stringGetBuild("method 'sendMessage(const IObjectIA &)' '%s' interface", (const char *)getType());
00346                 throw NLAIE::CExceptionNotImplemented(text.c_str());
00347                 return CProcessResult();
00348         }

virtual void NLAIC::IBasicInterface::serial NLMISC::IStream f  )  throw (NLMISC::EStream) [inline, virtual, inherited]
 

Reimplemented from NLAIC::IPointerGestion.

Definition at line 328 of file abstract_interface.h.

References NLAIC::IBasicInterface::load(), and NLAIC::IBasicInterface::save().

00329                 {
00330                         if ( f.isReading() )
00331                                 load( f );
00332                         else
00333                                 save( f );
00334                 }

void NLAISCRIPT::CCodeBrancheRunDebug::setLineCode int  ligne,
int  index
 

Store the linde in the source code associate with the OpCode.

Definition at line 252 of file code_branche_run_debug.cpp.

References _LineInSourceCodeArray, and index.

Referenced by NLAISCRIPT::CConstraintDebug::addIndex().

00253         {
00254                 _LineInSourceCodeArray[index] = ligne;
00255         }

bool NLAIAGENT::IObjectIA::setStaticMember sint32  ,
IObjectIA
[virtual, inherited]
 

to cahnge a given components given by a string.

Reimplemented in NLAIAGENT::CLocalAgentMail, NLAIAGENT::CAgentScript, NLAIAGENT::CMessageScript, and NLAISCRIPT::CAgentClass.

Definition at line 198 of file baseai.cpp.

References NLAIC::IBasicType::getType(), sint32, and NLAIC::stringGetBuild().

00199         {
00200                 std::string text;
00201                 text = NLAIC::stringGetBuild("Function void IObjectIA::setStaticMember(sint32,IObjectIA *) note implementaited for the '%s' interface",(const char *)getType());
00202                 throw NLAIE::CExceptionNotImplemented(text.c_str());
00203                 return false;
00204         }

bool NLAIAGENT::IObjectIA::setStaticMember const IVarName compName,
IObjectIA change
[inline, inherited]
 

to cahnge a given components given by an index.

Definition at line 268 of file baseai.h.

References NLAIAGENT::IObjectIA::getStaticMemberIndex().

Referenced by NLAISCRIPT::CAffHeapMemberiOpCode::runOpCode(), NLAISCRIPT::CAffMemberiOpCode::runOpCode(), and NLAIAGENT::CLocalAgentMail::setStaticMember().

00269                 {
00270                         return setStaticMember(getStaticMemberIndex(compName),change);
00271                 }


Field Documentation

int NLAISCRIPT::CCodeBrancheRun::_Count [protected, inherited]
 

The count of the op code table.

Definition at line 515 of file codage.h.

int NLAISCRIPT::CCodeBrancheRun::_Ip [protected, inherited]
 

The code pointer index of the curent op code in run.

Definition at line 513 of file codage.h.

Referenced by NLAISCRIPT::CCodeBrancheRun::getDebugResult(), and NLAISCRIPT::CCodeBrancheRun::run().

int* NLAISCRIPT::CCodeBrancheRunDebug::_LineInSourceCodeArray [private]
 

Definition at line 34 of file code_branche_run_debug.h.

Referenced by CCodeBrancheRunDebug(), fixContextDebugMode(), getCurrentSourceCodeLineNumber(), initCBRD(), load(), runOpCode(), save(), setLineCode(), and ~CCodeBrancheRunDebug().

NLAIAGENT::IObjectIA::CProcessResult NLAISCRIPT::CCodeBrancheRun::_RunState [protected, inherited]
 

The state of tje last run method called.

Definition at line 517 of file codage.h.

IScriptDebugSource* NLAISCRIPT::CCodeBrancheRunDebug::_SourceCode [private]
 

Definition at line 35 of file code_branche_run_debug.h.

Referenced by CCodeBrancheRunDebug(), getSourceFileName(), load(), printSourceCodeLine(), save(), and ~CCodeBrancheRunDebug().

IOpCode** NLAISCRIPT::CCodeBrancheRun::_TableCode [protected, inherited]
 

Table for storage the op code.

Definition at line 511 of file codage.h.

Referenced by NLAISCRIPT::CCodeBrancheRun::CCodeBrancheRun(), NLAISCRIPT::CCodeBrancheRun::getDebugResult(), NLAISCRIPT::CCodeBrancheRun::load(), and NLAISCRIPT::CCodeBrancheRun::save().

const NLAIC::CIdentType NLAISCRIPT::CCodeBrancheRun::IdCodeBrancheRun [static, inherited]
 

Referenced by NLAISCRIPT::CCodeBrancheRun::getType().

const NLAIC::CIdentType NLAISCRIPT::CCodeBrancheRunDebug::IdCodeBrancheRunDebug [static]
 

Referenced by getType().

NLAIC::IIO * NLAISCRIPT::CCodeBrancheRun::InputOutput = NULL [static, inherited]
 

Definition at line 40 of file codage.cpp.

TProcessStatement NLAIAGENT::IObjectIA::ProcessBuzzy = processBuzzy [static, inherited]
 

Define the an buzzy state for an agent all time in this state.

Definition at line 147 of file baseai.cpp.

TProcessStatement NLAIAGENT::IObjectIA::ProcessEnd = processEnd [static, inherited]
 

Define the an end state for an agent all time in this state.

Definition at line 148 of file baseai.cpp.

TProcessStatement NLAIAGENT::IObjectIA::ProcessError = processError [static, inherited]
 

Define the an error state for an agent all time in this state.

Definition at line 149 of file baseai.cpp.

TProcessStatement NLAIAGENT::IObjectIA::ProcessIdle = processIdle [static, inherited]
 

Define the an idle state for an agent all time in this state.

Definition at line 145 of file baseai.cpp.

TProcessStatement NLAIAGENT::IObjectIA::ProcessLocked = processLocked [static, inherited]
 

Define the an locked state for an agent all time in this state.

Definition at line 146 of file baseai.cpp.

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::ProcessNotComplit = IObjectIA::CProcessResult(processNotComplete) [static, inherited]
 

Definition at line 144 of file baseai.cpp.

IObjectIA::CProcessResult NLAIAGENT::IObjectIA::ProcessRun = IObjectIA::CProcessResult() [static, inherited]
 

Definition at line 143 of file baseai.cpp.


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 11:23:54 2004 for NeL by doxygen 1.3.6