@Override public void write(DataOutput out) throws IOException { WritableUtils.writeClass(aggregatorClass, out); }
@Override public void write(DataOutput out) throws IOException { WritableUtils.writeClass(messageClass, out); WritableUtils.writeClass(messageValueFactoryClass, out); WritableUtils.writeClass(messageCombinerClass, out); out.writeBoolean(messageClassModified); out.writeByte(messageEncodeAndStoreType.ordinal()); }
@Override public void write(DataOutput out) throws IOException { out.writeInt(typeOpsList.size()); for (PrimitiveTypeOps typeOps : typeOpsList) { WritableUtils.writeClass(typeOps.getTypeClass(), out); } }
@Override public void write(DataOutput out) throws IOException { WritableUtils.writeClass(typeOps.getTypeClass(), out); }
/** * Writes enum into a stream, by serializing class name and it's index * @param enumValue Enum value * @param output Output stream * @param <T> Enum type */ public static <T extends Enum<T>> void writeEnum(T enumValue, DataOutput output) throws IOException { writeClass( enumValue != null ? enumValue.getDeclaringClass() : null, output); if (enumValue != null) { Varint.writeUnsignedVarInt(enumValue.ordinal(), output); } }
@Override public void write(DataOutput out) throws IOException { Preconditions.checkNotNull(valueClass, "valueClass cannot be null in ArrayWritable"); WritableUtils.writeClass(valueClass, out); out.writeInt(values.length); // write values for (int i = 0; i < values.length; i++) { values[i].write(out); } } }
@Override public void write(DataOutput out) throws IOException { WritableUtils.writeClass(aggregatorClass, out); value.write(out); }
@Override public void write(DataOutput dataOutput) throws IOException { if (aggregationStorage != null) { dataOutput.writeBoolean(true); WritableUtils.writeClass(aggregationStorage.getClass(), dataOutput); aggregationStorage.write(dataOutput); } else { dataOutput.writeBoolean(false); } }
/** * Writes a list of Writable objects into output stream. * This method is trying to optimize space occupied by class information only * storing class object if it is different from the previous one * as in most cases arrays tend to have objects of the same type inside. * @param list serialized object * @param output the output stream * @throws IOException */ public static void writeList(List<? extends Writable> list, DataOutput output) throws IOException { output.writeBoolean(list != null); if (list != null) { output.writeInt(list.size()); Class<? extends Writable> clazz = null; for (Writable element : list) { output.writeBoolean(element == null); if (element != null) { if (element.getClass() != clazz) { clazz = element.getClass(); output.writeBoolean(true); writeClass(clazz, output); } else { output.writeBoolean(false); } element.write(output); } } } }
@Override public void write(DataOutput output) throws IOException { WritableUtils.writeClass(computationClass, output); WritableUtils.writeWritableObject(incomingMessageClasses, output); WritableUtils.writeWritableObject(outgoingMessageClasses, output); }
WritableUtils.writeClass( partitionOwners.iterator().next().getClass(), output);