18#include "ns3/packet.h"
19#include "ns3/simulator.h"
21#include "ns3/boolean.h"
22#include "ns3/double.h"
23#include "ns3/uinteger.h"
58 std::vector<std::pair<uint32_t, uint32_t> >
row;
87 std::vector<std::pair<uint32_t, uint32_t> >
row;
133 if(
el.first == nodeId)
158 if(
it->first ==
rc2){
164 if(
it->first ==
rc1){
179 if(
it->first ==
rc2){
184 if(
it->first ==
rc1){
194 std::vector< std::pair<uint32_t, uint32_t> >
196 std::vector< std::vector<std::pair<uint32_t, uint32_t> > >
adjList,
199 std::vector<std::pair<uint32_t, uint32_t> >
dist;
203 for(
int i = 0;
i < n;
i++)
211 std::priority_queue<std::pair<int, int>, std::vector< std::pair<int, int> >, std::greater<std::pair<int, int> > >
pq;
214 pq.emplace(
int(start), 0);
221 int u =
pq.top().first;
253 std::vector<std::pair<uint32_t, uint32_t> >
dist;
256 el.second->ClearRoutingTable();
263 std::vector<uint32_t> path;
Ipv4 addresses are stored in host order in this class.
A base class which provides memory management and object aggregation.
Smart pointer class similar to boost::intrusive_ptr.
std::vector< std::vector< std::pair< uint32_t, uint32_t > > > m_adjList
std::map< uint32_t, Ptr< QKDControl > > m_controllers
void LinkDown(uint32_t source, uint32_t destination)
~QCenController() override
uint32_t GetColumn(uint32_t nodeId)
static TypeId GetTypeId()
void LinkUp(uint32_t source, uint32_t destination)
std::vector< Ptr< QKDControl > > m_controllerList
List of all controllers.
void SetNode(Ptr< Node > node)
std::vector< std::pair< uint32_t, uint32_t > > DijkstraSP(std::vector< std::vector< std::pair< uint32_t, uint32_t > > > adjList, uint32_t start)
void PopulateRoutingTables()
void RegisterDControllers(std::vector< Ptr< QKDControl > > controllers)
uint32_t ReverseColumn(uint32_t position)
Introspection did not find any typical Config paths.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_LOG_ERROR(msg)
Use NS_LOG to output a message of level LOG_ERROR.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.