/** * Get the underlying byte-array. * * @return The underlying byte-array */ public byte[] getByteArray() { return extendedDataOutput.getByteArray(); }
@Override public void writeCurrentMessageBytes(DataOutput dataOutput) { try { dataOutput.write(extendedDataOutput.getByteArray(), messageOffset, messageBytes); } catch (NegativeArraySizeException e) { VerboseByteStructMessageWrite.handleNegativeArraySize(vertexId); } catch (IOException e) { throw new IllegalStateException("writeCurrentMessageBytes: Got " + "IOException", e); } } };
/** * Write one of data outputs to another data output * * @param dataOutput Data output to write * @param out Data output to write to */ private void writeExtendedDataOutput(ExtendedDataOutput dataOutput, DataOutput out) throws IOException { out.writeInt(dataOutput.getPos()); out.write(dataOutput.getByteArray(), 0, dataOutput.getPos()); }
/** * Write ExtendedDataOutput to DataOutput * * @param extendedDataOutput ExtendedDataOutput to write * @param out DataOutput to write to */ public static void writeExtendedDataOutput( ExtendedDataOutput extendedDataOutput, DataOutput out) throws IOException { out.writeInt(extendedDataOutput.getPos()); out.write( extendedDataOutput.getByteArray(), 0, extendedDataOutput.getPos()); }
@Override public ExtendedDataInput createDataInput() { return conf.createExtendedDataInput(dataOutput.getByteArray(), 0, dataOutput.getPos()); }
/** * Create extendedDataInput based on extendedDataOutput * * @param extendedDataOutput extendedDataOutput * @return extendedDataInput */ public ExtendedDataInput createExtendedDataInput( ExtendedDataOutput extendedDataOutput) { return createExtendedDataInput(extendedDataOutput.getByteArray(), 0, extendedDataOutput.getPos()); }
/** * 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 add(Edge<I, E> edge) { ExtendedDataOutput extendedDataOutput = getConf().createExtendedDataOutput( serializedEdges, serializedEdgesBytesUsed); try { WritableUtils.writeEdge(extendedDataOutput, edge); } catch (IOException e) { throw new IllegalStateException("add: Failed to write to the new " + "byte array"); } serializedEdges = extendedDataOutput.getByteArray(); serializedEdgesBytesUsed = extendedDataOutput.getPos(); ++edgeCount; }
@Override public void initialize(Iterable<Edge<I, E>> edges) { ExtendedDataOutput extendedOutputStream = getConf().createExtendedDataOutput(); for (Edge<I, E> edge : edges) { try { WritableUtils.writeEdge(extendedOutputStream, edge); } catch (IOException e) { throw new IllegalStateException("initialize: Failed to serialize " + edge); } ++edgeCount; } serializedEdges = extendedOutputStream.getByteArray(); serializedEdgesBytesUsed = extendedOutputStream.getPos(); }
/** * Constructor * * @param bigDataOutput {@link BigDataOutput} which we want to read data from */ public BigDataInput(BigDataOutput bigDataOutput) { dataInputs = new ArrayList<ExtendedDataInput>( bigDataOutput.getNumberOfDataOutputs()); for (ExtendedDataOutput dataOutput : bigDataOutput.getDataOutputs()) { dataInputs.add(bigDataOutput.getConf().createExtendedDataInput( dataOutput.getByteArray(), 0, dataOutput.getPos())); } currentPositionInInputs = -1; moveToNextDataInput(); }
@Override public M next() { long pointer = iterator.nextLong(); try { int index = (int) (pointer >>> 32); int offset = (int) pointer; ExtendedDataOutput buffer = msgBuffer.getDataOutput(index); messageReader.initialize(buffer.getByteArray(), offset, buffer.getPos()); reusableMsg.readFields(messageReader); } catch (IOException e) { throw new IllegalStateException("Got exception : " + e); } return reusableMsg; }
/** * Write object to a byte array with the first 4 bytes as the size of the * entire buffer (including the size). * * @param writableObject Object to write from. * @param buffer Use this buffer instead * @param unsafe Use unsafe serialization? * @return Byte array with serialized object. */ public static byte[] writeToByteArrayWithSize(Writable writableObject, byte[] buffer, boolean unsafe) { ExtendedDataOutput extendedDataOutput; if (unsafe) { extendedDataOutput = new UnsafeByteArrayOutputStream(buffer); } else { extendedDataOutput = new ExtendedByteArrayDataOutput(buffer); } try { extendedDataOutput.writeInt(-1); writableObject.write(extendedDataOutput); extendedDataOutput.writeInt(0, extendedDataOutput.getPos()); } catch (IOException e) { throw new IllegalStateException("writeToByteArrayWithSize: " + "IOException", e); } return extendedDataOutput.getByteArray(); }
return extendedDataOutput.getByteArray();
for (int i = 0; i < idCounter.length; i++) { if (idCounter[i] == 1) { serializedId = idSerializer[i].getByteArray(); idSerializerPos = idSerializer[i].getPos(); serializedId = idSerializer[i].getByteArray(); idSerializerPos = idSerializer[i].getPos(); workerMessageSize = addOneToManyMessage(