- private static void writeExperimenterRelatedTableProperty(ByteBuf output,
- TableFeatureProperties property, int code) {
- output.writeShort(code);
- ExperimenterRelatedTableFeatureProperty exp = property.
- getAugmentation(ExperimenterRelatedTableFeatureProperty.class);
- byte[] data = exp.getData();
- int length = TABLE_FEAT_HEADER_LENGTH + 2 * (EncodeConstants.SIZE_OF_INT_IN_BYTES);
- int padding = 0;
- if (data != null) {
- output.writeShort(length + data.length);
- padding = paddingNeeded(length + data.length);
- output.writeInt(exp.getExperimenter().intValue());
- output.writeInt(exp.getExpType().intValue());
- output.writeBytes(data);
- } else {
- output.writeShort(length);
- padding = paddingNeeded(length);
- output.writeInt(exp.getExperimenter().intValue());
- output.writeInt(exp.getExpType().intValue());
- }
- ByteBufUtils.padBuffer(padding, output);
+ private void writeExperimenterRelatedTableProperty(final ByteBuf output,
+ final TableFeatureProperties property) {
+ long expId = property.getAugmentation(ExperimenterIdTableFeatureProperty.class).getExperimenter().getValue();
+ OFSerializer<TableFeatureProperties> serializer = registry.getSerializer(
+ ExperimenterSerializerKeyFactory.createMultipartRequestTFSerializerKey(
+ EncodeConstants.OF13_VERSION_ID, expId));
+ serializer.serialize(property, output);