QuISP
Loading...
Searching...
No Matches
QNicStore.h
Go to the documentation of this file.
1#pragma once
2
5#include <memory>
6#include <vector>
9#include "IQNicStore.h"
10
12
13using UniqueQNicRecord = std::unique_ptr<quisp::modules::qnic_record::IQNicRecord>;
15
16using QNicIndex = int;
17
18class QNicStore : public IQNicStore {
19 public:
20 QNicStore(utils::ComponentProvider& provider, int number_of_emitter_qnics, int number_of_receiver_qnics, int number_of_passive_receiver_qnics, Logger::ILogger* logger = nullptr);
22 int countNumFreeQubits(QNIC_type type, int qnic_index) override;
23 int takeFreeQubitIndex(QNIC_type type, int qnic_index) override;
24 void setQubitBusy(QNIC_type type, int qnic_index, int qubit_index, bool is_busy) override;
25 qrsa::IQubitRecord* getQubitRecord(QNIC_type type, int qnic_index, int qubit_index) override;
26
27 protected:
28 UniqueQNicRecord& getQNic(QNIC_type type, int qnic_index);
29 std::map<QNIC_type, std::vector<UniqueQNicRecord>> qnics;
31};
32
33} // namespace quisp::modules::qnic_store
Interface of Logger class. Logger class that inherits ILogger is responsible for logging simulation r...
Definition ILogger.h:22
Definition QNicRecord.h:15
The QNicStore interface.
Definition IQNicStore.h:14
Definition QNicStore.h:18
std::map< QNIC_type, std::vector< UniqueQNicRecord > > qnics
Definition QNicStore.h:29
UniqueQNicRecord & getQNic(QNIC_type type, int qnic_index)
Definition QNicStore.cc:47
int countNumFreeQubits(QNIC_type type, int qnic_index) override
Definition QNicStore.cc:28
int takeFreeQubitIndex(QNIC_type type, int qnic_index) override
Definition QNicStore.cc:33
QNicStore(utils::ComponentProvider &provider, int number_of_emitter_qnics, int number_of_receiver_qnics, int number_of_passive_receiver_qnics, Logger::ILogger *logger=nullptr)
Definition QNicStore.cc:10
utils::ComponentProvider & provider
Definition QNicStore.h:30
~QNicStore()
Definition QNicStore.h:21
void setQubitBusy(QNIC_type type, int qnic_index, int qubit_index, bool is_busy) override
Definition QNicStore.cc:38
qrsa::IQubitRecord * getQubitRecord(QNIC_type type, int qnic_index, int qubit_index) override
Definition QNicStore.cc:42
The QubitRecord interface.
Definition IQubitRecord.h:17
ComponentProvider class provides a way to access other quisp other modules.
Definition ComponentProvider.h:22
Definition IQNicStore.h:6
std::unique_ptr< quisp::modules::qnic_record::IQNicRecord > UniqueQNicRecord
Definition QNicStore.h:13
QNIC_type
Definition QNIC.h:18