13#ifndef CONFLICTGRAPH_H
14#define CONFLICTGRAPH_H
16#include "simu5g/stack/mac/LteMacEnb.h"
17#include "simu5g/common/cellInfo/CellInfo.h"
21using namespace omnetpp;
37 bool operator<(
const CGVertex& v1)
const
41 if ((srcId == v1.srcId) && (dstId < v1.dstId))
46 bool operator==(
const CGVertex& v1)
const
48 return (srcId == v1.srcId) && (dstId == v1.dstId);
56 bool isMulticast()
const
63inline std::ostream& operator<<(std::ostream& os,
const CGVertex& v)
65 os <<
"src=" << v.srcId <<
" dst=" << v.dstId;
69typedef std::map<CGVertex, std::map<CGVertex, bool>> CGMatrix;
86 opp_component_ptr<Binder> binder_;
89 opp_component_ptr<LteMacEnb> macEnb_;
92 opp_component_ptr<CellInfo> cellInfo_;
95 CGMatrix conflictGraph_;
102 virtual void clearConflictGraph();
104 virtual void findVertices(std::vector<CGVertex>& vertices) = 0;
105 virtual void findEdges(
const std::vector<CGVertex>& vertices) = 0;
109 ConflictGraph(
Binder *binder, LteMacEnb *macEnb,
bool reuseD2D,
bool reuseD2DMulti);
111 virtual ~ConflictGraph() {}
114 virtual void computeConflictGraph();
117 virtual void printConflictGraph();
119 const CGMatrix *getConflictMatrix()
const {
return &conflictGraph_; }
There is one CellInfo module for each eNB (thus one for each cell). Keeps cross-layer information abo...
Definition CellInfo.h:30
Definition AlertReceiver.h:24
constexpr MacNodeId NODEID_NONE
MAC node ID.
Definition LteTypes.h:54