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