RINASim  October 2016
Documentation of framework for OMNeT++
MM_SPort_Drop.cc
Go to the documentation of this file.
1 //
2 // Copyright © 2014 - 2015 PRISTINE Consortium (http://ict-pristine.eu)
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program. If not, see http://www.gnu.org/licenses/.
16 //
17 
18 #include <MM_SPort_Drop.h>
19 
20 namespace MM_SPort_Drop {
21 
23 
24 MM_SPort_Drop::~MM_SPort_Drop(){
25  portCount.clear();
26 }
27 
28 void MM_SPort_Drop::pduInsertered(RMTQueue * q, RMTPort * p) {
29  portCount[p]++;
30 }
31 
32 void MM_SPort_Drop::pduDropped(RMTQueue * q, const cPacket * s, RMTPort * p) {
33  portCount[p]--;
34 }
35 
36 void MM_SPort_Drop::pduReleased(RMTQueue * q, RMTPort * p) {
37  portCount[p]--;
38 }
39 
40 void MM_SPort_Drop::queueCreated(RMTQueue * q, RMTPort * p) {
41  portCount[p] = 0;
42 }
43 
44 double MM_SPort_Drop::getDropProbability(RMTQueue * q, RMTPort * p) {
45  return (q->getMaxLength() < portCount[p])? 1.0 : 0.0;
46 }
47 
48 }
int getMaxLength() const
Definition: RMTQueue.cc:215
Define_Module(MM_SPort_Drop)