INET Framework for OMNeT++/OMNEST
AnsaIPTrafSink Class Reference

#include <AnsaIPTrafGen.h>

Inheritance diagram for AnsaIPTrafSink:
AnsaIPTrafGen

List of all members.

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

Detailed Description

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

Definition at line 33 of file AnsaIPTrafGen.h.


Member Function Documentation

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

Reimplemented in AnsaIPTrafGen.

Definition at line 37 of file AnsaIPTrafGen.cc.

{
    processPacket(check_and_cast<cPacket *>(msg));

    if (ev.isGUI())
    {
        char buf[32];
        sprintf(buf, "rcvd: %d pks", numReceived);
        getDisplayString().setTagArg("t",0,buf);
    }

}
void AnsaIPTrafSink::initialize ( ) [protected, virtual]

Definition at line 31 of file AnsaIPTrafGen.cc.

Referenced by AnsaIPTrafGen::initialize().

{
    numReceived = 0;
    WATCH(numReceived);
}
void AnsaIPTrafSink::printPacket ( cPacket *  msg) [protected, virtual]

Definition at line 50 of file AnsaIPTrafGen.cc.

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

{
    IPvXAddress src, dest;
    int protocol = -1;
    if (dynamic_cast<IPControlInfo *>(msg->getControlInfo())!=NULL)
    {
        IPControlInfo *ctrl = (IPControlInfo *)msg->getControlInfo();
        src = ctrl->getSrcAddr();
        dest = ctrl->getDestAddr();
        protocol = ctrl->getProtocol();
    }
    else if (dynamic_cast<IPv6ControlInfo *>(msg->getControlInfo())!=NULL)
    {
        IPv6ControlInfo *ctrl = (IPv6ControlInfo *)msg->getControlInfo();
        src = ctrl->getSrcAddr();
        dest = ctrl->getDestAddr();
        protocol = ctrl->getProtocol();
    }

    ev  << msg << endl;
    ev  << "Payload length: " << msg->getByteLength() << " bytes" << endl;
    if (protocol!=-1)
        ev  << "src: " << src << "  dest: " << dest << "  protocol=" << protocol << "\n";
}
void AnsaIPTrafSink::processPacket ( cPacket *  msg) [protected, virtual]

Definition at line 75 of file AnsaIPTrafGen.cc.

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

{
    EV << "Received packet: ";
    printPacket(msg);
    std::cout << "Arrive: " << msg->getFullName() << " at time = " << msg->getArrivalTime() << endl;
    delete msg;

    numReceived++;
}

Member Data Documentation


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