Class CeresGraph
  
  
  
    Inheritance
    object
    CeresGraph
      
   
  
    Implements
    IDisposableUnregister
   
  
  Assembly: cs.temp.dll.dll
  Syntax
  
    public class CeresGraph : IDisposable, IDisposableUnregister
   
  Constructors
  
  CeresGraph()
  
  
  Declaration
  
  
  CeresGraph(CeresGraphData)
  
  
  Declaration
  
    public CeresGraph(CeresGraphData graphData)
   
  Parameters
  
  Fields
  nodes
  
  
  Declaration
  
    public List<CeresNode> nodes
   
  Field Value
  
  SubGraphSlots
  
  
  Declaration
  
    public CeresSubGraphSlot[] SubGraphSlots
   
  Field Value
  
  variables
  
  
  Declaration
  
    public List<SharedVariable> variables
   
  Field Value
  
  Properties
  
  BlackBoard
  Exposed blackboard for data exchange
 
  
  Declaration
  
    public BlackBoard BlackBoard { get; }
   
  Property Value
  
  Methods
  
  AddSubGraphSlot<TGraph>(CeresSubGraphSlot)
  Try to add a subGraph slot with specific type validation
 
  
  Declaration
  
    public bool AddSubGraphSlot<TGraph>(CeresSubGraphSlot slot) where TGraph : CeresGraph
   
  Parameters
  
  Returns
  
  Type Parameters
  
  
  CollectDependencyPath(CeresGraph)
  
  
  Declaration
  
    protected static void CollectDependencyPath(CeresGraph graph)
   
  Parameters
  
  
  Compile(CeresGraphCompiler)
  Compile graph just in time
 
  
  Declaration
  
    public virtual void Compile(CeresGraphCompiler compiler)
   
  Parameters
  
  
  CompileNodes(CeresGraphCompiler)
  
  
  Declaration
  
    protected static void CompileNodes(CeresGraphCompiler compiler)
   
  Parameters
  
  
  Dispose()
  
  
  Declaration
  
    public virtual void Dispose()
   
  
  FindNode(string)
  
  
  Declaration
  
    public CeresNode FindNode(string guid)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | string | 
        guid | 
         | 
      
    
  
  Returns
  
  
  FindNode<TNode>(string)
  Find node with specific type by guid
 
  
  Declaration
  
    public TNode FindNode<TNode>(string guid) where TNode : CeresNode
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | string | 
        guid | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | TNode | 
        Null if not exist 
 | 
      
    
  
  Type Parameters
  
  
  FindSubGraph<TGraph>(string)
  Find subGraph with specific type by name
 
  
  Declaration
  
    public TGraph FindSubGraph<TGraph>(string name) where TGraph : CeresGraph
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | string | 
        name | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | TGraph | 
        Null if not exist 
 | 
      
    
  
  Type Parameters
  
  
  GetDependencyPaths()
  Get graph node current dependency path if existed
 
  
  Declaration
  
    public int[][] GetDependencyPaths()
   
  Returns
  
  
  GetFirstNodeOfType<TNode>()
  Get first node with specific type
 
  
  Declaration
  
    public TNode GetFirstNodeOfType<TNode>() where TNode : CeresNode
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | TNode | 
        Null if not exist 
 | 
      
    
  
  Type Parameters
  
  
  GetNodeDependencyPath(CeresNode)
  Get dependency execution path for destination node
 
  
  Declaration
  
    public int[] GetNodeDependencyPath(CeresNode node)
   
  Parameters
  
  Returns
  
  
  GetNodeDependencyPath(string)
  Get dependency execution path for destination node with guid
 
  
  Declaration
  
    public int[] GetNodeDependencyPath(string guid)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | string | 
        guid | 
         | 
      
    
  
  Returns
  
  
  InitPorts(CeresGraph)
  Traverse the graph and init all ports automatically
 
  
  Declaration
  
    protected static void InitPorts(CeresGraph graph)
   
  Parameters
  
  
  InitVariables(CeresGraph)
  Traverse the graph and init all shared variables automatically
 
  
  Declaration
  
    protected static void InitVariables(CeresGraph graph)
   
  Parameters
  
  
  IsUberGraph()
  Is graph on top level which means it can have subGraphs
 
  
  Declaration
  
    public virtual bool IsUberGraph()
   
  Returns
  
  
  LinkPort(CeresPort, CeresNode, CeresPortData)
  
  
  Declaration
  
    protected virtual void LinkPort(CeresPort port, CeresNode ownerNode, CeresPortData portData)
   
  Parameters
  
  
  SetCompilerTarget(CeresGraphCompiler)
  
  
  Declaration
  
    protected void SetCompilerTarget(CeresGraphCompiler compiler)
   
  Parameters
  
  
  SetDependencyPath(int[][])
  Set graph node pre-cached dependency path
 
  
  Declaration
  
    public void SetDependencyPath(int[][] dependencyPath)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | int[][] | 
        dependencyPath | 
         | 
      
    
  
  
  TopologicalSort(CeresGraph, List<CeresNode>)
  
  
  Declaration
  
    protected static int[][] TopologicalSort(CeresGraph graph, List<CeresNode> nodes)
   
  Parameters
  
  Returns
  
  Implements
  
      IDisposableUnregister