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

basic question(emergency)



May I ask a basic question?

How to add a new class object(no matter C++ fomat or Tcl format)

The following is my adding steps.

(1). the creation  of C++ class:

 I edit a tsw.cc and tsw.h , add "tsw.o" to Makefile, and  compiled ok.

------------------------------------------------------------------------------------

static class TSWClass : public TclClass {
 public:
        TSWClass() : TclClass("TSW") {}
         TclObject* create(int, const char*const*) {
                 return (new TSW());
         }
 }class_TSW;
 (in tsw.cc)

------------------------------------------------------------------------------------



 class TSW : public Connector {
 public:
         TSW();
        int command(int argc, const char*const* argv);
 protected:
                         :
                         :
 }
 (in tsw.h)
------------------------------------------------------------------------------------



(2). used by Tcl scripts:

I edit a tcl script include create this object ( "set tsw_ [new TSW]" in
rr.tcl).

(3). error
 ns return the error message of tcl script(rr.tcl)

------------------------------------------------------------------------------------

[~/ns2/ns-2/tcl/test#]ns rr.tcl
invalid command name "Tsw"
    while executing
"Tsw create _o72 "
    invoked from within
"catch "$className create $o $args" msg"
    (procedure "new" line 3)
    invoked from within
"new Tsw"
    (procedure "_o3" line 9)
    (Simulator duplex-rio_tsw-link line 9)
    invoked from within
"$ns duplex-rio_tsw-link $n(2) $n(3) 5Mb 2ms"
    (file "rr.tcl" line 44)
[~/ns2/ns-2/tcl/test#]
------------------------------------------------------------------------------------

It cannot find the new object.I think there should be some other steps
beteen (1) and (2).

Whould you please tell me the correct adding steps.

Thanks a lot.

ps: I have already read the Greis's tutorial and ns documentation
chapter 8.
They are talking about Agent and Packet adding and I have imitated their
adding
steps .It still does not work.