class QPanda::AdjacentQGates::AbstractTraversalStatueInterface
class AbstractTraversalStatueInterface
{
public:
// methods
virtual void handle_QGate(
std::shared_ptr<AbstractQGateNode> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void handle_QMeasure(
std::shared_ptr<AbstractQuantumMeasure> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void handle_QReset(
std::shared_ptr<AbstractQuantumReset> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void on_enter_QIf(
std::shared_ptr<AbstractControlFlowNode> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void on_leave_QIf(
std::shared_ptr<AbstractControlFlowNode> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void on_enter_QWhile(
std::shared_ptr<AbstractControlFlowNode> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void on_leave_QWhile(
std::shared_ptr<AbstractControlFlowNode> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual void handle_classical_prog(
std::shared_ptr<AbstractClassicalProg> cur_node,
std::shared_ptr<QNode> parent_node,
QCircuitParam& cir_param,
NodeIter& cur_node_iter
);
virtual TraversalStatue get_statue() const = 0;
};