UDPSink.cc

Go to the documentation of this file.
00001 //
00002 // Copyright (C) 2000 Institut fuer Telematik, Universitaet Karlsruhe
00003 //
00004 // This program is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public License
00006 // as published by the Free Software Foundation; either version 2
00007 // of the License, or (at your option) any later version.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU Lesser General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU Lesser General Public License
00015 // along with this program; if not, see <http://www.gnu.org/licenses/>.
00016 //
00017 
00018 
00019 #include <omnetpp.h>
00020 #include "UDPSink.h"
00021 #include "UDPControlInfo_m.h"
00022 #include "IPAddressResolver.h"
00023 
00024 
00025 Define_Module(UDPSink);
00026 
00027 
00028 void UDPSink::initialize()
00029 {
00030     numReceived = 0;
00031     WATCH(numReceived);
00032 
00033     int port = par("localPort");
00034     if (port!=-1)
00035         bindToPort(port);
00036 }
00037 
00038 void UDPSink::handleMessage(cMessage *msg)
00039 {
00040     processPacket(PK(msg));
00041 
00042     if (ev.isGUI())
00043     {
00044         char buf[32];
00045         sprintf(buf, "rcvd: %d pks", numReceived);
00046         getDisplayString().setTagArg("t",0,buf);
00047     }
00048 
00049 }
00050 
00051 void UDPSink::processPacket(cPacket *msg)
00052 {
00053     EV << "Received packet: ";
00054     printPacket(msg);
00055     delete msg;
00056 
00057     numReceived++;
00058 }
00059