Well, to define a timer I used instructions:
http://www.cubinlab.ee.unimelb.edu.au/~jrid/Docs/Manuel-NS2/node105.html
like this:
        class MyTimer : public TimerHandler {
        public:
          MyTimer(MyAgentClass *a) : TimerHandler() { a_ = a; }
          virtual double expire(Event *e);
        protected:
          MyAgentClass *a_;
        };

Then define expire:
        MyTimer::expire(Event *e)
        {
          // do the work
          // return TIMER_HANDLED;    // =\> do not reschedule timer
          // return delay;            // =\> reschedule timer after delay
        }

However, I want to change some variables of my Agent from inside my timer,
and whenever I change them, this changes do not take effect outside the
timer. For example, suppose I have a boolean variable called
beTentativeHead in my agent, and before entering the timer::expire, it was
false.

If I try to set it true from inside timer::expire with :
a_->beTentativeHead=true, it will remain true inside timer::expire, but if
I try to access this variable inside my Agent, its value remains as the
old false.


Any idea of how should I proceed to solve this? I tried using a double
pointer to my agent, even though I thought it was not necessary, and it
did not work very well, anyway.


Thanks in advance,
-- 
Fernando Henrique Gielow - UFPR - NR2
Computer Science graduation student.

Reply via email to