Any large network model has routing tables and other internal data structures which had been hard to monitor during simulation -- most of the time you had to print their contents periodically to be able to see what was going on. OMNeT++3.0 will help this. It will make it easy to get std::vectors, structs, vectors of structs and other data displayed in Tkenv.

The following screenshot was made with the development versions of IPSuite and OMNeT++.

Three of the four tables used std::vectors. LIBTable and TED were structs stored in std::vectors:

struct lib_type {..};
std::vector<lib_type> lib;

And all code necessary to get them displayed into Tkenv was writing an operator<< function which can write the struct on an std::ostream and adding the WATCH_vector(lib) line into initialize(). <PRE>std::ostream& operator<<(std::ostream& os, const lib_type& lib) { os << “InL:” << lib.inLabel;     os << “  InIf:” << lib.inInterface.c_str();     os << “  OutL:” << lib.outLabel;     os << “  OutIf:” << lib.outInterface.c_str();     os << “  Optcode:” << lib.optcode;
    return os; } </PRE><PRE>WATCH_vector(lib);</PRE>

The syntax may change, but the idea remains: your tables will be easy to get watched.