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

[ns] How to introduce a new OTcl class that inherist from class Node?



Hi all,

I am a novice to ns-2.1b7a and I am in a great trouble. I have to define in OTcl a
new Class BTNode that inherits from the Class Node. To this end I wrote a
file ns-btnode.tcl

Class BTNode  - superclass Node

BTNode instproc init {ipAddr bdAddr Xpos Ypos} {
    eval $self next $ipAddr
    $self instvar bthost_ btbaseband_ classifier_
    .........
}

I sourced the file in ns-lib.tcl and introduced it in the Makefile. I have
also written several C++ classes and methods. The compile phase does not
give problem. However, when I execute a testing script with the following command:

set btnode0 [new BTNode 0 0 0 0] #node with IP_addr=0 e BD_addr=0 in position 0,0

on the output all the tcl files sourced in the ns-lib.tcl file before my ns-btnode.tcl are printed and I received the following error
:
 uneven number of args
    (Object init line 1)
    invoked from within
"BTNode init - superclass Node"
    (Class create line 1)
invoked from within
"Class create BTNode - superclass Node"
    ("eval" body line 1)
    invoked from within
"eval [list $self] create [list $m] $args
    (procedure "class" line 5)
    (Class unknown line 5)
    invoked from within
"Class BTNode - superclass Node"

I believe that the problem is in the invocation of the constructor for class Node, ie, eval $self next $ipAddr
.

Any suggestions will be greatly appreciated

Raffaele
ps: I have adopted the same syntax that I have found in the the Bluehoc code for the declaration of a new class that inherits from the Class Node. It works for Bluehoc (I have installed it successfully), I do not understand why it doesn't work in my case.