Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __INET_MACRELAYUNITNP_H
00019 #define __INET_MACRELAYUNITNP_H
00020
00021
00022 #include "MACRelayUnitBase.h"
00023
00024 class EtherFrame;
00025
00030 class INET_API MACRelayUnitNP : public MACRelayUnitBase
00031 {
00032 public:
00033 MACRelayUnitNP();
00034 virtual ~MACRelayUnitNP();
00035
00036 protected:
00037
00038 cQueue queue;
00039
00040
00041 int numCPUs;
00042 simtime_t processingTime;
00043 int bufferSize;
00044 long highWatermark;
00045 int pauseUnits;
00046 simtime_t pauseInterval;
00047
00048
00049 int bufferUsed;
00050 cMessage **endProcEvents;
00051 simtime_t pauseLastSent;
00052
00053
00054 long numProcessedFrames;
00055 long numDroppedFrames;
00056 cOutVector bufferLevel;
00057
00058 protected:
00061 virtual void initialize();
00062
00067 virtual void handleMessage(cMessage *msg);
00068
00072 virtual void finish();
00074
00079 virtual void handleIncomingFrame(EtherFrame *msg);
00080
00085 virtual void processFrame(cMessage *msg);
00086 };
00087
00088 #endif
00089
00090
00091