Packet.h

00001 /* -*- mode:c++ -*- ********************************************************
00002  * file:        Packet.h
00003  *
00004  * author:      Jerome Rousselot
00005  *
00006  * copyright:   (C) 2009 CSEM SA
00007  *
00008  *              This program is free software; you can redistribute it
00009  *              and/or modify it under the terms of the GNU General Public
00010  *              License as published by the Free Software Foundation; either
00011  *              version 2 of the License, or (at your option) any later
00012  *              version.
00013  *              For further information see file COPYING
00014  *              in the top level directory
00015  ***************************************************************************
00016  * part of:     framework implementation developed by tkn
00017  **************************************************************************/
00018 
00019 #ifndef BBPACKET_H
00020 #define BBPACKET_H
00021 
00022 #include <omnetpp.h>
00023 #include "ImNotifiable.h"
00024 #include <sstream>
00025 
00035 class  Packet : public BBItem
00036 {
00037     BBITEM_METAINFO(BBItem);
00038 
00039 protected:
00041     long nbPacketsReceived;
00042     long nbPacketsReceivedNoRS;
00043     long nbPacketsSent;
00045     long packetBitLength;
00046     bool sent;
00047     int host;
00048 
00049 public:
00050 
00052     Packet(long bitLength, long rcvd=0, long sent=0) :
00053    BBItem(), nbPacketsReceived(rcvd), nbPacketsReceivedNoRS(rcvd), 
00054    nbPacketsSent(sent), packetBitLength(bitLength), sent(true), host(0) {
00055     };
00056 
00057     double getNbPacketsReceived() const  {
00058         return nbPacketsReceived;
00059     }
00060 
00061     double getNbBitsReceived() const {
00062     return nbPacketsReceived * packetBitLength;
00063   }
00064 
00065     double getNbPacketsReceivedNoRS() const  {
00066         return nbPacketsReceived;
00067     }
00068 
00069     double getNbPacketsSent() const  {
00070             return nbPacketsSent;
00071   }
00072 
00073     double getNbBitsSent() const {
00074       return nbPacketsSent * packetBitLength;
00075     }
00076 
00077     void setNbPacketsReceived(int n)  {
00078         nbPacketsReceived = n;
00079     }
00080 
00081     void setNbPacketsReceivedNoRS(int n)  {
00082         nbPacketsReceivedNoRS = n;
00083     }
00084 
00085     void setNbPacketsSent(int n)  {
00086             nbPacketsSent = n;
00087   }
00088 
00089     void setBitLength(long bitLength) {
00090       packetBitLength = bitLength;
00091     }
00092 
00093     long getBitLength() const {
00094       return packetBitLength;
00095     }
00096 
00097     void setHost(int h) {
00098       host = h;
00099     }
00100 
00101     int getHost() {
00102       return host;
00103     }
00104 
00105     bool isSent() const {
00106       return sent;
00107     }
00108 
00109     void setPacketSent(bool isSent) {
00110       sent = isSent;
00111     }
00112 
00114     std::string info() const {
00115         std::ostringstream ost;
00116         ost << " Number of packets generated is "<< 0;
00117         return ost.str();
00118     }
00119 };
00120 
00121 
00122 #endif