RINASim  October 2016
Documentation of framework for OMNeT++
IntTSimpleRouting.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <map>
5 
6 #include <IntRouting.h>
7 
8 #include "common/nhLMetric.h"
10 
11 using namespace std;
12 
13 class updateI {};
14 
15 template<class T>
17 protected:
19 
20 public:
21  virtual void setInfinite(const T & inf) { infinite = inf; }
22 
23  //Process a Routing Update, return true => inform FWDG of the update
24  virtual bool processUpdate(IntRoutingUpdate * update) = 0;
25 
26  //Modules connection
27  virtual void chSendUpdate(common_Routing::Routing_Update * update, const Address & dst, common_Routing::Routing_Alg_I *) = 0;
28  virtual void chScheduleAt(common_Routing::Routing_Alg_I * update, const simtime_t & t) = 0;
29 
30 
31  //Flow inserted/removed
32  virtual void insertFlow(const Address &addr, const string &dst, const string& qos, const T &metric) = 0;
33  virtual void removeFlow(const Address &addr, const string &dst, const string& qos) = 0;
34 
35  //Get Changes // QoS // Dst // <metric, next hops>
36  virtual map<string, map<string, common_GraphCL::nhLMetric<T> > > getChanges() = 0;
37  virtual map<string, map<string, common_GraphCL::nhLMetric<T> > > getAll() = 0;
38 
39 protected:
40  // Called after initialize
41  virtual void onPolicyInit() = 0;
42 };
virtual void setInfinite(const T &inf)
Address class holds IPC Process identification.
Definition: Address.h:42