RINASim  October 2016
Documentation of framework for OMNeT++
IterativeScheduling.h
Go to the documentation of this file.
1 //
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU Lesser General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU Lesser General Public License for more details.
11 //
12 // You should have received a copy of the GNU Lesser General Public License
13 // along with this program. If not, see http://www.gnu.org/licenses/.
14 //
15 
16 #pragma once
17 
18 #include <omnetpp.h>
19 #include "RMTSchedulingBase.h"
20 #include <map>
21 #include <set>
22 
23 namespace IterativeScheduling {
24 
25 using namespace std;
26 
27 
29  public:
30  void addQueue(RMTPort* port, RMTQueue * q);
31  void removeQueue(RMTPort* port, RMTQueue * q);
32 
33  void finish();
34  private:
35  void processQueues(RMTPort* port, RMTQueueType direction);
36 
37  protected:
38  map<RMTPort*, set<RMTQueue *> > queues;
39  map<RMTPort*, set<RMTQueue *>::iterator> lastQ;
40  };
41 }
42 
map< RMTPort *, set< RMTQueue * >::iterator > lastQ
map< RMTPort *, set< RMTQueue * > > queues