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

[ns] Re: REPOST: Problems creating tcl object from within c++ class



Hi,


        I am still trying to call a tcl object from c++, but I still
haven't got any success at it.
        I tried to call tcl.eval(...) but the simulator crashed.
        I guess that the tcl object was not properly initialized.


        Any sugestions?
        Tulius Lima

* error message -----
ns: _o17 send-probe-pkts-to 14 3000 0 4000:
    (_o17 cmd line 1)
    invoked from within
"_o17 cmd send-probe-pkts-to 14 3000 0 4000"
    invoked from within
"catch "$self cmd $args" ret"
    (procedure "_o17" line 2)
    (SplitObject unknown line 2)
    invoked from within
"_o17 send-probe-pkts-to 14 3000 0 4000"
----- error message *


* c++ code ----------
int MPLSAddressClassifier::sendProbePkts(int index)
{
  Tcl& tcl = Tcl::instance();

  for(int i = 1; i < no_probe_pkts_; i++)
  {
    char out[100];

    // get routing information
    // informacao de IDA
    int FEC    = RT_.Entry_[index].fec_;
    int LSPid  = RT_.Entry_[index].LSPid_;

    // round-trip information
    int vFEC   = RT_.Entry_[index].vfec_;
    int vLSPid = RT_.Entry_[index].vLSPid_;


    // Prepare the output to the Tcl interpreter. Calculate the round
    // trip time
    sprintf(out, "%s send-probe-pkts-to %d %d %d %d",
     name(),
     FEC,
     LSPid,
     vFEC,
     vLSPid);
    tcl.eval(out);

    char *result = tcl.result();
    if (atoi(result) != 1)
      printf("******* erro no tcl.eval(...)");
  } // FOR
} // end - sendProbePkts()
----------------- c++ code

* tcl initialization code ---------\
MplsNode instproc te-attach-egress {egress} {
    set ns [Simulator instance]

    $self instvar ping_

    set pong_ [$egress get-ping-agent]

    $ns connect $ping_ $pong_
}



----- tcl initialization code-----*