I’m new to ns-2 and C++ and need help concerning OTCL-Linkage.
I’ve created a new class ContextAgent which has AODV as friendclass. 
ContextAgent has two public variables that are bound to OTCL using the 
bind()-function (as it is used in the Example ex-linkage.cc from the tutorial 
“ns by example”). That works, as far as I could see.

My problem is, how can I call on the variables from the AODV-function 
sendRequest()?
Since the ContextAgent is created in the simulation script, I don’t know the 
name of it to assign it to an object of the type ContextAgent.

I send parts of my source code for better understanding. Please help!!

*************************************************

class ContextAgent : public Agent{

friend class AODV;

public:
        ContextAgent();
        int rq_context;
        int rt_context;
}

//LinkObject
static class ContextAgentClass : public TclClass {
public:
        ContextAgentClass() : TclClass("Agent/Context"){}
        TclObject* create(int, const char*const*) {
                return (new ContextAgent());
        }
} class_context_agent;

//Constructor
ContextAgent::ContextAgent() : Agent(PT_AODV) {
        bind("rq_cxt_otcl", &rq_context);
        bind("rt_cxt_otcl", &rt_context);
};

*************************************

class AODV: public Agent {
 ...
private:
        ContextAgent  *ContextAgentObject;
 ...
};

**************************************

// call in AODV-function
void
AODV::sendRequest(nsaddr_t dst) {
 ...
        ContextAgentObject = ????;
        rq->rq_cxt = ContextAgentObject->rq_context;
 ...
}

**************************************

# tcl-code
 ...
        set context1 [new Agent/Context]
        $ns_ attach-agent $node_(1) $context1
        $context1 set rq_cxt_otcl 0     
        $context1 set rt_cxt_otcl 5     
 ...


-- 


Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

-- 


"Feel free" – 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail

Reply via email to