BaseTrace Class Reference

#include <basetrace.h>

Inheritance diagram for BaseTrace:

TclObject EventTrace Collaboration diagram for BaseTrace:

Collaboration graph
[legend]

Detailed Description

Definition at line 43 of file basetrace.h.

Public Member Functions

 BaseTrace ()
char * buffer ()
void channel (Tcl_Channel ch)
Tcl_Channel channel ()
virtual int command (int argc, const char *const *argv)
virtual void dump ()
void flush (Tcl_Channel channel)
void namchannel (Tcl_Channel namch)
Tcl_Channel namchannel ()
virtual void namdump ()
char * nbuffer ()
void tagged (bool tag)
bool tagged ()
 ~BaseTrace ()

Static Public Member Functions

static double round (double x, double precision=PRECISION)

Protected Attributes

Tcl_Channel channel_
Tcl_Channel namChan_
char * nwrk_
bool tagged_
char * wrk_


Constructor & Destructor Documentation

BaseTrace::BaseTrace  ) 
 

Definition at line 57 of file basetrace.cc.

References nwrk_, and wrk_.

00058   : channel_(0), namChan_(0), tagged_(0) 
00059 {
00060   wrk_ = new char[1026];
00061   nwrk_ = new char[256];
00062 }

BaseTrace::~BaseTrace  ) 
 

Definition at line 64 of file basetrace.cc.

References nwrk_, and wrk_.

00065 {
00066   delete wrk_;
00067   delete nwrk_;
00068 }


Member Function Documentation

char* BaseTrace::buffer  )  [inline]
 

Definition at line 50 of file basetrace.h.

References wrk_.

Referenced by Trace::annotate(), Trace::callback(), CMUTrace::format(), CMUTrace::format_aodv(), CMUTrace::format_arp(), CMUTrace::format_dsr(), SatTrace::format_hdlc(), CMUTrace::format_imep(), CMUTrace::format_ip(), CMUTrace::format_mac(), CMUTrace::format_smac(), CMUTrace::format_tcp(), CMUTrace::format_tora(), SRForwarder::handlePktWithoutSR(), MobileNode::log_energy(), AODV::log_link_broke(), AODV::log_link_del(), AODV::log_link_kept(), toraAgent::log_link_layer_feedback(), toraAgent::log_link_layer_recycle(), toraAgent::log_lnk_del(), toraAgent::log_lnk_kept(), MobileNode::log_movement(), toraAgent::log_nb_del(), imepAgent::log_neighbor_list(), toraAgent::log_recv_clr(), toraAgent::log_recv_qry(), toraAgent::log_recv_upd(), toraAgent::log_route_loop(), toraAgent::log_route_table(), toraAgent::logNbDeletedLastDN(), toraAgent::logNextHopChange(), toraAgent::logToraDest(), toraAgent::logToraNeighbor(), toraAgent::recvUPD(), Trace::trace(), toraAgent::trace(), RouteCache::trace(), OmniMcastAgent::trace(), imepAgent::trace(), FloodingAgent::trace(), DumbAgent::trace(), DSRAgent::trace(), CMUPriQueue::trace(), DSDV_Agent::trace(), DiffusionAgent::trace(), TcpAgent::trace_event(), MacSimple::trace_event(), Mac802_11::trace_event(), and ErrorModel::trace_event().

00050 { return wrk_ ; }

void BaseTrace::channel Tcl_Channel  ch  )  [inline]
 

Definition at line 54 of file basetrace.h.

References channel_.

00054 {channel_ = ch; }

Tcl_Channel BaseTrace::channel void   )  [inline]
 

Definition at line 53 of file basetrace.h.

References channel_.

Referenced by Trace::command(), and DequeTrace::recv().

00053 { return channel_; }

int BaseTrace::command int  argc,
const char *const *  argv
[virtual]
 

Definition at line 121 of file basetrace.cc.

References channel_, namChan_, and tagged().

