liurunyu
7 天以前 4f99f59668c9160ca60958b7347944def26f2228
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/PrefixedDataAvailableStatus.java
New file
@@ -0,0 +1,111 @@
package com.dy.common.mw.channel.tcp;
public class PrefixedDataAvailableStatus {
   public final static Integer status_rubbish = 0 ;//垃圾数据
   public final static Integer status_break = 1 ;//断包
   public final static Integer status_adjoin = 2 ;//粘包
   public final static Integer status_complete = 3 ;//不断不粘
   private Integer status ;
   private Integer dataLen ;
   public String protocolName;
   public Short protocolVersion;
   public PrefixedDataAvailableStatus(){
      status = null ;
      dataLen = null ;
   }
   /**
    * 垃圾数据
    * @param dataLen 数据长度
    * @return 状态
    */
   @SuppressWarnings("unused")
   public PrefixedDataAvailableStatus rubbish(Integer dataLen){
      this.status = status_rubbish ;
      this.dataLen = dataLen ;
      return this ;
   }
   /**
    * 发生断包
    * @return 状态
    */
   @SuppressWarnings("unused")
   public PrefixedDataAvailableStatus breaked(){
      this.status = status_break ;
      this.dataLen = null ;
      return this ;
   }
   /**
    * 发生粘包
    * @param dataLen 数据长度
    * @return 状态
    */
   @SuppressWarnings("unused")
   public PrefixedDataAvailableStatus adjoined(Integer dataLen, String protocolName, Short protocolVersion){
      this.status = status_adjoin ;
      this.dataLen = dataLen ;
      this.protocolName = protocolName ;
      this.protocolVersion = protocolVersion ;
      return this ;
   }
   /**
    * 不断包不粘包,数据正好收全
    * @param dataLen 数据长度
    * @return 状态
    */
   @SuppressWarnings("unused")
   public PrefixedDataAvailableStatus completed(Integer dataLen, String protocolName, Short protocolVersion){
      this.status = status_complete ;
      this.dataLen = dataLen ;
      this.protocolName = protocolName ;
      this.protocolVersion = protocolVersion ;
      return this ;
   }
   /**
    * 是否垃圾数据
    * @return 状态
    */
   public boolean isRubbish(){
      return this.status.intValue() == status_rubbish.intValue();
   }
   /**
    * 是否断包
    * @return 状态
    */
   public boolean isBreaked(){
      return this.status.intValue() == status_break.intValue();
   }
   /**
    * 是否粘包
    * @return 是否粘包
    */
   public boolean isAdjoined(){
      return this.status.intValue() == status_adjoin.intValue();
   }
   /**
    * 是否不断不粘
    * @return 是否不断不粘
    */
   public boolean isCompleted(){
      return this.status.intValue() == status_complete.intValue();
   }
   /**
    * 返回数据长度
    * @return 数据长度
    */
   public Integer getDataLen(){
      return this.dataLen ;
   }
}