2#include <nlohmann/json.hpp>
52 Action(std::vector<int> partner_addr);
virtual json serialize_json()=0
virtual ~Action()
Definition Action.h:53
Action()
Definition Action.h:50
int partner_address
Definition Action.h:55
std::vector< QnicInterface > qnic_interfaces
Definition Action.h:54
virtual void deserialize_json(json serialized)=0
EntanglementSwapping(json serialized)
Definition Action.h:72
void deserialize_json(json serialized) override
Definition Action.cc:56
int shared_rule_tag
Definition Action.h:75
json serialize_json() override
Definition Action.cc:47
std::vector< QnicInterface > remote_qnic_interfaces
Definition Action.h:74
int shared_rule_tag
Definition Action.h:84
void deserialize_json(json serialized) override
Definition Action.cc:75
json serialize_json() override
Definition Action.cc:67
PurificationCorrelation(json serialized)
Definition Action.h:82
void deserialize_json(json serialized) override
Definition Action.cc:30
json serialize_json() override
Definition Action.cc:21
PurType purification_type
Definition Action.h:64
int shared_rule_tag
Definition Action.h:65
Purification(json serialized)
Definition Action.h:62
void deserialize_json(json serialized) override
Definition Action.cc:93
json serialize_json() override
Definition Action.cc:85
SwappingCorrection(json serialized)
Definition Action.h:91
int shared_rule_tag
Definition Action.h:93
simtime_t start_time
Definition Action.h:102
int num_measurement
Definition Action.h:103
json serialize_json() override
Definition Action.cc:103
void deserialize_json(json serialized) override
Definition Action.cc:112
Tomography(json serialized)
Definition Action.h:100
int owner_address
Definition Action.h:104
QNIC_type
Definition QNIC.h:18
const QnicInterface & qi
Definition Action.h:45
PurType
Definition Action.h:15
@ SINGLE_SELECTION_X_PURIFICATION
Single purification for X error.
Definition Action.h:17
@ DOUBLE_SELECTION_XZ_PURIFICATION
Double Selection and Dual Action for both X and Z errors.
Definition Action.h:24
@ DOUBLE_SELECTION_ZX_PURIFICATION
Inverse Double Selection and Dual Action for both X and Z errors.
Definition Action.h:25
@ DOUBLE_SELECTION_X_PURIFICATION
Double selection XZ and single action (DoubleSelectionAction) for X error.
Definition Action.h:22
@ SINGLE_SELECTION_Y_PURIFICATION
Definition Action.h:19
@ INVALID
Invalid purification type.
Definition Action.h:16
@ DOUBLE_SELECTION_X_PURIFICATION_SINGLE_SELECTION_Z_PURIFICATION
Different type of Double Selection and Dual Action for both X and Z errors.
Definition Action.h:26
@ DOUBLE_SELECTION_Z_PURIFICATION
Inverse Double selection XZ and single action(DoubleSelectionAction) for X error.
Definition Action.h:23
@ SINGLE_SELECTION_ZX_PURIFICATION
Double inverse purification both for X and Z errors.
Definition Action.h:21
@ SINGLE_SELECTION_Z_PURIFICATION
Single purification for Z error.
Definition Action.h:18
@ SINGLE_SELECTION_XZ_PURIFICATION
Double purification both for X and Z errors.
Definition Action.h:20
@ DOUBLE_SELECTION_Z_PURIFICATION_SINGLE_SELECTION_X_PURIFICATION
Different type of Inverse Double Selection and Dual Action for both X and Z errors.
Definition Action.h:27
NLOHMANN_JSON_SERIALIZE_ENUM(PurType, { {INVALID, "INVALID"}, {SINGLE_SELECTION_X_PURIFICATION, "SINGLE_SELECTION_X_PURIFICATION"}, {SINGLE_SELECTION_Z_PURIFICATION, "SINGLE_SELECTION_Z_PURIFICATION"}, {SINGLE_SELECTION_Y_PURIFICATION, "SINGLE_SELECTION_Y_PURIFICATION"}, {SINGLE_SELECTION_XZ_PURIFICATION, "SINGLE_SELECTION_XZ_PURIFICATION"}, {SINGLE_SELECTION_ZX_PURIFICATION, "SINGLE_SELECTION_ZX_PURIFICATION"}, {DOUBLE_SELECTION_X_PURIFICATION, "DOUBLE_SELECTION_X_PURIFICATION"}, {DOUBLE_SELECTION_Z_PURIFICATION, "DOUBLE_SELECTION_Z_PURIFICATION"}, {DOUBLE_SELECTION_XZ_PURIFICATION, "DOUBLE_SELECTION_XZ_PURIFICATION"}, {DOUBLE_SELECTION_ZX_PURIFICATION, "DOUBLE_SELECTION_ZX_PURIFICATION"}, {DOUBLE_SELECTION_X_PURIFICATION_SINGLE_SELECTION_Z_PURIFICATION, "DOUBLE_SELECTION_X_PURIFICATION_SINGLE_SELECTION_Z_PURIFICATION"}, {DOUBLE_SELECTION_Z_PURIFICATION_SINGLE_SELECTION_X_PURIFICATION, "DOUBLE_SELECTION_Z_PURIFICATION_SINGLE_SELECTION_X_PURIFICATION"}, }) inline void to_json(json &j
void from_json(const json &j, QnicInterface &qi)
Definition Action.h:47
int partner_addr
Definition Action.h:12