ns2中静态成员变量的绑定

来源:互联网 发布:苹果电脑 知乎 编辑:程序博客网 时间:2024/05/29 09:44

class Packet{

.....

static int hdrlen_;

}


需要将hdrlen绑定。

class PacketHeaderClass: public TclClass{

     protected:

            PacketHeaderClass(const char* classname, int hdrsize);

            TclObject* create(int argc, const char* const* argv);

          /*是实现绑定*/

             virtual void bind();

             virtual int method(int argc, const char* const* argv);

};


void PacketHeaderClass::bind()

{

     TclClass::bind();

      add_method("hdrlen");

}


int PacketHeaderClass::method(int ac, const char* const* argv)

{

      Tcl& tcl=Tcl::instance();


     int argc=ac-2;

     const char*const* argv=av+2;

     if(argc==2){

              if(strcmp(argv[1], "hdrlen") == 0){

                      tcl.resultf("%d", Packet::hdrlen_);

                      return (TCL_OK);

                 }

        }else if(argc == 3){

                  if(strcmp(argv[1], "hdrlen") == 0){

                          Packet::hdrlen_ = atoi(argv[2]);

                           return (TCL_OK);

                     }

         }

          return TclClass::method(ac,av);

}

     

以后可以使用如下的OTcl命令来访问改变Packet::hdrlen_的值

 PacketHeader hdrlen 120

set i [PacketHeader hdrlen]




0 0
原创粉丝点击