PacketHeaderClass Class Reference

#include <packet.h>

Inheritance diagram for PacketHeaderClass:

TclClass AODVHeaderClass ARPHeaderClass ASRMHeaderClass CommonHeaderClass CtrMcastHeaderClass DiffHeaderClass encapHeaderClass FlagsHeaderClass GAFHeaderClass HttpInvalHeaderClass IMEPHeaderClass IPHeaderClass IPinIPHeaderClass IvsHeaderClass LDPHeaderClass LLHeaderClass LmsHeaderClass LRWPANHeaderClass MacHeaderClass mcastControlHeaderClass MessageHeaderClass MIPHeaderClass PingHeaderClass PingHeaderClass PushbackHeaderClass QSHeaderClass RapHeaderClass ResvHeaderClass rtDVHeaderClass rtLSHeaderClass RTPHeaderClass SCTPHeaderClass shimhdreaderClass SnoopHeaderClass SRCRTHeaderClass SRHeaderClass SRMEXTHeaderClass SRMHeaderClass TCPAHeaderClass TCPHeaderClass TFRC_ACKHeaderClass TFRCHeaderClass TORAHeaderClass UmpHeaderClass XCPHeaderClass Collaboration diagram for PacketHeaderClass:

Collaboration graph
[legend]

Detailed Description

Definition at line 516 of file packet.h.

Public Member Functions

virtual void bind ()
TclObjectcreate (int argc, const char *const *argv)
virtual void export_offsets ()

Protected Member Functions

void bind_offset (int *off)
void field_offset (const char *fieldname, int offset)
virtual int method (int argc, const char *const *argv)
void offset (int *off)
 PacketHeaderClass (const char *classname, int hdrsize)

Protected Attributes

int hdrlen_
int * offset_


Constructor & Destructor Documentation

PacketHeaderClass::PacketHeaderClass const char *  classname,
int  hdrsize
[protected]
 

Definition at line 52 of file packet.cc.

00052                                                                       : 
00053     TclClass(classname), hdrlen_(hdrlen), offset_(0)
00054 {
00055 }


Member Function Documentation

void PacketHeaderClass::bind  )  [virtual]
 

Definition at line 63 of file packet.cc.

References export_offsets(), and hdrlen_.

00064 {
00065     TclClass::bind();
00066     Tcl& tcl = Tcl::instance();
00067     tcl.evalf("%s set hdrlen_ %d", classname_, hdrlen_);
00068     export_offsets();
00069     add_method("offset");
00070 }

Here is the call graph for this function:

void PacketHeaderClass::bind_offset int *  off  )  [inline, protected]
 

Definition at line 521 of file packet.h.

References offset_.

Referenced by AODVHeaderClass::AODVHeaderClass(), ARPHeaderClass::ARPHeaderClass(), ASRMHeaderClass::ASRMHeaderClass(), CommonHeaderClass::CommonHeaderClass(), CtrMcastHeaderClass::CtrMcastHeaderClass(), DiffHeaderClass::DiffHeaderClass(), encapHeaderClass::encapHeaderClass(), FlagsHeaderClass::FlagsHeaderClass(), GAFHeaderClass::GAFHeaderClass(), HttpInvalHeaderClass::HttpInvalHeaderClass(), IMEPHeaderClass::IMEPHeaderClass(), IPHeaderClass::IPHeaderClass(), IPinIPHeaderClass::IPinIPHeaderClass(), IvsHeaderClass::IvsHeaderClass(), LDPHeaderClass::LDPHeaderClass(), LLHeaderClass::LLHeaderClass(), LmsHeaderClass::LmsHeaderClass(), LRWPANHeaderClass::LRWPANHeaderClass(), MacHeaderClass::MacHeaderClass(), mcastControlHeaderClass::mcastControlHeaderClass(), MessageHeaderClass::MessageHeaderClass(), MIPHeaderClass::MIPHeaderClass(), PingHeaderClass::PingHeaderClass(), PushbackHeaderClass::PushbackHeaderClass(), QSHeaderClass::QSHeaderClass(), RapHeaderClass::RapHeaderClass(), ResvHeaderClass::ResvHeaderClass(), rtDVHeaderClass::rtDVHeaderClass(), rtLSHeaderClass::rtLSHeaderClass(), RTPHeaderClass::RTPHeaderClass(), SCTPHeaderClass::SCTPHeaderClass(), shimhdreaderClass::shimhdreaderClass(), SnoopHeaderClass::SnoopHeaderClass(), SRCRTHeaderClass::SRCRTHeaderClass(), SRMEXTHeaderClass::SRMEXTHeaderClass(), SRMHeaderClass::SRMHeaderClass(), TCPAHeaderClass::TCPAHeaderClass(), TCPHeaderClass::TCPHeaderClass(), TFRC_ACKHeaderClass::TFRC_ACKHeaderClass(), TFRCHeaderClass::TFRCHeaderClass(), TORAHeaderClass::TORAHeaderClass(), UmpHeaderClass::UmpHeaderClass(), and XCPHeaderClass::XCPHeaderClass().

00521 { offset_ = off; }

TclObject * PacketHeaderClass::create int  argc,
const char *const *  argv
 

Definition at line 58 of file packet.cc.

00059 {
00060     return (0);
00061 }

void PacketHeaderClass::export_offsets  )  [virtual]
 

Reimplemented in ResvHeaderClass, IPHeaderClass, CommonHeaderClass, and MacHeaderClass.

Definition at line 72 of file packet.cc.

Referenced by bind().

00073 {
00074 }

void PacketHeaderClass::field_offset const char *  fieldname,
int  offset
[protected]
 

Definition at line 76 of file packet.cc.

Referenced by ResvHeaderClass::export_offsets(), CommonHeaderClass::export_offsets(), MacHeaderClass::export_offsets(), and IPHeaderClass::export_offsets().

00077 {
00078     Tcl& tcl = Tcl::instance();
00079     tcl.evalf("%s set offset_(%s) %d", classname_, fieldname, offset);
00080 }

int PacketHeaderClass::method int  argc,
const char *const *  argv
[protected, virtual]
 

Definition at line 82 of file packet.cc.

References offset_.

00083 {
00084     Tcl& tcl = Tcl::instance();
00085     int argc = ac - 2;
00086     const char*const* argv = av + 2;
00087     if (argc == 3) {
00088         if (strcmp(argv[1], "offset") == 0) {
00089             if (offset_) {
00090                 *offset_ = atoi(argv[2]);
00091                 return TCL_OK;
00092             }
00093             tcl.resultf("Warning: cannot set offset_ for %s",
00094                     classname_);
00095             return TCL_OK;
00096         }
00097     }
00098     else if (argc == 2) {
00099         if (strcmp(argv[1], "offset") == 0) {
00100             if (offset_) {
00101                 tcl.resultf("%d", *offset_);
00102                 return TCL_OK;
00103             }
00104         }
00105     }
00106     return TclClass::method(ac, av);
00107 }

void PacketHeaderClass::offset int *  off  )  [inline, protected]
 

Definition at line 522 of file packet.h.

References offset_.

Referenced by SRHeaderClass::SRHeaderClass().

00522 {offset_= off;}


Field Documentation

int PacketHeaderClass::hdrlen_ [protected]
 

Definition at line 523 of file packet.h.

Referenced by bind().

int* PacketHeaderClass::offset_ [protected]
 

Definition at line 524 of file packet.h.

Referenced by bind_offset(), method(), and offset().


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