Ejemplo n.º 1
0
        internal static CodeVariableDeclarationStatement MakeDryadVertexParamsDecl(DryadQueryNode node)
        {
            int inputArity = node.InputArity + node.GetReferencedQueries().Count;
            int outputArity = node.OutputArity;

            CodeExpression arg1 = new CodePrimitiveExpression(inputArity);
            CodeExpression arg2 = new CodePrimitiveExpression(outputArity);

            CodeExpression dVertexParamsInitExpr = new CodeObjectCreateExpression("HpcLinqVertexParams", arg1, arg2);
            CodeVariableDeclarationStatement
                dVertexParamsDecl = new CodeVariableDeclarationStatement("HpcLinqVertexParams",
                                                                         DryadVertexParamName,
                                                                         dVertexParamsInitExpr);
            return dVertexParamsDecl;
        }
Ejemplo n.º 2
0
        private void AssignUniqueId(DryadQueryNode node)
        {
            if (node.m_uniqueId == this.m_currentPhaseId)
            {
                foreach (Pair<string, DryadQueryNode> refChild in node.GetReferencedQueries())
                {
                    this.AssignUniqueId(refChild.Value);
                }
                foreach (DryadQueryNode child in node.Children)
                {
                    this.AssignUniqueId(child);
                }
                if (node.m_uniqueId == this.m_currentPhaseId)
                {
                    node.m_uniqueId = this.m_nextVertexId++;

                    if (node.OutputNode is DryadForkNode)
                    {
                        foreach (DryadQueryNode pnode in node.Parents)
                        {
                            if (pnode.m_uniqueId == this.m_currentPhaseId)
                            {
                                pnode.m_uniqueId = this.m_nextVertexId++;
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 private void GetReferencedQueries(DryadQueryNode curNode, ReferencedQuerySubst subst)
 {
     curNode.GetReferencedQueries(subst);
     DryadQueryNode[] curChildren = curNode.Children;
     for (int i = 0; i < curChildren.Length; i++)
     {
         DryadQueryNode child = curChildren[i];
         if (this.Contains(child))
         {
             this.GetReferencedQueries(child, subst);
         }
     }
 }