0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 package org.apache.spark.network.protocol;
0019
0020 import java.util.Objects;
0021
0022 import io.netty.buffer.ByteBuf;
0023 import org.apache.commons.lang3.builder.ToStringBuilder;
0024 import org.apache.commons.lang3.builder.ToStringStyle;
0025
0026 import org.apache.spark.network.buffer.ManagedBuffer;
0027 import org.apache.spark.network.buffer.NettyManagedBuffer;
0028
0029
0030
0031
0032
0033 public final class OneWayMessage extends AbstractMessage implements RequestMessage {
0034
0035 public OneWayMessage(ManagedBuffer body) {
0036 super(body, true);
0037 }
0038
0039 @Override
0040 public Message.Type type() { return Type.OneWayMessage; }
0041
0042 @Override
0043 public int encodedLength() {
0044
0045
0046
0047 return 4;
0048 }
0049
0050 @Override
0051 public void encode(ByteBuf buf) {
0052
0053 buf.writeInt((int) body().size());
0054 }
0055
0056 public static OneWayMessage decode(ByteBuf buf) {
0057
0058 buf.readInt();
0059 return new OneWayMessage(new NettyManagedBuffer(buf.retain()));
0060 }
0061
0062 @Override
0063 public int hashCode() {
0064 return Objects.hashCode(body());
0065 }
0066
0067 @Override
0068 public boolean equals(Object other) {
0069 if (other instanceof OneWayMessage) {
0070 OneWayMessage o = (OneWayMessage) other;
0071 return super.equals(o);
0072 }
0073 return false;
0074 }
0075
0076 @Override
0077 public String toString() {
0078 return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
0079 .append("body", body())
0080 .toString();
0081 }
0082 }