00122 {
00123     Tcl& tcl = Tcl::instance();
00124     if (argc == 2) {
00125         if (strcmp(argv[1], "detach") == 0) {
00126             channel_ = 0;
00127             namChan_ = 0;
00128             return (TCL_OK);
00129         }
00130         if (strcmp(argv[1], "flush") == 0) {
00131             if (channel_ != 0) 
00132                 Tcl_Flush(channel_);
00133             if (namChan_ != 0)
00134                 Tcl_Flush(namChan_);
00135             return (TCL_OK);
00136         }
00137         if (strcmp(argv[1], "tagged") == 0) {
00138             tcl.resultf("%d", tagged());
00139                         return (TCL_OK);
00140         }
00141     } else if (argc == 3) {
00142         if (strcmp(argv[1], "attach") == 0) {
00143             int mode;
00144             const char* id = argv[2];
00145             channel_ = Tcl_GetChannel(tcl.interp(), (char*)id,
00146                           &mode);
00147             if (channel_ == 0) {
00148                 tcl.resultf("trace: can't attach %s for writing", id);
00149                 return (TCL_ERROR);
00150             }
00151             return (TCL_OK);
00152         }
00153         if (strcmp(argv[1], "namattach") == 0) {
00154             int mode;
00155             const char* id = argv[2];
00156             namChan_ = Tcl_GetChannel(tcl.interp(), (char*)id,
00157                           &mode);
00158             if (namChan_ == 0) {
00159                 tcl.resultf("trace: can't attach %s for writing", id);
00160                 return (TCL_ERROR);
00161             }
00162             return (TCL_OK);
00163         }
00164         if (strcmp(argv[1], "tagged") == 0) {
00165             int tag;
00166             if (Tcl_GetBoolean(tcl.interp(),
00167                        (char*)argv[2], &tag) == TCL_OK) {
00168                 tagged(tag);
00169                 return (TCL_OK);
00170             } else return (TCL_ERROR);
00171         }
00172     }
00173     return (TclObject::command(argc, argv));
00174 }

Here is the call graph for this function:

void BaseTrace::dump  )  [virtual]
 

Definition at line 70 of file basetrace.cc.

References channel_, and wrk_.

Referenced by SRForwarder::handlePktWithoutSR(), MobileNode::log_energy(), AODV::log_link_broke(), AODV::log_link_del(), AODV::log_link_kept(), toraAgent::log_link_layer_feedback(), toraAgent::log_link_layer_recycle(), toraAgent::log_lnk_del(), toraAgent::log_lnk_kept(), MobileNode::log_movement(), toraAgent::log_nb_del(), imepAgent::log_neighbor_list(), toraAgent::log_recv_clr(), toraAgent::log_recv_qry(), toraAgent::log_recv_upd(), toraAgent::log_route_loop(), toraAgent::log_route_table(), toraAgent::logNbDeletedLastDN(), toraAgent::logNextHopChange(), toraAgent::logToraDest(), toraAgent::logToraNeighbor(), DequeTrace::recv(), Trace::recv(), TraceIpMac::recv(), TraceIp::recv(), SatDequeTrace::recv(), CMUTrace::recv(), Trace::recvOnly(), toraAgent::recvUPD(), toraAgent::trace(), RouteCache::trace(), OmniMcastAgent::trace(), imepAgent::trace(), FloodingAgent::trace(), DumbAgent::trace(), DSRAgent::trace(), CMUPriQueue::trace(), DSDV_Agent::trace(), DiffusionAgent::trace(), EventTrace::trace(), MacSimple::trace_event(), Mac802_11::trace_event(), and SatTrace::traceonly().

00071 {
00072     int n = strlen(wrk_);
00073     if ((n > 0) && (channel_ != 0)) {
00074         /*
00075          * tack on a newline (temporarily) instead
00076          * of doing two writes
00077          */
00078         wrk_[n] = '\n';
00079         wrk_[n + 1] = 0;
00080  /* -NEW- */
00081         //printf("%s",wrk_);
00082         (void)Tcl_Write(channel_, wrk_, n + 1);
00083 
00084  /* END -NEW- */
00085         //Tcl_Flush(channel_);
00086         wrk_[n] = 0;
00087     }
00088 
00089     //  if (callback_) {
00090 //          Tcl& tcl = Tcl::instance();
00091 //          tcl.evalf("%s handle { %s }", name(), wrk_);
00092 //      }
00093 }

