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