public static void regOutput(GraphManager gm, Pipe[] outputs, int stageId, int x, Pipe localOutput) { if(null!=localOutput) { //if this same pipe is already in the same output array this may be done for //indexing of data to pipes but we only need to register the usage once assert(outputs[x].id == localOutput.id); boolean alreadyReg = false; while (--x>=0) { if (outputs[x]!=null) { Pipe.structRegistry(outputs[x],gm.recordTypeData); alreadyReg |= (localOutput.id == outputs[x].id); } } if (!alreadyReg) { regOutput(gm, localOutput, stageId); } } }
public static void register(GraphManager gm, PronghornStage stage, Pipe input, Pipe output) { synchronized(gm.lock) { int stageId = beginStageRegister(gm, stage); setStateToNew(gm, stageId); //loop over inputs regInput(gm, input, stageId); //loop over outputs regOutput(gm, output, stageId); endStageRegister(gm, stage); } }
while (i<limit) { try { regOutput(gm, outputs, stageId, i, outputs[i++]); } catch (AssertionError e) { logger.error("\nError in registering output idx "+(i-1)+" of "+outputs.length+" pipe: "+outputs[i-1]+" stage:"+stage);
public static void register(GraphManager gm, PronghornStage stage, Pipe input, Pipe[] outputs) { synchronized(gm.lock) { int stageId = beginStageRegister(gm, stage); setStateToNew(gm, stageId); //loop over inputs regInput(gm, input, stageId); int i = 0; int limit = outputs.length; while (i<limit) { regOutput(gm, outputs, stageId, i, outputs[i++]); } endStageRegister(gm, stage); } }
public static void register(GraphManager gm, PronghornStage stage, Pipe[] inputs, Pipe output) { synchronized(gm.lock) { int stageId = beginStageRegister(gm, stage); setStateToNew(gm, stageId); int i = 0; int limit = inputs.length; while (i<limit) { regInput(gm,inputs,stageId,i,inputs[i++]); } //loop over outputs regOutput(gm, output, stageId); endStageRegister(gm, stage); } }
private static void copyStage(GraphManager m, GraphManager clone, PronghornStage stage) { int stageId = beginStageRegister(clone, stage); int idx; int ringId; idx = m.stageIdToInputsBeginIdx[stageId]; while (-1 != (ringId=m.multInputIds[idx++])) { assert(0==Pipe.contentRemaining(m.pipeIdToPipe[ringId])); regInput(clone, m.pipeIdToPipe[ringId], stageId); } idx = m.stageIdToOutputsBeginIdx[stageId]; while (-1 != (ringId=m.multOutputIds[idx++])) { assert(0==Pipe.contentRemaining(m.pipeIdToPipe[ringId])); regOutput(clone, m.pipeIdToPipe[ringId], stageId); } endStageRegister(clone, stage); }
if (null != tp) { if (tp.isForSchema(tp, outputSchema)) { regOutput(gm, tp, stageId);