21 #ifndef QKD_CONNECTION_REGISTER_H
22 #define QKD_CONNECTION_REGISTER_H
24 #include "ns3/event-id.h"
26 #include "ns3/data-rate.h"
27 #include "ns3/traced-callback.h"
28 #include "ns3/output-stream-wrapper.h"
29 #include "ns3/packet.h"
30 #include "ns3/object.h"
31 #include "ns3/traced-value.h"
32 #include "ns3/trace-source-accessor.h"
34 #include "ns3/core-module.h"
37 #include "ns3/qkd-key-association-link-entry.h"
38 #include "ns3/qkd-application-entry.h"
46 class QKDKeyAssociationLinkEntry;
47 class QKDApplicationEntry;
A base class which provides memory management and object aggregation.
Introspection did not find any typical Config paths.
ConnectionType
The connection types.
QKDConnectionRegister is a class used to keep details about distant QKD links and applications.
uint32_t GetNumberOfKeyAssociations()
\briet Get the number of the key associations present in the associations table.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID for the instance.
static TypeId GetTypeId(void)
Get the type ID.
bool LookupKeyAssociationByApplicationId(UUID saeId, QKDKeyAssociationLinkEntry &rt)
Lookup the key association entry with the application identifier (UUID).
QKDConnectionRegister()
Constructor.
void PrintListOfAllKeyAssociations()
Print the key association list.
void Print(Ptr< OutputStreamWrapper > stream) const
Print the location table.
bool AddApplicationEntry(QKDApplicationEntry &r)
Add the QKD application entry if it doesn't yet exist in the table.
uint32_t GetNumberOfApplications()
Get the number of the applications present in the applications table.
bool LookupKeyAssociationByDestinationNodeId(uint32_t srcNodeId, uint32_t dstNodeId, QKDKeyAssociationLinkEntry &rt)
Lookup the key association entry with the source and destination identifiers.
bool LookupKeyAssociationBySaeId(UUID id, QKDKeyAssociationLinkEntry &rt)
Lookup the key association entry with the application identifier (UUID).
std::map< UUID, QKDApplicationEntry > m_applications
The list of applications.
bool SaveKeyAssociation(QKDKeyAssociationLinkEntry &rt)
Store the key association entry.
bool LookupKeyAssociationById(UUID keyAssociationId, QKDKeyAssociationLinkEntry &rt)
Lookup the key association entry with destination node identifier.
bool LookupApplication(UUID dstSaeId, QKDApplicationEntry &rt)
Lookup the application entry with the destination (receiver) application identifier (UUID).
std::map< uint32_t, QKDKeyAssociationLinkEntry > m_keyAssociations
The list of key associations.
bool DeleteKeyAssociationLinkEntry(uint32_t dst)
Delete the key association table entry with a given destination, if it exists.
bool AssignKeyAssociation(UUID srcSaeId, UUID dstSaeId, std::string type, uint32_t priority, QKDKeyAssociationLinkEntry &rt)
Assign the key association.
bool DeleteApplicationEntry(UUID dst)
Delete the application entry, if it exists.
void UpdateQKDApplications(UUID keyAssociationId, UUID saeId)
Update the key association list of QKD applications.
bool LookupApplicationBySaeIDsAndType(UUID srcSaeId, UUID dstSaeId, QKDApplicationEntry::ConnectionType type, QKDApplicationEntry &rt)
Lookup the application entry with the application identifiers and the connection type.
bool AddKeyAssociationEntry(QKDKeyAssociationLinkEntry &r)
Add the key association entry if it doesn't yet exist in the table.
Introspection did not find any typical Config paths.
a unique identifier for an interface.
Universally unique identifier (UUID)
Every class exported by the ns3 library is enclosed in the ns3 namespace.