IPTrafSink Class Reference

#include <IPTrafGen.h>

Inheritance diagram for IPTrafSink:

IPTrafGen

List of all members.


Detailed Description

Consumes and prints packets received from the IP module. See NED for more info.

Protected Member Functions

virtual void printPacket (cPacket *msg)
virtual void processPacket (cPacket *msg)
virtual void initialize ()
virtual void handleMessage (cMessage *msg)

Protected Attributes

int numReceived

Member Function Documentation

void IPTrafSink::printPacket ( cPacket *  msg  )  [protected, virtual]

Referenced by processPacket(), and IPTrafGen::sendPacket().

00050 {
00051     IPvXAddress src, dest;
00052     int protocol = -1;
00053     if (dynamic_cast<IPControlInfo *>(msg->getControlInfo())!=NULL)
00054     {
00055         IPControlInfo *ctrl = (IPControlInfo *)msg->getControlInfo();
00056         src = ctrl->getSrcAddr();
00057         dest = ctrl->getDestAddr();
00058         protocol = ctrl->getProtocol();
00059     }
00060     else if (dynamic_cast<IPv6ControlInfo *>(msg->getControlInfo())!=NULL)
00061     {
00062         IPv6ControlInfo *ctrl = (IPv6ControlInfo *)msg->getControlInfo();
00063         src = ctrl->getSrcAddr();
00064         dest = ctrl->getDestAddr();
00065         protocol = ctrl->getProtocol();
00066     }
00067 
00068     ev  << msg << endl;
00069     ev  << "Payload length: " << msg->getByteLength() << " bytes" << endl;
00070     if (protocol!=-1)
00071         ev  << "src: " << src << "  dest: " << dest << "  protocol=" << protocol << "\n";
00072 }

void IPTrafSink::processPacket ( cPacket *  msg  )  [protected, virtual]

Referenced by IPTrafGen::handleMessage(), and handleMessage().

00075 {
00076     EV << "Received packet: ";
00077     printPacket(msg);
00078     delete msg;
00079 
00080     numReceived++;
00081 }

void IPTrafSink::initialize (  )  [protected, virtual]

Referenced by IPTrafGen::initialize().

00031 {
00032     numReceived = 0;
00033     WATCH(numReceived);
00034 }

void IPTrafSink::handleMessage ( cMessage *  msg  )  [protected, virtual]

Reimplemented in IPTrafGen.

00037 {
00038     processPacket(check_and_cast<cPacket *>(msg));
00039 
00040     if (ev.isGUI())
00041     {
00042         char buf[32];
00043         sprintf(buf, "rcvd: %d pks", numReceived);
00044         getDisplayString().setTagArg("t",0,buf);
00045     }
00046 
00047 }


Member Data Documentation

int IPTrafSink::numReceived [protected]


The documentation for this class was generated from the following files:

Generated on Fri Mar 20 18:51:19 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5