@Override public void addPartitionVertices(VertexIterator<I, V, E> vertexIterator) { while (vertexIterator.hasNext()) { vertexIterator.next(); // Release the vertex if it was put, otherwise reuse as an optimization if (putOrCombine(vertexIterator.getVertex())) { vertexIterator.releaseVertex(); } } }
/** * Constructor. * * @param extendedDataOutput Extended data output * @param configuration Configuration */ public VertexIterator( ExtendedDataOutput extendedDataOutput, ImmutableClassesGiraphConfiguration<I, V, E> configuration) { extendedDataInput = configuration.createExtendedDataInput( extendedDataOutput.getByteArray(), 0, extendedDataOutput.getPos()); this.configuration = configuration; resetEmptyVertex(); }
@Override public void addPartitionVertices(Integer partitionId, ExtendedDataOutput extendedDataOutput) { VertexIterator<I, V, E> vertexIterator = new VertexIterator<I, V, E>(extendedDataOutput, conf); Partition<I, V, E> partition = getOrCreatePartition(partitionId); partition.addPartitionVertices(vertexIterator); putPartition(partition); }
/** * Moves to the next element in the iteration. */ public void next() { // If the vertex was released, create another one if (vertex == null) { resetEmptyVertex(); } // If the vertex id was released, create another one if (vertex.getId() == null) { vertex.initialize(configuration.createVertexId(), vertex.getValue()); } try { WritableUtils.reinitializeVertexFromDataInput( extendedDataInput, vertex, configuration); } catch (IOException e) { throw new IllegalStateException("next: IOException", e); } }