[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] question about error in variable accessing via TCL



You should define the variable in the header file.
Then in .cc file use

delay_bind_init_one("zz_");
in
?????::delay_bind_init_all()

and

if (delay_bind(varName, localName, "zz_", &zz_, tracer)) return
TCL_OK;
in
?????::delay_bind_dispatch(const char *varName, const char
*localName, TclObject *tracer)

Hope it helps.
-Navid

On Wed, 26 Dec 2001, Joo-Han Song wrote:

>  HI users,
>
>  I tried to create a new variable zz_ in C++ and want to bind it to zz_ in otcl.
> This variable is protected member variable of AODV class of type Agent/AODV, so I set
>
>  Agent/AODV set zz_ 1 in ~ns/lib/ns-default.tcl.
>
>  In the file ~ns/aodv/aodv.h, I defined the var zz_ as integer, and bound it in ~ns/aodv/aodv.cc by
>
> bind("zz_", &zz_).
>
>  But, when I try to access the variable zz_ in my test script like
>
>
> set testing [new Agent/AODV]
>
> $testing set zz_
>
>
> it gave an error saying like following.
>
> can't read "zz_": no such variable
>     while executing
> "subst $[subst $var"
>     (procedure "_o1175" line 5)
>     (Object next line 5)
>     invoked from within
> "_o1175 next zz_"
>     ("eval" body line 1)
>     invoked from within
> "eval $self next $args"
>     (procedure "_o1175" line 18)
>     (Agent set line 18)
>     invoked from within
> "$testing set zz_"
>     (file "50_40_100_aodv_final_m.tcl" line 137)
>
>
> Any help will be really appreciated.
> Thank you.
>
> Joo-Han
>