QuISP
Loading...
Searching...
No Matches
IHardwareMonitor.h
Go to the documentation of this file.
1#pragma once
2
3#include <omnetpp.h>
4#include <memory>
5
6#include "modules/QNIC.h"
7
8using namespace omnetpp;
9
10namespace quisp::modules {
12using quisp::modules::QNIC_N;
13
16 int neighborQNode_address; // QNode (May be across SDPC or BSA node)
17};
18
25
31
32const ConnectionSetupInfo NULL_CONNECTION_SETUP_INFO{.qnic =
33 {
34 .type = QNIC_N,
35 .index = -1,
36 },
37 .neighbor_address = -1,
38 .quantum_link_cost = -1};
39
48
56
62
63// qnic_index -> InterfaceInfo
64using NeighborTable = std::map<int, InterfaceInfo>;
65
66// basis combination -> raw output count
67// e.g.
68// "XX" -> {plus_plus = 56, plus_minus = 55, minus_plus = 50, minus_minus = 50},
69// "XY" -> {....
70using RawData = std::map<int, std::map<std::string, OutputCount>>; // qnic -> partner . basis string . output
71using LinkCostMap = std::map<int, LinkCost>;
72using TomographyOutcomeTable = std::map<int, std::map<int, TomographyOutcome>>; // partner -> <count_id, outcome>
73
74class IHardwareMonitor : public cSimpleModule {
75 public:
76 virtual ~IHardwareMonitor(){};
77 virtual int getQnicNumQubits(int qnic_index, QNIC_type qnic_type) = 0;
78 virtual std::unique_ptr<InterfaceInfo> findInterfaceByNeighborAddr(int neighbor_address) = 0;
79 virtual std::unique_ptr<ConnectionSetupInfo> findConnectionInfoByQnicAddr(int qnic_address) = 0;
80};
81} // namespace quisp::modules
QNIC.
Definition IHardwareMonitor.h:74
virtual int getQnicNumQubits(int qnic_index, QNIC_type qnic_type)=0
virtual std::unique_ptr< InterfaceInfo > findInterfaceByNeighborAddr(int neighbor_address)=0
virtual ~IHardwareMonitor()
Definition IHardwareMonitor.h:76
virtual std::unique_ptr< ConnectionSetupInfo > findConnectionInfoByQnicAddr(int qnic_address)=0
Definition Application.cc:16
std::map< int, std::map< int, TomographyOutcome > > TomographyOutcomeTable
Definition IHardwareMonitor.h:72
std::map< int, InterfaceInfo > NeighborTable
Definition IHardwareMonitor.h:64
std::map< int, std::map< std::string, OutputCount > > RawData
Definition IHardwareMonitor.h:70
std::map< int, LinkCost > LinkCostMap
Definition IHardwareMonitor.h:71
QNIC_type
Definition QNIC.h:18
@ QNIC_N
Definition QNIC.h:22
Definition IHardwareMonitor.h:26
QNIC qnic
Definition IHardwareMonitor.h:27
int quantum_link_cost
Definition IHardwareMonitor.h:29
int neighbor_address
Definition IHardwareMonitor.h:28
Definition IHardwareMonitor.h:19
int neighborQNode_address
Definition IHardwareMonitor.h:23
double link_cost
Definition IHardwareMonitor.h:22
QNIC qnic
Definition IHardwareMonitor.h:20
int buffer_size
Definition IHardwareMonitor.h:21
Definition IHardwareMonitor.h:14
int neighborQNode_address
Definition IHardwareMonitor.h:16
int address
Definition IHardwareMonitor.h:15
Definition IHardwareMonitor.h:49
int total_count
Definition IHardwareMonitor.h:50
int plus_minus
Definition IHardwareMonitor.h:52
int minus_minus
Definition IHardwareMonitor.h:54
int minus_plus
Definition IHardwareMonitor.h:53
int plus_plus
Definition IHardwareMonitor.h:51
Definition QNIC.h:37
Definition IHardwareMonitor.h:40
char my_basis
Definition IHardwareMonitor.h:41
bool my_output_is_plus
Definition IHardwareMonitor.h:42
bool partner_output_is_plus
Definition IHardwareMonitor.h:45
char partner_basis
Definition IHardwareMonitor.h:44
char partner_GOD_clean
Definition IHardwareMonitor.h:46
char my_GOD_clean
Definition IHardwareMonitor.h:43