.. index:: pair: class; QPanda::AdjacentQGates .. _doxid-class_q_panda_1_1_adjacent_q_gates: class QPanda::AdjacentQGates ============================ .. toctree:: :hidden: class_QPanda_AdjacentQGates_AbstractTraversalStatueInterface.rst class_QPanda_AdjacentQGates_FoundAllAdjacentNode.rst class_QPanda_AdjacentQGates_HaveNotFoundTargetNode.rst class_QPanda_AdjacentQGates_ToFindBackNode.rst Get information about adjacent nodes. .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class AdjacentQGates: public :ref:`QPanda::TraverseByNodeIter` { public: // classes class :ref:`AbstractTraversalStatueInterface`; class :ref:`FoundAllAdjacentNode`; class :ref:`HaveNotFoundTargetNode`; class :ref:`ToFindBackNode`; // construction :target:`AdjacentQGates`( :ref:`QProg` prog, :ref:`NodeIter`& nodeItr ); // methods virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :target:`traverse_qprog`(); void :target:`update_front_iter`( const :ref:`NodeIter`& itr, const :ref:`QCircuitParam`& cir_param ); void :target:`update_back_iter`( const :ref:`NodeIter`& itr, const :ref:`QCircuitParam`& cir_param ); :ref:`GateType` :target:`get_node_ype`(const :ref:`NodeIter`& ter); std::string :target:`get_node_type_str`(const :ref:`NodeIter`& ter); std::string :target:`get_back_node_type_str`(); std::string :target:`get_front_node_type_str`(); bool :target:`is_valid_node_type`(const :ref:`NodeIter`& itr); bool :target:`is_valid_node_type`(const :ref:`NodeType` t); const :ref:`NodeInfo`& :target:`get_front_node`(); const :ref:`NodeInfo`& :target:`get_back_node`(); void :target:`change_traversal_statue`(AbstractTraversalStatueInterface* s); static bool :target:`is_sub_prog_node`(const std::shared_ptr<:ref:`QNode`>& node); static bool :target:`is_flow_ctrl_node`(const std::shared_ptr<:ref:`QNode`>& node); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, Args&&... func_args ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQGateNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumMeasure`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumReset`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractClassicalProg`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractControlFlowNode`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumCircuit`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`execute`( std::shared_ptr<:ref:`AbstractQuantumProgram`> cur_node, std::shared_ptr<:ref:`QNode`> parent_node, :ref:`QCircuitParam`& cir_param, :ref:`NodeIter`& cur_node_iter ); virtual void :ref:`traverse_qprog`(:ref:`QProg` prog);