void BaseTrace::flush Tcl_Channel  channel  )  [inline]
 

Definition at line 59 of file basetrace.h.

Referenced by Trace::command().

00059 { Tcl_Flush(channel); }

void BaseTrace::namchannel Tcl_Channel  namch  )  [inline]
 

Definition at line 57 of file basetrace.h.

References namChan_.

00057 {namChan_ = namch; }

Tcl_Channel BaseTrace::namchannel  )  [inline]
 

Definition at line 56 of file basetrace.h.

References namChan_.

Referenced by Trace::command(), CMUTrace::format(), DequeTrace::recv(), and SatDequeTrace::recv().

00056 { return namChan_; }

void BaseTrace::namdump  )  [virtual]
 

Definition at line 95 of file basetrace.cc.

References namChan_, and nwrk_.

Referenced by DequeTrace::recv(), Trace::recv(), SatDequeTrace::recv(), Trace::recvOnly(), EventTrace::trace(), and Trace::write_nam_trace().

00096 {
00097     int n = 0;
00098 
00099     /* Otherwise nwrk_ isn't initialized */
00100     if (namChan_ != 0)
00101         n = strlen(nwrk_);
00102     if ((n > 0) && (namChan_ != 0)) {
00103         /*
00104          * tack on a newline (temporarily) instead
00105          * of doing two writes
00106          */
00107         nwrk_[n] = '\n';
00108         nwrk_[n + 1] = 0;
00109         (void)Tcl_Write(namChan_, nwrk_, n + 1);
00110         //Tcl_Flush(channel_);
00111         nwrk_[n] = 0;
00112     }
00113 }

char* BaseTrace::nbuffer  )  [inline]
 

Definition at line 51 of file basetrace.h.

References nwrk_.

Referenced by DequeTrace::recv(), TcpAgent::trace_event(), MacSimple::trace_event(), Mac802_11::trace_event(), ErrorModel::trace_event(), and Trace::write_nam_trace().

00051 {return nwrk_; }

static double BaseTrace::round double  x,
double  precision = PRECISION
[inline, static]
 

Definition at line 72 of file basetrace.h.

Referenced by SatGeometry::distance(), HttpApp::log(), SatGeometry::propdelay(), Trace::trace(), TcpAgent::trace_event(), MacSimple::trace_event(), Mac802_11::trace_event(), and ErrorModel::trace_event().

00072                                                                {
00073         return (double)floor(x*precision + 0.5)/precision;
00074     }

void BaseTrace::tagged bool  tag  )  [inline]
 

Definition at line 77 of file basetrace.h.

References tagged_.

00077 { tagged_ = tag; }

bool BaseTrace::tagged  )  [inline]
 

Definition at line 76 of file basetrace.h.

References tagged_.

Referenced by Trace::annotate(), Trace::command(), command(), CMUTrace::format_aodv(), CMUTrace::format_arp(), CMUTrace::format_dsr(), SatTrace::format_hdlc(), CMUTrace::format_imep(), CMUTrace::format_ip(), CMUTrace::format_mac(), CMUTrace::format_tcp(), CMUTrace::format_tora(), DequeTrace::recv(), and Trace::trace().

00076 { return tagged_; }


Field Documentation

Tcl_Channel BaseTrace::channel_ [protected]
 

Definition at line 80 of file basetrace.h.

Referenced by channel(), command(), and dump().

Tcl_Channel BaseTrace::namChan_ [protected]
 

Definition at line 81 of file basetrace.h.

Referenced by command(), namchannel(), and namdump().

char* BaseTrace::nwrk_ [protected]
 

Definition at line 83 of file basetrace.h.

Referenced by BaseTrace(), namdump(), nbuffer(), and ~BaseTrace().

bool BaseTrace::tagged_ [protected]
 

Definition at line 84 of file basetrace.h.

Referenced by tagged().

char* BaseTrace::wrk_ [protected]
 

Definition at line 82 of file basetrace.h.

Referenced by BaseTrace(), buffer(), dump(), and ~BaseTrace().


The documentation for this class was generated from the following files:
Generated on Tue Mar 6 17:03:27 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6