- @Override
- public int computeLength(MultipartRequestInput message) {
- return MESSAGE_LENGTH + computeBodyLength(message);
- }
- @Override
- public byte getMessageType() {
- return MESSAGE_TYPE;
- }
-
- /**
- *
- * @param message
- * @return length of MultipartRequestMessage
- */
- public int computeBodyLength(MultipartRequestInput message) {
- int length = 0;
- MultipartType type = message.getType();
- if (type.equals(MultipartType.OFPMPFLOW)) {
- MultipartRequestFlowCase bodyCase = (MultipartRequestFlowCase) message.getMultipartRequestBody();
- MultipartRequestFlow body = bodyCase.getMultipartRequestFlow();
- length += FLOW_BODY_LENGTH + MatchSerializer.computeMatchLength(body.getMatch());
- } else if (type.equals(MultipartType.OFPMPAGGREGATE)) {
- MultipartRequestAggregateCase bodyCase = (MultipartRequestAggregateCase) message.getMultipartRequestBody();
- MultipartRequestAggregate body = bodyCase.getMultipartRequestAggregate();
- length += AGGREGATE_BODY_LENGTH + MatchSerializer.computeMatchLength(body.getMatch());
- } else if (type.equals(MultipartType.OFPMPPORTSTATS)) {
- length += PORT_STATS_BODY_LENGTH;
- } else if (type.equals(MultipartType.OFPMPQUEUE)) {
- length += QUEUE_BODY_LENGTH;
- } else if (type.equals(MultipartType.OFPMPGROUP)) {
- length += GROUP_BODY_LENGTH;
- } else if (type.equals(MultipartType.OFPMPMETER)) {
- length += METER_BODY_LENGTH;
- } else if (type.equals(MultipartType.OFPMPMETERCONFIG)) {
- length += METER_CONFIG_BODY_LENGTH;
- } else if (type.equals(MultipartType.OFPMPTABLEFEATURES)) {
- MultipartRequestTableFeaturesCase bodyCase = (MultipartRequestTableFeaturesCase) message.getMultipartRequestBody();
- MultipartRequestTableFeatures body = bodyCase.getMultipartRequestTableFeatures();
- length += computeTableFeaturesLength(body);
- } else if (type.equals(MultipartType.OFPMPEXPERIMENTER)) {
- MultipartRequestExperimenterCase bodyCase = (MultipartRequestExperimenterCase) message.getMultipartRequestBody();
- MultipartRequestExperimenter body = bodyCase.getMultipartRequestExperimenter();
- length += EXPERIMENTER_BODY_LENGTH;
- if (body.getData() != null) {
- length += body.getData().length;
- }
- }
- return length;
- }
+ private void serializeExperimenterBody(final MultipartRequestInput message,
+ final ByteBuf outBuffer) {
+ MultipartRequestExperimenterCase expCase =
+ (MultipartRequestExperimenterCase) message.getMultipartRequestBody();
+ MultipartRequestExperimenter experimenter = expCase.getMultipartRequestExperimenter();
+ final long expId = experimenter.getExperimenter().getValue().longValue();
+ final long expType = experimenter.getExpType().longValue();