QuISP
Loading...
Searching...
No Matches
IQuantumBackend.h
Go to the documentation of this file.
1#pragma once
2#include <omnetpp/simtime_t.h>
3#include <memory>
4#include "IConfiguration.h"
5#include "IQubitId.h"
6
8
9using omnetpp::SimTime;
10using omnetpp::SimTimeUnit;
11class IQubit;
12
20 public:
22 virtual ~IQuantumBackend(){};
23
24 virtual IQubit* createQubit(const IQubitId* id, std::unique_ptr<IConfiguration> conf) = 0;
25 virtual IQubit* createQubit(const IQubitId* id) = 0;
27 virtual IQubit* getQubit(const IQubitId* id) = 0;
28 virtual IQubit* getShortLiveQubit() = 0;
29 virtual void returnToPool(IQubit*) = 0;
30 virtual void deleteQubit(const IQubitId* id) = 0;
31 virtual std::unique_ptr<IConfiguration> getDefaultConfiguration() const = 0;
32 virtual const SimTime& getSimTime() = 0;
33 virtual void setSimTime(SimTime time) = 0;
34
35 protected:
36};
37
38} // namespace quisp::backends::abstract
The abstract interface for a quantum backend.
Definition IQuantumBackend.h:19
virtual IQubit * getQubit(const IQubitId *id)=0
IQuantumBackend()
Definition IQuantumBackend.h:21
virtual void setSimTime(SimTime time)=0
virtual ~IQuantumBackend()
Definition IQuantumBackend.h:22
virtual void deleteQubit(const IQubitId *id)=0
virtual std::unique_ptr< IConfiguration > getDefaultConfiguration() const =0
virtual IQubit * createQubit(const IQubitId *id)=0
virtual const SimTime & getSimTime()=0
virtual IQubit * createQubit(const IQubitId *id, std::unique_ptr< IConfiguration > conf)=0
Definition IQubit.h:30
a key to identify a qubit in a backend.
Definition IQubitId.h:14
Definition IConfiguration.h:4