QuISP
Loading...
Searching...
No Matches
quisp::runtime::Runtime::ICallBack Struct Referenceabstract

ICallBack is an interface for the callback of the Runtime. More...

#include <Runtime.h>

Inheritance diagram for quisp::runtime::Runtime::ICallBack:

Public Member Functions

virtual ~ICallBack ()
 
virtual void freeAndResetQubit (IQubitRecord *)=0
 
virtual bool isQubitLocked (IQubitRecord *const)=0
 
virtual void lockQubit (IQubitRecord *const, unsigned long rs_id, int rule_id, int action_index)=0
 
virtual int getActionIndex (IQubitRecord *const)=0
 
virtual MeasurementOutcome measureQubitRandomly (IQubitRecord *)=0
 
virtual MeasurementOutcome measureQubitX (IQubitRecord *)=0
 
virtual MeasurementOutcome measureQubitZ (IQubitRecord *)=0
 
virtual MeasurementOutcome measureQubitY (IQubitRecord *)=0
 
virtual void gateX (IQubitRecord *)=0
 
virtual void gateZ (IQubitRecord *)=0
 
virtual void gateY (IQubitRecord *)=0
 
virtual void gateCNOT (IQubitRecord *control_qubit_rec, IQubitRecord *target_qubit_rec)=0
 
virtual int purifyX (IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
 
virtual int purifyZ (IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
 
virtual int purifyY (IQubitRecord *qubit_rec, IQubitRecord *trash_qubit_rec)=0
 
virtual void sendLinkTomographyResult (const unsigned long ruleset_id, const Rule &rule, const int action_index, const QNodeAddr partner_addr, int count, MeasurementOutcome outcome, int max_count, Time start_time)=0
 
virtual void sendPurificationResult (const unsigned long ruleset_id, const QNodeAddr partner_addr, const int shared_rule_tag, const int sequence_number, const int measurement_result, PurType protocol)=0
 
virtual void sendSwappingResult (const unsigned long ruleset_id, const QNodeAddr partner_addr, const QNodeAddr new_partner_addr, const int shared_rule_tag, const int sequence_number, const int frame_correction)=0
 
virtual std::string getNodeInfo ()
 

Detailed Description

ICallBack is an interface for the callback of the Runtime.

This class is for dependency injection to decouple the Runtime and RuleEngine. During the RuleSet execution, The Runtime uses this interface to access RuleEngine for qubit operations and classical communications. The actual implementation of this class is in RuleEngine.

Constructor & Destructor Documentation

◆ ~ICallBack()

virtual quisp::runtime::Runtime::ICallBack::~ICallBack ( )
inlinevirtual

Member Function Documentation

◆ freeAndResetQubit()

virtual void quisp::runtime::Runtime::ICallBack::freeAndResetQubit ( IQubitRecord * )
pure virtual

◆ gateCNOT()

virtual void quisp::runtime::Runtime::ICallBack::gateCNOT ( IQubitRecord * control_qubit_rec,
IQubitRecord * target_qubit_rec )
pure virtual

◆ gateX()

virtual void quisp::runtime::Runtime::ICallBack::gateX ( IQubitRecord * )
pure virtual

◆ gateY()

virtual void quisp::runtime::Runtime::ICallBack::gateY ( IQubitRecord * )
pure virtual

◆ gateZ()

virtual void quisp::runtime::Runtime::ICallBack::gateZ ( IQubitRecord * )
pure virtual

◆ getActionIndex()

virtual int quisp::runtime::Runtime::ICallBack::getActionIndex ( IQubitRecord * const )
pure virtual

◆ getNodeInfo()

virtual std::string quisp::runtime::Runtime::ICallBack::getNodeInfo ( )
inlinevirtual

◆ isQubitLocked()

virtual bool quisp::runtime::Runtime::ICallBack::isQubitLocked ( IQubitRecord * const )
pure virtual

◆ lockQubit()

virtual void quisp::runtime::Runtime::ICallBack::lockQubit ( IQubitRecord * const ,
unsigned long rs_id,
int rule_id,
int action_index )
pure virtual

◆ measureQubitRandomly()

virtual MeasurementOutcome quisp::runtime::Runtime::ICallBack::measureQubitRandomly ( IQubitRecord * )
pure virtual

◆ measureQubitX()

virtual MeasurementOutcome quisp::runtime::Runtime::ICallBack::measureQubitX ( IQubitRecord * )
pure virtual

◆ measureQubitY()

virtual MeasurementOutcome quisp::runtime::Runtime::ICallBack::measureQubitY ( IQubitRecord * )
pure virtual

◆ measureQubitZ()

virtual MeasurementOutcome quisp::runtime::Runtime::ICallBack::measureQubitZ ( IQubitRecord * )
pure virtual

◆ purifyX()

virtual int quisp::runtime::Runtime::ICallBack::purifyX ( IQubitRecord * qubit_rec,
IQubitRecord * trash_qubit_rec )
pure virtual

◆ purifyY()

virtual int quisp::runtime::Runtime::ICallBack::purifyY ( IQubitRecord * qubit_rec,
IQubitRecord * trash_qubit_rec )
pure virtual

◆ purifyZ()

virtual int quisp::runtime::Runtime::ICallBack::purifyZ ( IQubitRecord * qubit_rec,
IQubitRecord * trash_qubit_rec )
pure virtual

◆ sendLinkTomographyResult()

virtual void quisp::runtime::Runtime::ICallBack::sendLinkTomographyResult ( const unsigned long ruleset_id,
const Rule & rule,
const int action_index,
const QNodeAddr partner_addr,
int count,
MeasurementOutcome outcome,
int max_count,
Time start_time )
pure virtual

◆ sendPurificationResult()

virtual void quisp::runtime::Runtime::ICallBack::sendPurificationResult ( const unsigned long ruleset_id,
const QNodeAddr partner_addr,
const int shared_rule_tag,
const int sequence_number,
const int measurement_result,
PurType protocol )
pure virtual

◆ sendSwappingResult()

virtual void quisp::runtime::Runtime::ICallBack::sendSwappingResult ( const unsigned long ruleset_id,
const QNodeAddr partner_addr,
const QNodeAddr new_partner_addr,
const int shared_rule_tag,
const int sequence_number,
const int frame_correction )
pure virtual

The documentation for this struct was generated from the following file: