Program Listing for File func_graph.h

Return to documentation for file (include/core/api/ir/func_graph.h)

#ifndef MINDSPORE_CORE_API_IR_FUNC_GRAPH_H_
#define MINDSPORE_CORE_API_IR_FUNC_GRAPH_H_

#include <vector>
#include <memory>
#include <string>

#include "utils/visible.h"
#include "api/ir/func_graph_manager.h"

namespace mindspore::deprecated::api {
class MS_CORE_API FuncGraph {
 public:
  FuncGraph() = default;

  virtual ~FuncGraph() = default;

  virtual const std::vector<AnfNodePtr> get_inputs() const = 0;

  virtual const std::vector<AnfNodePtr> &parameters() const = 0;

  virtual void add_parameter(const ParameterPtr &p) = 0;

  virtual ParameterPtr add_parameter() = 0;

  virtual AnfNodePtr output() const = 0;

  virtual CNodePtr get_return() const = 0;

  virtual void set_output(const AnfNodePtr &value, bool force_new_ret = false) = 0;

  virtual void set_return(const CNodePtr &cnode) = 0;

  virtual CNodePtr NewCNode(const std::vector<AnfNodePtr> &inputs = std::vector<AnfNodePtr>()) = 0;

  virtual CNodePtr NewCNode(const PrimitivePtr &primitive, const std::vector<AnfNodePtr> &prim_inputs) = 0;

  virtual const AnfNodeSet &nodes() const = 0;

  virtual bool has_attr(const std::string &key) const = 0;

  virtual ValuePtr get_attr(const std::string &key) const = 0;

  virtual void set_attr(const std::string &key, const ValuePtr &value) = 0;

  virtual FuncGraphManagerPtr get_manager() const = 0;

  static std::vector<AnfNodePtr> TopoSort(const AnfNodePtr &node);

  static FuncGraphPtr Create();

  //
  static AnfNodePtr MakeValueNode(const FuncGraphPtr &func_graph);

  //
  static FuncGraphPtr GetFuncGraphFromAnfNode(const AnfNodePtr &input);
};

#ifndef USE_DEPRECATED_API
#define USE_DEPRECATED_API
namespace mindspore {
namespace api = deprecated::api;
}
#endif
}  // namespace mindspore::deprecated::api
#endif  // MINDSPORE_CORE_API_IR_FUNC_GRAPH_H_