Advertisement
Guest User

ns2 on-the-fly

a guest
Dec 13th, 2011
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <tclcl.h>
  2. #include <cstdlib>
  3.  
  4. extern EmbeddedTcl et_ns_lib;
  5. extern EmbeddedTcl et_ns_ptypes;
  6.  
  7. int main(int argc, char *argv[]) {
  8.     char appname[] = {"mytest"};
  9.     // instantiate interpreter
  10.     Tcl_Interp *interp = Tcl_CreateInterp();
  11.         if (Tcl_Init(interp) == TCL_ERROR) {
  12.                 printf("%s\n", interp->result);
  13.                 abort();
  14.         }
  15.     // initialize OTcl
  16.         if (Otcl_Init(interp) == TCL_ERROR) {
  17.                 printf("%s\n", interp->result);
  18.                 abort();
  19.         }
  20.     // initialize Tcl
  21.     Tcl_SetVar(interp, "tcl_rcFileName", "~/.ns.tcl", TCL_GLOBAL_ONLY);
  22.     Tcl::init(interp, appname);
  23.     // import ns classes into interpreter
  24.     printf("Loading ptypes...\n");
  25.     et_ns_ptypes.load();
  26.     printf("Done.\n");
  27.     printf("Loading lib...\n");
  28.     et_ns_lib.load();
  29.     printf("Done.\n");
  30.     // acquire singleton instance
  31.     Tcl& tcl = Tcl::instance();
  32.     tcl.evalc("set ns [new Simulator]");
  33.  
  34. /*  // Commented until I can get the previous code to work...
  35.     Tcl_Eval(interp,"set ns [new Simulator]");
  36.     Tcl_Eval(interp,"set tcp [new Agent/TCP]");
  37.     Tcl_Eval(interp,"puts \"The value of tcp is $tcp\"");
  38.     Tcl_Eval(interp,"delete $ns");
  39.     tcl.evalc("Simulator set NumberInterfaces_");
  40.     const char *ni = tcl.result();
  41.     if(std::atoi(ni) != 1) {
  42.         tcl.evalc("Simulator set NumberInterfaces_ 1");
  43.     }
  44. */
  45.  
  46.     return 0;
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement