Coverage Summary for Class: BlockHeadersRequestMessage (co.rsk.net.messages)

Class Class, % Method, % Line, %
BlockHeadersRequestMessage 0% (0/1) 0% (0/8) 0% (0/15)


1 package co.rsk.net.messages; 2  3 import org.ethereum.util.RLP; 4  5 /** 6  * Created by ajlopez on 23/08/2017. 7  */ 8 public class BlockHeadersRequestMessage extends MessageWithId { 9  /** 10  * Id to identify request/response correlation 11  */ 12  private long id; 13  14  /** 15  * Hash of the first header to retrieve 16  */ 17  private byte[] hash; 18  19  /** 20  * Count of headers to retrieve 21  */ 22  private int count; 23  24  public BlockHeadersRequestMessage(long id, byte[] hash, int count) { 25  if (count < 0) { 26  throw new IllegalArgumentException(); 27  } 28  29  this.id = id; 30  this.hash = hash; 31  this.count = count; 32  } 33  34  public long getId() { return this.id; } 35  36  public byte[] getHash() { return this.hash; } 37  38  public int getCount() { return this.count; } 39  40  @Override 41  public byte[] getEncodedMessageWithoutId() { 42  byte[] rlpHash = RLP.encodeElement(this.hash); 43  byte[] rlpCount = RLP.encodeInt(this.count); 44  45  return RLP.encodeList(rlpHash, rlpCount); 46  } 47  48  @Override 49  public MessageType getMessageType() { 50  return MessageType.BLOCK_HEADERS_REQUEST_MESSAGE; 51  } 52  53  @Override 54  public MessageType getResponseMessageType() { 55  return MessageType.BLOCK_HEADERS_RESPONSE_MESSAGE; 56  } 57  58  @Override 59  public void accept(MessageVisitor v) { 60  v.apply(this); 61  } 62 } 63