/** * Cast the {@link ImmutableClassesGiraphConfiguration} so it can be used * to generate edge objects. * * @return Casted configuration */ @Override public ImmutableClassesGiraphConfiguration<I, ?, E> getConf() { return (ImmutableClassesGiraphConfiguration<I, ?, E>) super.getConf(); }
@Override public void readFields(DataInput dataInput) throws IOException { useMessageSizeEncoding = dataInput.readBoolean(); super.readFields(dataInput); } }
@Override public void write(DataOutput dataOutput) throws IOException { dataOutput.writeBoolean(useMessageSizeEncoding); super.write(dataOutput); }
@Override public void initialize() { super.initialize(); setUseMessageSizeEncoding(); }
@Override public void add(byte[] serializedId, int idPos, M message) { if (!useMessageSizeEncoding) { super.add(serializedId, idPos, message); } else { try { extendedDataOutput.write(serializedId, 0, idPos); writeMessageWithSize(message); } catch (IOException e) { throw new IllegalStateException("add: IOException occurred"); } } }
@Override public void initialize(int expectedSize) { super.initialize(expectedSize); setUseMessageSizeEncoding(); }
@Override public void add(I vertexId, M message) { if (!useMessageSizeEncoding) { super.add(vertexId, message); } else { try { vertexId.write(extendedDataOutput); writeMessageWithSize(message); } catch (IOException e) { throw new IllegalStateException("add: IOException occurred"); } } }
@Override public void readFields(DataInput dataInput) throws IOException { extendedDataOutput = WritableUtils.readExtendedDataOutput(dataInput, getConf()); } }