返回顶部
首页 > 资讯 > 精选 >Java中protobuf与avro的区别是什么
  • 194
分享到

Java中protobuf与avro的区别是什么

javaprotobufavro 2023-05-31 07:05:27 194人浏览 独家记忆
摘要

这篇文章给大家介绍Java中protobuf与avro的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、protobuf基本操作protobuf简介:Protocol Buffers (

这篇文章给大家介绍Java中protobuf与avro的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、protobuf基本操作

protobuf简介:

Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platfORM-neutral, extensible mechanism for serializing structured data.

protobuf是google提供的一种跨语言、跨平台、可扩展的序列化工具

1.1定义协议文件(部分字段)(TCPLog.proto):

syntax = "proto2";message tcpLog{     optional int32  total_byteps = 1;     optional int64 flow_start_time =2;     optional int64 date =3;}

1.2生成对应的Java类:

生成过程可以使用ecplise 的插件 或者 直接在控制台中使用命令生成。

命令行中生成规则如下:

protoc.exe -I=proto的输入目录 --java_out=java类输出目录 proto的输入目录包括包括proto文件

生成java类如下:

// Generated by the protocol buffer compiler. DO NOT EDIT!// source: TCPLog.protopublic final class TCPLogOuterClass { private TCPLogOuterClass() {} public static void reGISterAllExtensions(   com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions(   com.google.protobuf.ExtensionRegistry registry) {  registerAllExtensions(    (com.google.protobuf.ExtensionRegistryLite) registry); } public interface TCPLogOrBuilder extends   // @@protoc_insertion_point(interface_extends:TCPLog)   com.google.protobuf.MessageOrBuilder {    boolean hasTotalByteps();    int getTotalByteps();    boolean hasFlowStartTime();    long getFlowStartTime();    boolean hasDate();    long getDate();    boolean hasServerTotalPacket();    long getServerTotalPacket();    boolean hasClientTotalByte();    long getClientTotalByte();    boolean hasLinkId();    int getLinkId();    boolean hasTotalByte();    long getTotalByte();    boolean hasFlowEndTime();    long getFlowEndTime();    boolean hasClientPort();    int getClientPort();    boolean hasProtocol();    int getProtocol();    boolean hasTotalPacket();    long getTotalPacket();    boolean hasFlowDuration();    long getFlowDuration();    boolean hasId();    java.lang.String getId();    com.google.protobuf.ByteString    getIdBytes();    boolean hasServerIpAddr();    java.lang.String getServerIpAddr();    com.google.protobuf.ByteString    getServerIpAddrBytes();    boolean hasDirectionMask();    java.lang.String getDirectionMask();    com.google.protobuf.ByteString    getDirectionMaskBytes();    boolean hasApp();    int getApp();    boolean hasClientCountryId();    int getClientCountryId();    boolean hasClientNetsegmentId();    int getClientNetsegmentId();    boolean hasClientTotalPacket();    long getClientTotalPacket();    boolean hasClientIpAddr();    java.lang.String getClientIpAddr();    com.google.protobuf.ByteString    getClientIpAddrBytes();    boolean hasTcpStatus();    int getTcpStatus();    boolean hasServerCountryId();    int getServerCountryId();    boolean hasServerNetsegmentId();    int getServerNetsegmentId();    boolean hasAvgPktSize();    long getAvgPktSize();    boolean hasServerPort();    int getServerPort();    boolean hasServerTotalByte();    long getServerTotalByte();    boolean hasTotalPacketps();    int getTotalPacketps(); }  public static final class TCPLog extends   com.google.protobuf.GeneratedMessageV3 implements   // @@protoc_insertion_point(message_implements:TCPLog)   TCPLogOrBuilder {  // Use TCPLog.newBuilder() to construct.  private TCPLog(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {   super(builder);  }  private TCPLog() {   totalByteps_ = 0;   flowStartTime_ = 0L;   date_ = 0L;   serverTotalPacket_ = 0L;   clientTotalByte_ = 0L;   linkId_ = 0;   totalByte_ = 0L;   flowEndTime_ = 0L;   clientPort_ = 0;   protocol_ = 0;   totalPacket_ = 0L;   flowDuration_ = 0L;   id_ = "";   serverIpAddr_ = "";   directionMask_ = "";   app_ = 0;   clientCountryId_ = 0;   clientNetsegmentId_ = 0;   clientTotalPacket_ = 0L;   clientIpAddr_ = "";   tcpStatus_ = 0;   serverCountryId_ = 0;   serverNetsegmentId_ = 0;   avgPktSize_ = 0L;   serverPort_ = 0;   serverTotalByte_ = 0L;   totalPacketps_ = 0;  }  @java.lang.Override  public final com.google.protobuf.UnknownFieldSet  getUnknownFields() {   return this.unknownFields;  }  private TCPLog(    com.google.protobuf.CodedInputStream input,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws com.google.protobuf.InvalidProtocolBufferException {   this();   int mutable_bitField0_ = 0;   com.google.protobuf.UnknownFieldSet.Builder unknownFields =     com.google.protobuf.UnknownFieldSet.newBuilder();   try {    boolean done = false;    while (!done) {     int tag = input.readTag();     switch (tag) {      case 0:       done = true;       break;      default: {       if (!parseUnknownField(input, unknownFields,                   extensionRegistry, tag)) {        done = true;       }       break;      }      case 8: {       bitField0_ |= 0x00000001;       totalByteps_ = input.readInt32();       break;      }      case 16: {       bitField0_ |= 0x00000002;       flowStartTime_ = input.readInt64();       break;      }      case 24: {       bitField0_ |= 0x00000004;       date_ = input.readInt64();       break;      }      case 32: {       bitField0_ |= 0x00000008;       serverTotalPacket_ = input.readInt64();       break;      }      case 40: {       bitField0_ |= 0x00000010;       clientTotalByte_ = input.readInt64();       break;      }      case 48: {       bitField0_ |= 0x00000020;       linkId_ = input.readInt32();       break;      }      case 56: {       bitField0_ |= 0x00000040;       totalByte_ = input.readInt64();       break;      }      case 64: {       bitField0_ |= 0x00000080;       flowEndTime_ = input.readInt64();       break;      }      case 72: {       bitField0_ |= 0x00000100;       clientPort_ = input.readInt32();       break;      }      case 80: {       bitField0_ |= 0x00000200;       protocol_ = input.readInt32();       break;      }      case 88: {       bitField0_ |= 0x00000400;       totalPacket_ = input.readInt64();       break;      }      case 96: {       bitField0_ |= 0x00000800;       flowDuration_ = input.readInt64();       break;      }      case 106: {       com.google.protobuf.ByteString bs = input.readBytes();       bitField0_ |= 0x00001000;       id_ = bs;       break;      }      case 114: {       com.google.protobuf.ByteString bs = input.readBytes();       bitField0_ |= 0x00002000;       serverIpAddr_ = bs;       break;      }      case 122: {       com.google.protobuf.ByteString bs = input.readBytes();       bitField0_ |= 0x00004000;       directionMask_ = bs;       break;      }      case 128: {       bitField0_ |= 0x00008000;       app_ = input.readInt32();       break;      }      case 136: {       bitField0_ |= 0x00010000;       clientCountryId_ = input.readInt32();       break;      }      case 144: {       bitField0_ |= 0x00020000;       clientNetsegmentId_ = input.readInt32();       break;      }      case 152: {       bitField0_ |= 0x00040000;       clientTotalPacket_ = input.readInt64();       break;      }      case 162: {       com.google.protobuf.ByteString bs = input.readBytes();       bitField0_ |= 0x00080000;       clientIpAddr_ = bs;       break;      }      case 168: {       bitField0_ |= 0x00100000;       tcpStatus_ = input.readInt32();       break;      }      case 176: {       bitField0_ |= 0x00200000;       serverCountryId_ = input.readInt32();       break;      }      case 184: {       bitField0_ |= 0x00400000;       serverNetsegmentId_ = input.readInt32();       break;      }      case 192: {       bitField0_ |= 0x00800000;       avgPktSize_ = input.readInt64();       break;      }      case 200: {       bitField0_ |= 0x01000000;       serverPort_ = input.readInt32();       break;      }      case 208: {       bitField0_ |= 0x02000000;       serverTotalByte_ = input.readInt64();       break;      }      case 216: {       bitField0_ |= 0x04000000;       totalPacketps_ = input.readInt32();       break;      }     }    }   } catch (com.google.protobuf.InvalidProtocolBufferException e) {    throw e.setUnfinishedMessage(this);   } catch (java.io.IOException e) {    throw new com.google.protobuf.InvalidProtocolBufferException(      e).setUnfinishedMessage(this);   } finally {    this.unknownFields = unknownFields.build();    makeExtensionsImmutable();   }  }  public static final com.google.protobuf.Descriptors.Descriptor    getDescriptor() {   return TCPLogOuterClass.internal_static_TCPLog_descriptor;  }  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable    internalGetFieldAccessorTable() {   return TCPLogOuterClass.internal_static_TCPLog_fieldAccessorTable     .ensureFieldAccessorsInitialized(       TCPLogOuterClass.TCPLog.class, TCPLogOuterClass.TCPLog.Builder.class);  }  private int bitField0_;  public static final int TOTAL_BYTEPS_FIELD_NUMBER = 1;  private int totalByteps_;    public boolean hasTotalByteps() {   return ((bitField0_ & 0x00000001) == 0x00000001);  }    public int getTotalByteps() {   return totalByteps_;  }  public static final int FLOW_START_TIME_FIELD_NUMBER = 2;  private long flowStartTime_;    public boolean hasFlowStartTime() {   return ((bitField0_ & 0x00000002) == 0x00000002);  }    public long getFlowStartTime() {   return flowStartTime_;  }  public static final int DATE_FIELD_NUMBER = 3;  private long date_;    public boolean hasDate() {   return ((bitField0_ & 0x00000004) == 0x00000004);  }    public long getDate() {   return date_;  }  public static final int SERVER_TOTAL_PACKET_FIELD_NUMBER = 4;  private long serverTotalPacket_;    public boolean hasServerTotalPacket() {   return ((bitField0_ & 0x00000008) == 0x00000008);  }    public long getServerTotalPacket() {   return serverTotalPacket_;  }  public static final int CLIENT_TOTAL_BYTE_FIELD_NUMBER = 5;  private long clientTotalByte_;    public boolean hasClientTotalByte() {   return ((bitField0_ & 0x00000010) == 0x00000010);  }    public long getClientTotalByte() {   return clientTotalByte_;  }  public static final int LINK_ID_FIELD_NUMBER = 6;  private int linkId_;    public boolean hasLinkId() {   return ((bitField0_ & 0x00000020) == 0x00000020);  }    public int getLinkId() {   return linkId_;  }  public static final int TOTAL_BYTE_FIELD_NUMBER = 7;  private long totalByte_;    public boolean hasTotalByte() {   return ((bitField0_ & 0x00000040) == 0x00000040);  }    public long getTotalByte() {   return totalByte_;  }  public static final int FLOW_END_TIME_FIELD_NUMBER = 8;  private long flowEndTime_;    public boolean hasFlowEndTime() {   return ((bitField0_ & 0x00000080) == 0x00000080);  }    public long getFlowEndTime() {   return flowEndTime_;  }  public static final int CLIENT_PORT_FIELD_NUMBER = 9;  private int clientPort_;    public boolean hasClientPort() {   return ((bitField0_ & 0x00000100) == 0x00000100);  }    public int getClientPort() {   return clientPort_;  }  public static final int PROTOCOL_FIELD_NUMBER = 10;  private int protocol_;    public boolean hasProtocol() {   return ((bitField0_ & 0x00000200) == 0x00000200);  }    public int getProtocol() {   return protocol_;  }  public static final int TOTAL_PACKET_FIELD_NUMBER = 11;  private long totalPacket_;    public boolean hasTotalPacket() {   return ((bitField0_ & 0x00000400) == 0x00000400);  }    public long getTotalPacket() {   return totalPacket_;  }  public static final int FLOW_DURATION_FIELD_NUMBER = 12;  private long flowDuration_;    public boolean hasFlowDuration() {   return ((bitField0_ & 0x00000800) == 0x00000800);  }    public long getFlowDuration() {   return flowDuration_;  }  public static final int ID_FIELD_NUMBER = 13;  private volatile java.lang.Object id_;    public boolean hasId() {   return ((bitField0_ & 0x00001000) == 0x00001000);  }    public java.lang.String getId() {   java.lang.Object ref = id_;   if (ref instanceof java.lang.String) {    return (java.lang.String) ref;   } else {    com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;    java.lang.String s = bs.toStringUtf8();    if (bs.isValidUtf8()) {     id_ = s;    }    return s;   }  }    public com.google.protobuf.ByteString    getIdBytes() {   java.lang.Object ref = id_;   if (ref instanceof java.lang.String) {    com.google.protobuf.ByteString b =       com.google.protobuf.ByteString.copyFromUtf8(        (java.lang.String) ref);    id_ = b;    return b;   } else {    return (com.google.protobuf.ByteString) ref;   }  }  public static final int SERVER_IP_ADDR_FIELD_NUMBER = 14;  private volatile java.lang.Object serverIpAddr_;    public boolean hasServerIpAddr() {   return ((bitField0_ & 0x00002000) == 0x00002000);  }    public java.lang.String getServerIpAddr() {   java.lang.Object ref = serverIpAddr_;   if (ref instanceof java.lang.String) {    return (java.lang.String) ref;   } else {    com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;    java.lang.String s = bs.toStringUtf8();    if (bs.isValidUtf8()) {     serverIpAddr_ = s;    }    return s;   }  }    public com.google.protobuf.ByteString    getServerIpAddrBytes() {   java.lang.Object ref = serverIpAddr_;   if (ref instanceof java.lang.String) {    com.google.protobuf.ByteString b =       com.google.protobuf.ByteString.copyFromUtf8(        (java.lang.String) ref);    serverIpAddr_ = b;    return b;   } else {    return (com.google.protobuf.ByteString) ref;   }  }  public static final int DIRECTION_MASK_FIELD_NUMBER = 15;  private volatile java.lang.Object directionMask_;    public boolean hasDirectionMask() {   return ((bitField0_ & 0x00004000) == 0x00004000);  }    public java.lang.String getDirectionMask() {   java.lang.Object ref = directionMask_;   if (ref instanceof java.lang.String) {    return (java.lang.String) ref;   } else {    com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;    java.lang.String s = bs.toStringUtf8();    if (bs.isValidUtf8()) {     directionMask_ = s;    }    return s;   }  }    public com.google.protobuf.ByteString    getDirectionMaskBytes() {   java.lang.Object ref = directionMask_;   if (ref instanceof java.lang.String) {    com.google.protobuf.ByteString b =       com.google.protobuf.ByteString.copyFromUtf8(        (java.lang.String) ref);    directionMask_ = b;    return b;   } else {    return (com.google.protobuf.ByteString) ref;   }  }  public static final int APP_FIELD_NUMBER = 16;  private int app_;    public boolean hasApp() {   return ((bitField0_ & 0x00008000) == 0x00008000);  }    public int getApp() {   return app_;  }  public static final int CLIENT_COUNTRY_ID_FIELD_NUMBER = 17;  private int clientCountryId_;    public boolean hasClientCountryId() {   return ((bitField0_ & 0x00010000) == 0x00010000);  }    public int getClientCountryId() {   return clientCountryId_;  }  public static final int CLIENT_NETSEGMENT_ID_FIELD_NUMBER = 18;  private int clientNetsegmentId_;    public boolean hasClientNetsegmentId() {   return ((bitField0_ & 0x00020000) == 0x00020000);  }    public int getClientNetsegmentId() {   return clientNetsegmentId_;  }  public static final int CLIENT_TOTAL_PACKET_FIELD_NUMBER = 19;  private long clientTotalPacket_;    public boolean hasClientTotalPacket() {   return ((bitField0_ & 0x00040000) == 0x00040000);  }    public long getClientTotalPacket() {   return clientTotalPacket_;  }  public static final int CLIENT_IP_ADDR_FIELD_NUMBER = 20;  private volatile java.lang.Object clientIpAddr_;    public boolean hasClientIpAddr() {   return ((bitField0_ & 0x00080000) == 0x00080000);  }    public java.lang.String getClientIpAddr() {   java.lang.Object ref = clientIpAddr_;   if (ref instanceof java.lang.String) {    return (java.lang.String) ref;   } else {    com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;    java.lang.String s = bs.toStringUtf8();    if (bs.isValidUtf8()) {     clientIpAddr_ = s;    }    return s;   }  }    public com.google.protobuf.ByteString    getClientIpAddrBytes() {   java.lang.Object ref = clientIpAddr_;   if (ref instanceof java.lang.String) {    com.google.protobuf.ByteString b =       com.google.protobuf.ByteString.copyFromUtf8(        (java.lang.String) ref);    clientIpAddr_ = b;    return b;   } else {    return (com.google.protobuf.ByteString) ref;   }  }  public static final int TCP_STATUS_FIELD_NUMBER = 21;  private int tcpStatus_;    public boolean hasTcpStatus() {   return ((bitField0_ & 0x00100000) == 0x00100000);  }    public int getTcpStatus() {   return tcpStatus_;  }  public static final int SERVER_COUNTRY_ID_FIELD_NUMBER = 22;  private int serverCountryId_;    public boolean hasServerCountryId() {   return ((bitField0_ & 0x00200000) == 0x00200000);  }    public int getServerCountryId() {   return serverCountryId_;  }  public static final int SERVER_NETSEGMENT_ID_FIELD_NUMBER = 23;  private int serverNetsegmentId_;    public boolean hasServerNetsegmentId() {   return ((bitField0_ & 0x00400000) == 0x00400000);  }    public int getServerNetsegmentId() {   return serverNetsegmentId_;  }  public static final int AVG_PKT_SIZE_FIELD_NUMBER = 24;  private long avgPktSize_;    public boolean hasAvgPktSize() {   return ((bitField0_ & 0x00800000) == 0x00800000);  }    public long getAvgPktSize() {   return avgPktSize_;  }  public static final int SERVER_PORT_FIELD_NUMBER = 25;  private int serverPort_;    public boolean hasServerPort() {   return ((bitField0_ & 0x01000000) == 0x01000000);  }    public int getServerPort() {   return serverPort_;  }  public static final int SERVER_TOTAL_BYTE_FIELD_NUMBER = 26;  private long serverTotalByte_;    public boolean hasServerTotalByte() {   return ((bitField0_ & 0x02000000) == 0x02000000);  }    public long getServerTotalByte() {   return serverTotalByte_;  }  public static final int TOTAL_PACKETPS_FIELD_NUMBER = 27;  private int totalPacketps_;    public boolean hasTotalPacketps() {   return ((bitField0_ & 0x04000000) == 0x04000000);  }    public int getTotalPacketps() {   return totalPacketps_;  }  private byte memoizedIsInitialized = -1;  public final boolean isInitialized() {   byte isInitialized = memoizedIsInitialized;   if (isInitialized == 1) return true;   if (isInitialized == 0) return false;   memoizedIsInitialized = 1;   return true;  }  public void writeTo(com.google.protobuf.CodedOutputStream output)            throws java.io.IOException {   if (((bitField0_ & 0x00000001) == 0x00000001)) {    output.writeInt32(1, totalByteps_);   }   if (((bitField0_ & 0x00000002) == 0x00000002)) {    output.writeInt64(2, flowStartTime_);   }   if (((bitField0_ & 0x00000004) == 0x00000004)) {    output.writeInt64(3, date_);   }   if (((bitField0_ & 0x00000008) == 0x00000008)) {    output.writeInt64(4, serverTotalPacket_);   }   if (((bitField0_ & 0x00000010) == 0x00000010)) {    output.writeInt64(5, clientTotalByte_);   }   if (((bitField0_ & 0x00000020) == 0x00000020)) {    output.writeInt32(6, linkId_);   }   if (((bitField0_ & 0x00000040) == 0x00000040)) {    output.writeInt64(7, totalByte_);   }   if (((bitField0_ & 0x00000080) == 0x00000080)) {    output.writeInt64(8, flowEndTime_);   }   if (((bitField0_ & 0x00000100) == 0x00000100)) {    output.writeInt32(9, clientPort_);   }   if (((bitField0_ & 0x00000200) == 0x00000200)) {    output.writeInt32(10, protocol_);   }   if (((bitField0_ & 0x00000400) == 0x00000400)) {    output.writeInt64(11, totalPacket_);   }   if (((bitField0_ & 0x00000800) == 0x00000800)) {    output.writeInt64(12, flowDuration_);   }   if (((bitField0_ & 0x00001000) == 0x00001000)) {    com.google.protobuf.GeneratedMessageV3.writeString(output, 13, id_);   }   if (((bitField0_ & 0x00002000) == 0x00002000)) {    com.google.protobuf.GeneratedMessageV3.writeString(output, 14, serverIpAddr_);   }   if (((bitField0_ & 0x00004000) == 0x00004000)) {    com.google.protobuf.GeneratedMessageV3.writeString(output, 15, directionMask_);   }   if (((bitField0_ & 0x00008000) == 0x00008000)) {    output.writeInt32(16, app_);   }   if (((bitField0_ & 0x00010000) == 0x00010000)) {    output.writeInt32(17, clientCountryId_);   }   if (((bitField0_ & 0x00020000) == 0x00020000)) {    output.writeInt32(18, clientNetsegmentId_);   }   if (((bitField0_ & 0x00040000) == 0x00040000)) {    output.writeInt64(19, clientTotalPacket_);   }   if (((bitField0_ & 0x00080000) == 0x00080000)) {    com.google.protobuf.GeneratedMessageV3.writeString(output, 20, clientIpAddr_);   }   if (((bitField0_ & 0x00100000) == 0x00100000)) {    output.writeInt32(21, tcpStatus_);   }   if (((bitField0_ & 0x00200000) == 0x00200000)) {    output.writeInt32(22, serverCountryId_);   }   if (((bitField0_ & 0x00400000) == 0x00400000)) {    output.writeInt32(23, serverNetsegmentId_);   }   if (((bitField0_ & 0x00800000) == 0x00800000)) {    output.writeInt64(24, avgPktSize_);   }   if (((bitField0_ & 0x01000000) == 0x01000000)) {    output.writeInt32(25, serverPort_);   }   if (((bitField0_ & 0x02000000) == 0x02000000)) {    output.writeInt64(26, serverTotalByte_);   }   if (((bitField0_ & 0x04000000) == 0x04000000)) {    output.writeInt32(27, totalPacketps_);   }   unknownFields.writeTo(output);  }  public int getSerializedSize() {   int size = memoizedSize;   if (size != -1) return size;   size = 0;   if (((bitField0_ & 0x00000001) == 0x00000001)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(1, totalByteps_);   }   if (((bitField0_ & 0x00000002) == 0x00000002)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(2, flowStartTime_);   }   if (((bitField0_ & 0x00000004) == 0x00000004)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(3, date_);   }   if (((bitField0_ & 0x00000008) == 0x00000008)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(4, serverTotalPacket_);   }   if (((bitField0_ & 0x00000010) == 0x00000010)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(5, clientTotalByte_);   }   if (((bitField0_ & 0x00000020) == 0x00000020)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(6, linkId_);   }   if (((bitField0_ & 0x00000040) == 0x00000040)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(7, totalByte_);   }   if (((bitField0_ & 0x00000080) == 0x00000080)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(8, flowEndTime_);   }   if (((bitField0_ & 0x00000100) == 0x00000100)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(9, clientPort_);   }   if (((bitField0_ & 0x00000200) == 0x00000200)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(10, protocol_);   }   if (((bitField0_ & 0x00000400) == 0x00000400)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(11, totalPacket_);   }   if (((bitField0_ & 0x00000800) == 0x00000800)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(12, flowDuration_);   }   if (((bitField0_ & 0x00001000) == 0x00001000)) {    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, id_);   }   if (((bitField0_ & 0x00002000) == 0x00002000)) {    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, serverIpAddr_);   }   if (((bitField0_ & 0x00004000) == 0x00004000)) {    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, directionMask_);   }   if (((bitField0_ & 0x00008000) == 0x00008000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(16, app_);   }   if (((bitField0_ & 0x00010000) == 0x00010000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(17, clientCountryId_);   }   if (((bitField0_ & 0x00020000) == 0x00020000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(18, clientNetsegmentId_);   }   if (((bitField0_ & 0x00040000) == 0x00040000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(19, clientTotalPacket_);   }   if (((bitField0_ & 0x00080000) == 0x00080000)) {    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, clientIpAddr_);   }   if (((bitField0_ & 0x00100000) == 0x00100000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(21, tcpStatus_);   }   if (((bitField0_ & 0x00200000) == 0x00200000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(22, serverCountryId_);   }   if (((bitField0_ & 0x00400000) == 0x00400000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(23, serverNetsegmentId_);   }   if (((bitField0_ & 0x00800000) == 0x00800000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(24, avgPktSize_);   }   if (((bitField0_ & 0x01000000) == 0x01000000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(25, serverPort_);   }   if (((bitField0_ & 0x02000000) == 0x02000000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt64Size(26, serverTotalByte_);   }   if (((bitField0_ & 0x04000000) == 0x04000000)) {    size += com.google.protobuf.CodedOutputStream     .computeInt32Size(27, totalPacketps_);   }   size += unknownFields.getSerializedSize();   memoizedSize = size;   return size;  }  private static final long serialVersionUID = 0L;  @java.lang.Override  public boolean equals(final java.lang.Object obj) {   if (obj == this) {    return true;   }   if (!(obj instanceof TCPLogOuterClass.TCPLog)) {    return super.equals(obj);   }   TCPLogOuterClass.TCPLog other = (TCPLogOuterClass.TCPLog) obj;   boolean result = true;   result = result && (hasTotalByteps() == other.hasTotalByteps());   if (hasTotalByteps()) {    result = result && (getTotalByteps()      == other.getTotalByteps());   }   result = result && (hasFlowStartTime() == other.hasFlowStartTime());   if (hasFlowStartTime()) {    result = result && (getFlowStartTime()      == other.getFlowStartTime());   }   result = result && (hasDate() == other.hasDate());   if (hasDate()) {    result = result && (getDate()      == other.getDate());   }   result = result && (hasServerTotalPacket() == other.hasServerTotalPacket());   if (hasServerTotalPacket()) {    result = result && (getServerTotalPacket()      == other.getServerTotalPacket());   }   result = result && (hasClientTotalByte() == other.hasClientTotalByte());   if (hasClientTotalByte()) {    result = result && (getClientTotalByte()      == other.getClientTotalByte());   }   result = result && (hasLinkId() == other.hasLinkId());   if (hasLinkId()) {    result = result && (getLinkId()      == other.getLinkId());   }   result = result && (hasTotalByte() == other.hasTotalByte());   if (hasTotalByte()) {    result = result && (getTotalByte()      == other.getTotalByte());   }   result = result && (hasFlowEndTime() == other.hasFlowEndTime());   if (hasFlowEndTime()) {    result = result && (getFlowEndTime()      == other.getFlowEndTime());   }   result = result && (hasClientPort() == other.hasClientPort());   if (hasClientPort()) {    result = result && (getClientPort()      == other.getClientPort());   }   result = result && (hasProtocol() == other.hasProtocol());   if (hasProtocol()) {    result = result && (getProtocol()      == other.getProtocol());   }   result = result && (hasTotalPacket() == other.hasTotalPacket());   if (hasTotalPacket()) {    result = result && (getTotalPacket()      == other.getTotalPacket());   }   result = result && (hasFlowDuration() == other.hasFlowDuration());   if (hasFlowDuration()) {    result = result && (getFlowDuration()      == other.getFlowDuration());   }   result = result && (hasId() == other.hasId());   if (hasId()) {    result = result && getId()      .equals(other.getId());   }   result = result && (hasServerIpAddr() == other.hasServerIpAddr());   if (hasServerIpAddr()) {    result = result && getServerIpAddr()      .equals(other.getServerIpAddr());   }   result = result && (hasDirectionMask() == other.hasDirectionMask());   if (hasDirectionMask()) {    result = result && getDirectionMask()      .equals(other.getDirectionMask());   }   result = result && (hasApp() == other.hasApp());   if (hasApp()) {    result = result && (getApp()      == other.getApp());   }   result = result && (hasClientCountryId() == other.hasClientCountryId());   if (hasClientCountryId()) {    result = result && (getClientCountryId()      == other.getClientCountryId());   }   result = result && (hasClientNetsegmentId() == other.hasClientNetsegmentId());   if (hasClientNetsegmentId()) {    result = result && (getClientNetsegmentId()      == other.getClientNetsegmentId());   }   result = result && (hasClientTotalPacket() == other.hasClientTotalPacket());   if (hasClientTotalPacket()) {    result = result && (getClientTotalPacket()      == other.getClientTotalPacket());   }   result = result && (hasClientIpAddr() == other.hasClientIpAddr());   if (hasClientIpAddr()) {    result = result && getClientIpAddr()      .equals(other.getClientIpAddr());   }   result = result && (hasTcpStatus() == other.hasTcpStatus());   if (hasTcpStatus()) {    result = result && (getTcpStatus()      == other.getTcpStatus());   }   result = result && (hasServerCountryId() == other.hasServerCountryId());   if (hasServerCountryId()) {    result = result && (getServerCountryId()      == other.getServerCountryId());   }   result = result && (hasServerNetsegmentId() == other.hasServerNetsegmentId());   if (hasServerNetsegmentId()) {    result = result && (getServerNetsegmentId()      == other.getServerNetsegmentId());   }   result = result && (hasAvgPktSize() == other.hasAvgPktSize());   if (hasAvgPktSize()) {    result = result && (getAvgPktSize()      == other.getAvgPktSize());   }   result = result && (hasServerPort() == other.hasServerPort());   if (hasServerPort()) {    result = result && (getServerPort()      == other.getServerPort());   }   result = result && (hasServerTotalByte() == other.hasServerTotalByte());   if (hasServerTotalByte()) {    result = result && (getServerTotalByte()      == other.getServerTotalByte());   }   result = result && (hasTotalPacketps() == other.hasTotalPacketps());   if (hasTotalPacketps()) {    result = result && (getTotalPacketps()      == other.getTotalPacketps());   }   result = result && unknownFields.equals(other.unknownFields);   return result;  }  @java.lang.Override  public int hashCode() {   if (memoizedHashCode != 0) {    return memoizedHashCode;   }   int hash = 41;   hash = (19 * hash) + getDescriptor().hashCode();   if (hasTotalByteps()) {    hash = (37 * hash) + TOTAL_BYTEPS_FIELD_NUMBER;    hash = (53 * hash) + getTotalByteps();   }   if (hasFlowStartTime()) {    hash = (37 * hash) + FLOW_START_TIME_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getFlowStartTime());   }   if (hasDate()) {    hash = (37 * hash) + DATE_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getDate());   }   if (hasServerTotalPacket()) {    hash = (37 * hash) + SERVER_TOTAL_PACKET_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getServerTotalPacket());   }   if (hasClientTotalByte()) {    hash = (37 * hash) + CLIENT_TOTAL_BYTE_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getClientTotalByte());   }   if (hasLinkId()) {    hash = (37 * hash) + LINK_ID_FIELD_NUMBER;    hash = (53 * hash) + getLinkId();   }   if (hasTotalByte()) {    hash = (37 * hash) + TOTAL_BYTE_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getTotalByte());   }   if (hasFlowEndTime()) {    hash = (37 * hash) + FLOW_END_TIME_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getFlowEndTime());   }   if (hasClientPort()) {    hash = (37 * hash) + CLIENT_PORT_FIELD_NUMBER;    hash = (53 * hash) + getClientPort();   }   if (hasProtocol()) {    hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;    hash = (53 * hash) + getProtocol();   }   if (hasTotalPacket()) {    hash = (37 * hash) + TOTAL_PACKET_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getTotalPacket());   }   if (hasFlowDuration()) {    hash = (37 * hash) + FLOW_DURATION_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getFlowDuration());   }   if (hasId()) {    hash = (37 * hash) + ID_FIELD_NUMBER;    hash = (53 * hash) + getId().hashCode();   }   if (hasServerIpAddr()) {    hash = (37 * hash) + SERVER_IP_ADDR_FIELD_NUMBER;    hash = (53 * hash) + getServerIpAddr().hashCode();   }   if (hasDirectionMask()) {    hash = (37 * hash) + DIRECTION_MASK_FIELD_NUMBER;    hash = (53 * hash) + getDirectionMask().hashCode();   }   if (hasApp()) {    hash = (37 * hash) + APP_FIELD_NUMBER;    hash = (53 * hash) + getApp();   }   if (hasClientCountryId()) {    hash = (37 * hash) + CLIENT_COUNTRY_ID_FIELD_NUMBER;    hash = (53 * hash) + getClientCountryId();   }   if (hasClientNetsegmentId()) {    hash = (37 * hash) + CLIENT_NETSEGMENT_ID_FIELD_NUMBER;    hash = (53 * hash) + getClientNetsegmentId();   }   if (hasClientTotalPacket()) {    hash = (37 * hash) + CLIENT_TOTAL_PACKET_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getClientTotalPacket());   }   if (hasClientIpAddr()) {    hash = (37 * hash) + CLIENT_IP_ADDR_FIELD_NUMBER;    hash = (53 * hash) + getClientIpAddr().hashCode();   }   if (hasTcpStatus()) {    hash = (37 * hash) + TCP_STATUS_FIELD_NUMBER;    hash = (53 * hash) + getTcpStatus();   }   if (hasServerCountryId()) {    hash = (37 * hash) + SERVER_COUNTRY_ID_FIELD_NUMBER;    hash = (53 * hash) + getServerCountryId();   }   if (hasServerNetsegmentId()) {    hash = (37 * hash) + SERVER_NETSEGMENT_ID_FIELD_NUMBER;    hash = (53 * hash) + getServerNetsegmentId();   }   if (hasAvgPktSize()) {    hash = (37 * hash) + AVG_PKT_SIZE_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getAvgPktSize());   }   if (hasServerPort()) {    hash = (37 * hash) + SERVER_PORT_FIELD_NUMBER;    hash = (53 * hash) + getServerPort();   }   if (hasServerTotalByte()) {    hash = (37 * hash) + SERVER_TOTAL_BYTE_FIELD_NUMBER;    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(      getServerTotalByte());   }   if (hasTotalPacketps()) {    hash = (37 * hash) + TOTAL_PACKETPS_FIELD_NUMBER;    hash = (53 * hash) + getTotalPacketps();   }   hash = (29 * hash) + unknownFields.hashCode();   memoizedHashCode = hash;   return hash;  }  public static TCPLogOuterClass.TCPLog parseFrom(    java.NIO.ByteBuffer data)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data);  }  public static TCPLogOuterClass.TCPLog parseFrom(    java.nio.ByteBuffer data,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data, extensionRegistry);  }  public static TCPLogOuterClass.TCPLog parseFrom(    com.google.protobuf.ByteString data)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data);  }  public static TCPLogOuterClass.TCPLog parseFrom(    com.google.protobuf.ByteString data,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data, extensionRegistry);  }  public static TCPLogOuterClass.TCPLog parseFrom(byte[] data)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data);  }  public static TCPLogOuterClass.TCPLog parseFrom(    byte[] data,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws com.google.protobuf.InvalidProtocolBufferException {   return PARSER.parseFrom(data, extensionRegistry);  }  public static TCPLogOuterClass.TCPLog parseFrom(java.io.InputStream input)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseWithIOException(PARSER, input);  }  public static TCPLogOuterClass.TCPLog parseFrom(    java.io.InputStream input,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseWithIOException(PARSER, input, extensionRegistry);  }  public static TCPLogOuterClass.TCPLog parseDelimitedFrom(java.io.InputStream input)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseDelimitedWithIOException(PARSER, input);  }  public static TCPLogOuterClass.TCPLog parseDelimitedFrom(    java.io.InputStream input,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseDelimitedWithIOException(PARSER, input, extensionRegistry);  }  public static TCPLogOuterClass.TCPLog parseFrom(    com.google.protobuf.CodedInputStream input)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseWithIOException(PARSER, input);  }  public static TCPLogOuterClass.TCPLog parseFrom(    com.google.protobuf.CodedInputStream input,    com.google.protobuf.ExtensionRegistryLite extensionRegistry)    throws java.io.IOException {   return com.google.protobuf.GeneratedMessageV3     .parseWithIOException(PARSER, input, extensionRegistry);  }  public Builder newBuilderForType() { return newBuilder(); }  public static Builder newBuilder() {   return DEFAULT_INSTANCE.toBuilder();  }  public static Builder newBuilder(TCPLogOuterClass.TCPLog prototype) {   return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);  }  public Builder toBuilder() {   return this == DEFAULT_INSTANCE     ? new Builder() : new Builder().mergeFrom(this);  }  @java.lang.Override  protected Builder newBuilderForType(    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {   Builder builder = new Builder(parent);   return builder;  }    public static final class Builder extends    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements    // @@protoc_insertion_point(builder_implements:TCPLog)    TCPLogOuterClass.TCPLogOrBuilder {   public static final com.google.protobuf.Descriptors.Descriptor     getDescriptor() {    return TCPLogOuterClass.internal_static_TCPLog_descriptor;   }   protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable     internalGetFieldAccessorTable() {    return TCPLogOuterClass.internal_static_TCPLog_fieldAccessorTable      .ensureFieldAccessorsInitialized(        TCPLogOuterClass.TCPLog.class, TCPLogOuterClass.TCPLog.Builder.class);   }   // Construct using TCPLogOuterClass.TCPLog.newBuilder()   private Builder() {    maybeForceBuilderInitialization();   }   private Builder(     com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {    super(parent);    maybeForceBuilderInitialization();   }   private void maybeForceBuilderInitialization() {    if (com.google.protobuf.GeneratedMessageV3        .alwaysUseFieldBuilders) {    }   }   public Builder clear() {    super.clear();    totalByteps_ = 0;    bitField0_ = (bitField0_ & ~0x00000001);    flowStartTime_ = 0L;    bitField0_ = (bitField0_ & ~0x00000002);    date_ = 0L;    bitField0_ = (bitField0_ & ~0x00000004);    serverTotalPacket_ = 0L;    bitField0_ = (bitField0_ & ~0x00000008);    clientTotalByte_ = 0L;    bitField0_ = (bitField0_ & ~0x00000010);    linkId_ = 0;    bitField0_ = (bitField0_ & ~0x00000020);    totalByte_ = 0L;    bitField0_ = (bitField0_ & ~0x00000040);    flowEndTime_ = 0L;    bitField0_ = (bitField0_ & ~0x00000080);    clientPort_ = 0;    bitField0_ = (bitField0_ & ~0x00000100);    protocol_ = 0;    bitField0_ = (bitField0_ & ~0x00000200);    totalPacket_ = 0L;    bitField0_ = (bitField0_ & ~0x00000400);    flowDuration_ = 0L;    bitField0_ = (bitField0_ & ~0x00000800);    id_ = "";    bitField0_ = (bitField0_ & ~0x00001000);    serverIpAddr_ = "";    bitField0_ = (bitField0_ & ~0x00002000);    directionMask_ = "";    bitField0_ = (bitField0_ & ~0x00004000);    app_ = 0;    bitField0_ = (bitField0_ & ~0x00008000);    clientCountryId_ = 0;    bitField0_ = (bitField0_ & ~0x00010000);    clientNetsegmentId_ = 0;    bitField0_ = (bitField0_ & ~0x00020000);    clientTotalPacket_ = 0L;    bitField0_ = (bitField0_ & ~0x00040000);    clientIpAddr_ = "";    bitField0_ = (bitField0_ & ~0x00080000);    tcpStatus_ = 0;    bitField0_ = (bitField0_ & ~0x00100000);    serverCountryId_ = 0;    bitField0_ = (bitField0_ & ~0x00200000);    serverNetsegmentId_ = 0;    bitField0_ = (bitField0_ & ~0x00400000);    avgPktSize_ = 0L;    bitField0_ = (bitField0_ & ~0x00800000);    serverPort_ = 0;    bitField0_ = (bitField0_ & ~0x01000000);    serverTotalByte_ = 0L;    bitField0_ = (bitField0_ & ~0x02000000);    totalPacketps_ = 0;    bitField0_ = (bitField0_ & ~0x04000000);    return this;   }   public com.google.protobuf.Descriptors.Descriptor     getDescriptorForType() {    return TCPLogOuterClass.internal_static_TCPLog_descriptor;   }   public TCPLogOuterClass.TCPLog getDefaultInstanceForType() {    return TCPLogOuterClass.TCPLog.getDefaultInstance();   }   public TCPLogOuterClass.TCPLog build() {    TCPLogOuterClass.TCPLog result = buildPartial();    if (!result.isInitialized()) {     throw newUninitializedMessageException(result);    }    return result;   }   public TCPLogOuterClass.TCPLog buildPartial() {    TCPLogOuterClass.TCPLog result = new TCPLogOuterClass.TCPLog(this);    int from_bitField0_ = bitField0_;    int to_bitField0_ = 0;    if (((from_bitField0_ & 0x00000001) == 0x00000001)) {     to_bitField0_ |= 0x00000001;    }    result.totalByteps_ = totalByteps_;    if (((from_bitField0_ & 0x00000002) == 0x00000002)) {     to_bitField0_ |= 0x00000002;    }    result.flowStartTime_ = flowStartTime_;    if (((from_bitField0_ & 0x00000004) == 0x00000004)) {     to_bitField0_ |= 0x00000004;    }    result.date_ = date_;    if (((from_bitField0_ & 0x00000008) == 0x00000008)) {     to_bitField0_ |= 0x00000008;    }    result.serverTotalPacket_ = serverTotalPacket_;    if (((from_bitField0_ & 0x00000010) == 0x00000010)) {     to_bitField0_ |= 0x00000010;    }    result.clientTotalByte_ = clientTotalByte_;    if (((from_bitField0_ & 0x00000020) == 0x00000020)) {     to_bitField0_ |= 0x00000020;    }    result.linkId_ = linkId_;    if (((from_bitField0_ & 0x00000040) == 0x00000040)) {     to_bitField0_ |= 0x00000040;    }    result.totalByte_ = totalByte_;    if (((from_bitField0_ & 0x00000080) == 0x00000080)) {     to_bitField0_ |= 0x00000080;    }    result.flowEndTime_ = flowEndTime_;    if (((from_bitField0_ & 0x00000100) == 0x00000100)) {     to_bitField0_ |= 0x00000100;    }    result.clientPort_ = clientPort_;    if (((from_bitField0_ & 0x00000200) == 0x00000200)) {     to_bitField0_ |= 0x00000200;    }    result.protocol_ = protocol_;    if (((from_bitField0_ & 0x00000400) == 0x00000400)) {     to_bitField0_ |= 0x00000400;    }    result.totalPacket_ = totalPacket_;    if (((from_bitField0_ & 0x00000800) == 0x00000800)) {     to_bitField0_ |= 0x00000800;    }    result.flowDuration_ = flowDuration_;    if (((from_bitField0_ & 0x00001000) == 0x00001000)) {     to_bitField0_ |= 0x00001000;    }    result.id_ = id_;    if (((from_bitField0_ & 0x00002000) == 0x00002000)) {     to_bitField0_ |= 0x00002000;    }    result.serverIpAddr_ = serverIpAddr_;    if (((from_bitField0_ & 0x00004000) == 0x00004000)) {     to_bitField0_ |= 0x00004000;    }    result.directionMask_ = directionMask_;    if (((from_bitField0_ & 0x00008000) == 0x00008000)) {     to_bitField0_ |= 0x00008000;    }    result.app_ = app_;    if (((from_bitField0_ & 0x00010000) == 0x00010000)) {     to_bitField0_ |= 0x00010000;    }    result.clientCountryId_ = clientCountryId_;    if (((from_bitField0_ & 0x00020000) == 0x00020000)) {     to_bitField0_ |= 0x00020000;    }    result.clientNetsegmentId_ = clientNetsegmentId_;    if (((from_bitField0_ & 0x00040000) == 0x00040000)) {     to_bitField0_ |= 0x00040000;    }    result.clientTotalPacket_ = clientTotalPacket_;    if (((from_bitField0_ & 0x00080000) == 0x00080000)) {     to_bitField0_ |= 0x00080000;    }    result.clientIpAddr_ = clientIpAddr_;    if (((from_bitField0_ & 0x00100000) == 0x00100000)) {     to_bitField0_ |= 0x00100000;    }    result.tcpStatus_ = tcpStatus_;    if (((from_bitField0_ & 0x00200000) == 0x00200000)) {     to_bitField0_ |= 0x00200000;    }    result.serverCountryId_ = serverCountryId_;    if (((from_bitField0_ & 0x00400000) == 0x00400000)) {     to_bitField0_ |= 0x00400000;    }    result.serverNetsegmentId_ = serverNetsegmentId_;    if (((from_bitField0_ & 0x00800000) == 0x00800000)) {     to_bitField0_ |= 0x00800000;    }    result.avgPktSize_ = avgPktSize_;    if (((from_bitField0_ & 0x01000000) == 0x01000000)) {     to_bitField0_ |= 0x01000000;    }    result.serverPort_ = serverPort_;    if (((from_bitField0_ & 0x02000000) == 0x02000000)) {     to_bitField0_ |= 0x02000000;    }    result.serverTotalByte_ = serverTotalByte_;    if (((from_bitField0_ & 0x04000000) == 0x04000000)) {     to_bitField0_ |= 0x04000000;    }    result.totalPacketps_ = totalPacketps_;    result.bitField0_ = to_bitField0_;    onBuilt();    return result;   }   public Builder clone() {    return (Builder) super.clone();   }   public Builder setField(     com.google.protobuf.Descriptors.FieldDescriptor field,     Object value) {    return (Builder) super.setField(field, value);   }   public Builder clearField(     com.google.protobuf.Descriptors.FieldDescriptor field) {    return (Builder) super.clearField(field);   }   public Builder clearOneof(     com.google.protobuf.Descriptors.OneofDescriptor oneof) {    return (Builder) super.clearOneof(oneof);   }   public Builder setRepeatedField(     com.google.protobuf.Descriptors.FieldDescriptor field,     int index, Object value) {    return (Builder) super.setRepeatedField(field, index, value);   }   public Builder addRepeatedField(     com.google.protobuf.Descriptors.FieldDescriptor field,     Object value) {    return (Builder) super.addRepeatedField(field, value);   }   public Builder mergeFrom(com.google.protobuf.Message other) {    if (other instanceof TCPLogOuterClass.TCPLog) {     return mergeFrom((TCPLogOuterClass.TCPLog)other);    } else {     super.mergeFrom(other);     return this;    }   }   public Builder mergeFrom(TCPLogOuterClass.TCPLog other) {    if (other == TCPLogOuterClass.TCPLog.getDefaultInstance()) return this;    if (other.hasTotalByteps()) {     setTotalByteps(other.getTotalByteps());    }    if (other.hasFlowStartTime()) {     setFlowStartTime(other.getFlowStartTime());    }    if (other.hasDate()) {     setDate(other.getDate());    }    if (other.hasServerTotalPacket()) {     setServerTotalPacket(other.getServerTotalPacket());    }    if (other.hasClientTotalByte()) {     setClientTotalByte(other.getClientTotalByte());    }    if (other.hasLinkId()) {     setLinkId(other.getLinkId());    }    if (other.hasTotalByte()) {     setTotalByte(other.getTotalByte());    }    if (other.hasFlowEndTime()) {     setFlowEndTime(other.getFlowEndTime());    }    if (other.hasClientPort()) {     setClientPort(other.getClientPort());    }    if (other.hasProtocol()) {     setProtocol(other.getProtocol());    }    if (other.hasTotalPacket()) {     setTotalPacket(other.getTotalPacket());    }    if (other.hasFlowDuration()) {     setFlowDuration(other.getFlowDuration());    }    if (other.hasId()) {     bitField0_ |= 0x00001000;     id_ = other.id_;     onChanged();    }    if (other.hasServerIpAddr()) {     bitField0_ |= 0x00002000;     serverIpAddr_ = other.serverIpAddr_;     onChanged();    }    if (other.hasDirectionMask()) {     bitField0_ |= 0x00004000;     directionMask_ = other.directionMask_;     onChanged();    }    if (other.hasApp()) {     setApp(other.getApp());    }    if (other.hasClientCountryId()) {     setClientCountryId(other.getClientCountryId());    }    if (other.hasClientNetsegmentId()) {     setClientNetsegmentId(other.getClientNetsegmentId());    }    if (other.hasClientTotalPacket()) {     setClientTotalPacket(other.getClientTotalPacket());    }    if (other.hasClientIpAddr()) {     bitField0_ |= 0x00080000;     clientIpAddr_ = other.clientIpAddr_;     onChanged();    }    if (other.hasTcpStatus()) {     setTcpStatus(other.getTcpStatus());    }    if (other.hasServerCountryId()) {     setServerCountryId(other.getServerCountryId());    }    if (other.hasServerNetsegmentId()) {     setServerNetsegmentId(other.getServerNetsegmentId());    }    if (other.hasAvgPktSize()) {     setAvgPktSize(other.getAvgPktSize());    }    if (other.hasServerPort()) {     setServerPort(other.getServerPort());    }    if (other.hasServerTotalByte()) {     setServerTotalByte(other.getServerTotalByte());    }    if (other.hasTotalPacketps()) {     setTotalPacketps(other.getTotalPacketps());    }    this.mergeUnknownFields(other.unknownFields);    onChanged();    return this;   }   public final boolean isInitialized() {    return true;   }   public Builder mergeFrom(     com.google.protobuf.CodedInputStream input,     com.google.protobuf.ExtensionRegistryLite extensionRegistry)     throws java.io.IOException {    TCPLogOuterClass.TCPLog parsedMessage = null;    try {     parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);    } catch (com.google.protobuf.InvalidProtocolBufferException e) {     parsedMessage = (TCPLogOuterClass.TCPLog) e.getUnfinishedMessage();     throw e.unwrapiOException();    } finally {     if (parsedMessage != null) {      mergeFrom(parsedMessage);     }    }    return this;   }   private int bitField0_;   private int totalByteps_ ;      public boolean hasTotalByteps() {    return ((bitField0_ & 0x00000001) == 0x00000001);   }      public int getTotalByteps() {    return totalByteps_;   }      public Builder setTotalByteps(int value) {    bitField0_ |= 0x00000001;    totalByteps_ = value;    onChanged();    return this;   }      public Builder clearTotalByteps() {    bitField0_ = (bitField0_ & ~0x00000001);    totalByteps_ = 0;    onChanged();    return this;   }   private long flowStartTime_ ;      public boolean hasFlowStartTime() {    return ((bitField0_ & 0x00000002) == 0x00000002);   }      public long getFlowStartTime() {    return flowStartTime_;   }      public Builder setFlowStartTime(long value) {    bitField0_ |= 0x00000002;    flowStartTime_ = value;    onChanged();    return this;   }      public Builder clearFlowStartTime() {    bitField0_ = (bitField0_ & ~0x00000002);    flowStartTime_ = 0L;    onChanged();    return this;   }   private long date_ ;      public boolean hasDate() {    return ((bitField0_ & 0x00000004) == 0x00000004);   }      public long getDate() {    return date_;   }      public Builder setDate(long value) {    bitField0_ |= 0x00000004;    date_ = value;    onChanged();    return this;   }      public Builder clearDate() {    bitField0_ = (bitField0_ & ~0x00000004);    date_ = 0L;    onChanged();    return this;   }   private long serverTotalPacket_ ;      public boolean hasServerTotalPacket() {    return ((bitField0_ & 0x00000008) == 0x00000008);   }      public long getServerTotalPacket() {    return serverTotalPacket_;   }      public Builder setServerTotalPacket(long value) {    bitField0_ |= 0x00000008;    serverTotalPacket_ = value;    onChanged();    return this;   }      public Builder clearServerTotalPacket() {    bitField0_ = (bitField0_ & ~0x00000008);    serverTotalPacket_ = 0L;    onChanged();    return this;   }   private long clientTotalByte_ ;      public boolean hasClientTotalByte() {    return ((bitField0_ & 0x00000010) == 0x00000010);   }      public long getClientTotalByte() {    return clientTotalByte_;   }      public Builder setClientTotalByte(long value) {    bitField0_ |= 0x00000010;    clientTotalByte_ = value;    onChanged();    return this;   }      public Builder clearClientTotalByte() {    bitField0_ = (bitField0_ & ~0x00000010);    clientTotalByte_ = 0L;    onChanged();    return this;   }   private int linkId_ ;      public boolean hasLinkId() {    return ((bitField0_ & 0x00000020) == 0x00000020);   }      public int getLinkId() {    return linkId_;   }      public Builder setLinkId(int value) {    bitField0_ |= 0x00000020;    linkId_ = value;    onChanged();    return this;   }      public Builder clearLinkId() {    bitField0_ = (bitField0_ & ~0x00000020);    linkId_ = 0;    onChanged();    return this;   }   private long totalByte_ ;      public boolean hasTotalByte() {    return ((bitField0_ & 0x00000040) == 0x00000040);   }      public long getTotalByte() {    return totalByte_;   }      public Builder setTotalByte(long value) {    bitField0_ |= 0x00000040;    totalByte_ = value;    onChanged();    return this;   }      public Builder clearTotalByte() {    bitField0_ = (bitField0_ & ~0x00000040);    totalByte_ = 0L;    onChanged();    return this;   }   private long flowEndTime_ ;      public boolean hasFlowEndTime() {    return ((bitField0_ & 0x00000080) == 0x00000080);   }      public long getFlowEndTime() {    return flowEndTime_;   }      public Builder setFlowEndTime(long value) {    bitField0_ |= 0x00000080;    flowEndTime_ = value;    onChanged();    return this;   }      public Builder clearFlowEndTime() {    bitField0_ = (bitField0_ & ~0x00000080);    flowEndTime_ = 0L;    onChanged();    return this;   }   private int clientPort_ ;      public boolean hasClientPort() {    return ((bitField0_ & 0x00000100) == 0x00000100);   }      public int getClientPort() {    return clientPort_;   }      public Builder setClientPort(int value) {    bitField0_ |= 0x00000100;    clientPort_ = value;    onChanged();    return this;   }      public Builder clearClientPort() {    bitField0_ = (bitField0_ & ~0x00000100);    clientPort_ = 0;    onChanged();    return this;   }   private int protocol_ ;      public boolean hasProtocol() {    return ((bitField0_ & 0x00000200) == 0x00000200);   }      public int getProtocol() {    return protocol_;   }      public Builder setProtocol(int value) {    bitField0_ |= 0x00000200;    protocol_ = value;    onChanged();    return this;   }      public Builder clearProtocol() {    bitField0_ = (bitField0_ & ~0x00000200);    protocol_ = 0;    onChanged();    return this;   }   private long totalPacket_ ;      public boolean hasTotalPacket() {    return ((bitField0_ & 0x00000400) == 0x00000400);   }      public long getTotalPacket() {    return totalPacket_;   }      public Builder setTotalPacket(long value) {    bitField0_ |= 0x00000400;    totalPacket_ = value;    onChanged();    return this;   }      public Builder clearTotalPacket() {    bitField0_ = (bitField0_ & ~0x00000400);    totalPacket_ = 0L;    onChanged();    return this;   }   private long flowDuration_ ;      public boolean hasFlowDuration() {    return ((bitField0_ & 0x00000800) == 0x00000800);   }      public long getFlowDuration() {    return flowDuration_;   }      public Builder setFlowDuration(long value) {    bitField0_ |= 0x00000800;    flowDuration_ = value;    onChanged();    return this;   }      public Builder clearFlowDuration() {    bitField0_ = (bitField0_ & ~0x00000800);    flowDuration_ = 0L;    onChanged();    return this;   }   private java.lang.Object id_ = "";      public boolean hasId() {    return ((bitField0_ & 0x00001000) == 0x00001000);   }      public java.lang.String getId() {    java.lang.Object ref = id_;    if (!(ref instanceof java.lang.String)) {     com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;     java.lang.String s = bs.toStringUtf8();     if (bs.isValidUtf8()) {      id_ = s;     }     return s;    } else {     return (java.lang.String) ref;    }   }      public com.google.protobuf.ByteString     getIdBytes() {    java.lang.Object ref = id_;    if (ref instanceof String) {     com.google.protobuf.ByteString b =        com.google.protobuf.ByteString.copyFromUtf8(         (java.lang.String) ref);     id_ = b;     return b;    } else {     return (com.google.protobuf.ByteString) ref;    }   }      public Builder setId(     java.lang.String value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00001000;    id_ = value;    onChanged();    return this;   }      public Builder clearId() {    bitField0_ = (bitField0_ & ~0x00001000);    id_ = getDefaultInstance().getId();    onChanged();    return this;   }      public Builder setIdBytes(     com.google.protobuf.ByteString value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00001000;    id_ = value;    onChanged();    return this;   }   private java.lang.Object serverIpAddr_ = "";      public boolean hasServerIpAddr() {    return ((bitField0_ & 0x00002000) == 0x00002000);   }      public java.lang.String getServerIpAddr() {    java.lang.Object ref = serverIpAddr_;    if (!(ref instanceof java.lang.String)) {     com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;     java.lang.String s = bs.toStringUtf8();     if (bs.isValidUtf8()) {      serverIpAddr_ = s;     }     return s;    } else {     return (java.lang.String) ref;    }   }      public com.google.protobuf.ByteString     getServerIpAddrBytes() {    java.lang.Object ref = serverIpAddr_;    if (ref instanceof String) {     com.google.protobuf.ByteString b =        com.google.protobuf.ByteString.copyFromUtf8(         (java.lang.String) ref);     serverIpAddr_ = b;     return b;    } else {     return (com.google.protobuf.ByteString) ref;    }   }      public Builder setServerIpAddr(     java.lang.String value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00002000;    serverIpAddr_ = value;    onChanged();    return this;   }      public Builder clearServerIpAddr() {    bitField0_ = (bitField0_ & ~0x00002000);    serverIpAddr_ = getDefaultInstance().getServerIpAddr();    onChanged();    return this;   }      public Builder setServerIpAddrBytes(     com.google.protobuf.ByteString value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00002000;    serverIpAddr_ = value;    onChanged();    return this;   }   private java.lang.Object directionMask_ = "";      public boolean hasDirectionMask() {    return ((bitField0_ & 0x00004000) == 0x00004000);   }      public java.lang.String getDirectionMask() {    java.lang.Object ref = directionMask_;    if (!(ref instanceof java.lang.String)) {     com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;     java.lang.String s = bs.toStringUtf8();     if (bs.isValidUtf8()) {      directionMask_ = s;     }     return s;    } else {     return (java.lang.String) ref;    }   }      public com.google.protobuf.ByteString     getDirectionMaskBytes() {    java.lang.Object ref = directionMask_;    if (ref instanceof String) {     com.google.protobuf.ByteString b =        com.google.protobuf.ByteString.copyFromUtf8(         (java.lang.String) ref);     directionMask_ = b;     return b;    } else {     return (com.google.protobuf.ByteString) ref;    }   }      public Builder setDirectionMask(     java.lang.String value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00004000;    directionMask_ = value;    onChanged();    return this;   }      public Builder clearDirectionMask() {    bitField0_ = (bitField0_ & ~0x00004000);    directionMask_ = getDefaultInstance().getDirectionMask();    onChanged();    return this;   }      public Builder setDirectionMaskBytes(     com.google.protobuf.ByteString value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00004000;    directionMask_ = value;    onChanged();    return this;   }   private int app_ ;      public boolean hasApp() {    return ((bitField0_ & 0x00008000) == 0x00008000);   }      public int getApp() {    return app_;   }      public Builder setApp(int value) {    bitField0_ |= 0x00008000;    app_ = value;    onChanged();    return this;   }      public Builder clearApp() {    bitField0_ = (bitField0_ & ~0x00008000);    app_ = 0;    onChanged();    return this;   }   private int clientCountryId_ ;      public boolean hasClientCountryId() {    return ((bitField0_ & 0x00010000) == 0x00010000);   }      public int getClientCountryId() {    return clientCountryId_;   }      public Builder setClientCountryId(int value) {    bitField0_ |= 0x00010000;    clientCountryId_ = value;    onChanged();    return this;   }      public Builder clearClientCountryId() {    bitField0_ = (bitField0_ & ~0x00010000);    clientCountryId_ = 0;    onChanged();    return this;   }   private int clientNetsegmentId_ ;      public boolean hasClientNetsegmentId() {    return ((bitField0_ & 0x00020000) == 0x00020000);   }      public int getClientNetsegmentId() {    return clientNetsegmentId_;   }      public Builder setClientNetsegmentId(int value) {    bitField0_ |= 0x00020000;    clientNetsegmentId_ = value;    onChanged();    return this;   }      public Builder clearClientNetsegmentId() {    bitField0_ = (bitField0_ & ~0x00020000);    clientNetsegmentId_ = 0;    onChanged();    return this;   }   private long clientTotalPacket_ ;      public boolean hasClientTotalPacket() {    return ((bitField0_ & 0x00040000) == 0x00040000);   }      public long getClientTotalPacket() {    return clientTotalPacket_;   }      public Builder setClientTotalPacket(long value) {    bitField0_ |= 0x00040000;    clientTotalPacket_ = value;    onChanged();    return this;   }      public Builder clearClientTotalPacket() {    bitField0_ = (bitField0_ & ~0x00040000);    clientTotalPacket_ = 0L;    onChanged();    return this;   }   private java.lang.Object clientIpAddr_ = "";      public boolean hasClientIpAddr() {    return ((bitField0_ & 0x00080000) == 0x00080000);   }      public java.lang.String getClientIpAddr() {    java.lang.Object ref = clientIpAddr_;    if (!(ref instanceof java.lang.String)) {     com.google.protobuf.ByteString bs =       (com.google.protobuf.ByteString) ref;     java.lang.String s = bs.toStringUtf8();     if (bs.isValidUtf8()) {      clientIpAddr_ = s;     }     return s;    } else {     return (java.lang.String) ref;    }   }      public com.google.protobuf.ByteString     getClientIpAddrBytes() {    java.lang.Object ref = clientIpAddr_;    if (ref instanceof String) {     com.google.protobuf.ByteString b =        com.google.protobuf.ByteString.copyFromUtf8(         (java.lang.String) ref);     clientIpAddr_ = b;     return b;    } else {     return (com.google.protobuf.ByteString) ref;    }   }      public Builder setClientIpAddr(     java.lang.String value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00080000;    clientIpAddr_ = value;    onChanged();    return this;   }      public Builder clearClientIpAddr() {    bitField0_ = (bitField0_ & ~0x00080000);    clientIpAddr_ = getDefaultInstance().getClientIpAddr();    onChanged();    return this;   }      public Builder setClientIpAddrBytes(     com.google.protobuf.ByteString value) {    if (value == null) {  throw new NullPointerException(); } bitField0_ |= 0x00080000;    clientIpAddr_ = value;    onChanged();    return this;   }   private int tcpStatus_ ;      public boolean hasTcpStatus() {    return ((bitField0_ & 0x00100000) == 0x00100000);   }      public int getTcpStatus() {    return tcpStatus_;   }      public Builder setTcpStatus(int value) {    bitField0_ |= 0x00100000;    tcpStatus_ = value;    onChanged();    return this;   }      public Builder clearTcpStatus() {    bitField0_ = (bitField0_ & ~0x00100000);    tcpStatus_ = 0;    onChanged();    return this;   }   private int serverCountryId_ ;      public boolean hasServerCountryId() {    return ((bitField0_ & 0x00200000) == 0x00200000);   }      public int getServerCountryId() {    return serverCountryId_;   }      public Builder setServerCountryId(int value) {    bitField0_ |= 0x00200000;    serverCountryId_ = value;    onChanged();    return this;   }      public Builder clearServerCountryId() {    bitField0_ = (bitField0_ & ~0x00200000);    serverCountryId_ = 0;    onChanged();    return this;   }   private int serverNetsegmentId_ ;      public boolean hasServerNetsegmentId() {    return ((bitField0_ & 0x00400000) == 0x00400000);   }      public int getServerNetsegmentId() {    return serverNetsegmentId_;   }      public Builder setServerNetsegmentId(int value) {    bitField0_ |= 0x00400000;    serverNetsegmentId_ = value;    onChanged();    return this;   }      public Builder clearServerNetsegmentId() {    bitField0_ = (bitField0_ & ~0x00400000);    serverNetsegmentId_ = 0;    onChanged();    return this;   }   private long avgPktSize_ ;      public boolean hasAvgPktSize() {    return ((bitField0_ & 0x00800000) == 0x00800000);   }      public long getAvgPktSize() {    return avgPktSize_;   }      public Builder setAvgPktSize(long value) {    bitField0_ |= 0x00800000;    avgPktSize_ = value;    onChanged();    return this;   }      public Builder clearAvgPktSize() {    bitField0_ = (bitField0_ & ~0x00800000);    avgPktSize_ = 0L;    onChanged();    return this;   }   private int serverPort_ ;      public boolean hasServerPort() {    return ((bitField0_ & 0x01000000) == 0x01000000);   }      public int getServerPort() {    return serverPort_;   }      public Builder setServerPort(int value) {    bitField0_ |= 0x01000000;    serverPort_ = value;    onChanged();    return this;   }      public Builder clearServerPort() {    bitField0_ = (bitField0_ & ~0x01000000);    serverPort_ = 0;    onChanged();    return this;   }   private long serverTotalByte_ ;      public boolean hasServerTotalByte() {    return ((bitField0_ & 0x02000000) == 0x02000000);   }      public long getServerTotalByte() {    return serverTotalByte_;   }      public Builder setServerTotalByte(long value) {    bitField0_ |= 0x02000000;    serverTotalByte_ = value;    onChanged();    return this;   }      public Builder clearServerTotalByte() {    bitField0_ = (bitField0_ & ~0x02000000);    serverTotalByte_ = 0L;    onChanged();    return this;   }   private int totalPacketps_ ;      public boolean hasTotalPacketps() {    return ((bitField0_ & 0x04000000) == 0x04000000);   }      public int getTotalPacketps() {    return totalPacketps_;   }      public Builder setTotalPacketps(int value) {    bitField0_ |= 0x04000000;    totalPacketps_ = value;    onChanged();    return this;   }      public Builder clearTotalPacketps() {    bitField0_ = (bitField0_ & ~0x04000000);    totalPacketps_ = 0;    onChanged();    return this;   }   public final Builder setUnknownFields(     final com.google.protobuf.UnknownFieldSet unknownFields) {    return super.setUnknownFields(unknownFields);   }   public final Builder mergeUnknownFields(     final com.google.protobuf.UnknownFieldSet unknownFields) {    return super.mergeUnknownFields(unknownFields);   }   // @@protoc_insertion_point(builder_scope:TCPLog)  }  // @@protoc_insertion_point(class_scope:TCPLog)  private static final TCPLogOuterClass.TCPLog DEFAULT_INSTANCE;  static {   DEFAULT_INSTANCE = new TCPLogOuterClass.TCPLog();  }  public static TCPLogOuterClass.TCPLog getDefaultInstance() {   return DEFAULT_INSTANCE;  }  @java.lang.Deprecated public static final com.google.protobuf.Parser<TCPLog>    PARSER = new com.google.protobuf.AbstractParser<TCPLog>() {   public TCPLog parsePartialFrom(     com.google.protobuf.CodedInputStream input,     com.google.protobuf.ExtensionRegistryLite extensionRegistry)     throws com.google.protobuf.InvalidProtocolBufferException {     return new TCPLog(input, extensionRegistry);   }  };  public static com.google.protobuf.Parser<TCPLog> parser() {   return PARSER;  }  @java.lang.Override  public com.google.protobuf.Parser<TCPLog> getParserForType() {   return PARSER;  }  public TCPLogOuterClass.TCPLog getDefaultInstanceForType() {   return DEFAULT_INSTANCE;  } } private static final com.google.protobuf.Descriptors.Descriptor  internal_static_TCPLog_descriptor; private static final   com.google.protobuf.GeneratedMessageV3.FieldAccessorTable   internal_static_TCPLog_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor   getDescriptor() {  return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor   descriptor; static {  java.lang.String[] descriptorData = {   "\n\014TCPLog.proto\"\357\004\n\006TCPLog\022\024\n\014total_bytep" +   "s\030\001 \001(\005\022\027\n\017flow_start_time\030\002 \001(\003\022\014\n\004date" +   "\030\003 \001(\003\022\033\n\023server_total_packet\030\004 \001(\003\022\031\n\021c" +   "lient_total_byte\030\005 \001(\003\022\017\n\007link_id\030\006 \001(\005\022" +   "\022\n\ntotal_byte\030\007 \001(\003\022\025\n\rflow_end_time\030\010 \001" +   "(\003\022\023\n\013client_port\030\t \001(\005\022\020\n\010protocol\030\n \001(" +   "\005\022\024\n\014total_packet\030\013 \001(\003\022\025\n\rflow_duration" +   "\030\014 \001(\003\022\n\n\002id\030\r \001(\t\022\026\n\016server_ip_addr\030\016 \001" +   "(\t\022\026\n\016direction_mask\030\017 \001(\t\022\013\n\003app\030\020 \001(\005\022" +   "\031\n\021client_country_id\030\021 \001(\005\022\034\n\024client_net",   "segment_id\030\022 \001(\005\022\033\n\023client_total_packet\030" +   "\023 \001(\003\022\026\n\016client_ip_addr\030\024 \001(\t\022\022\n\ntcp_sta" +   "tus\030\025 \001(\005\022\031\n\021server_country_id\030\026 \001(\005\022\034\n\024" +   "server_netsegment_id\030\027 \001(\005\022\024\n\014avg_pkt_si" +   "ze\030\030 \001(\003\022\023\n\013server_port\030\031 \001(\005\022\031\n\021server_" +   "total_byte\030\032 \001(\003\022\026\n\016total_packetps\030\033 \001(\005"  };  com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =    new com.google.protobuf.Descriptors.FileDescriptor.  InternalDescriptorAssigner() {     public com.google.protobuf.ExtensionRegistry assignDescriptors(       com.google.protobuf.Descriptors.FileDescriptor root) {      descriptor = root;      return null;     }    };  com.google.protobuf.Descriptors.FileDescriptor   .internalBuildGeneratedFileFrom(descriptorData,    new com.google.protobuf.Descriptors.FileDescriptor[] {    }, assigner);  internal_static_TCPLog_descriptor =   getDescriptor().getMessageTypes().get(0);  internal_static_TCPLog_fieldAccessorTable = new   com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(    internal_static_TCPLog_descriptor,    new java.lang.String[] { "TotalByteps", "FlowStartTime", "Date", "ServerTotalPacket", "ClientTotalByte", "LinkId", "TotalByte", "FlowEndTime", "ClientPort", "Protocol", "TotalPacket", "FlowDuration", "Id", "ServerIpAddr", "DirectionMask", "App", "ClientCountryId", "ClientNetsegmentId", "ClientTotalPacket", "ClientIpAddr", "TcpStatus", "ServerCountryId", "ServerNetsegmentId", "AvgPktSize", "ServerPort", "ServerTotalByte", "TotalPacketps", }); } // @@protoc_insertion_point(outer_class_scope)}

之后便可以使用该类进行序列化和反序列化。

具体示例代码如下》:

import java.io.File;import java.io.FileOutputStream;public class ProtoTest3 { public static void main(String[] args) throws Exception {    //模拟将对象转成byte[],方便传输   TCPLogOuterClass.TCPLog.Builder builder = TCPLogOuterClass.TCPLog.newBuilder();  builder.setTotalByteps(1024);  builder.setFlowStartTime(1502415717l);  builder.setDate(1502415717l);  //序列化到文件   TCPLogOuterClass.TCPLog tcpLog= builder.build();   FileOutputStream out = new FileOutputStream(new File("D:/pb"));   out.write(tcpLog.toByteArray());   out.close();   //反序列化  TCPLogOuterClass.TCPLog tcp = TCPLogOuterClass.TCPLog.parseFrom(tcpLog.toByteArray());  System.out.println(tcp);}}

二、AVRO序列化基本操作:

AVRO简介:

Apache Avro™ is a data serialization system.Avro provides:Rich data structures.A compact, fast, binary data format.A container file, to store persistent data.Remote procedure call (rpc).Simple integration with dynamic languages. Code generation is not required to read or write data files nor to use or implement RPC protocols. Code generation as an optional optimization, only worth implementing for statically typed languages.

Avro是一个序列化系统。丰富的数据结构、快速压缩的二进制数据格式、数据持久化存储、RPC及动态语言集成。

2.1定义协议文件(TCPLog.avro)

{"namespace": "example.avro", "type": "record", "name": "TCPLog", "fields": [   {"name": "total_byteps", "type": "int"},   {"name": "flow_start_time", "type": "long"},   {"name": "date", "type": "long"}    ]}

avro和protobuf一样可以生成相应语言的类文件,或直接支持动态扩张。下面以Java语言不生成类说明:

具体序列化与反序列化操作代码如下:、

package avro;import java.io.File;import org.apache.avro.Schema;import org.apache.avro.file.DataFileReader;import org.apache.avro.file.DataFileWriter;import org.apache.avro.generic.GenericData;import org.apache.avro.generic.GenericDatumReader;import org.apache.avro.generic.GenericDatumWriter;import org.apache.avro.generic.GenericRecord;import org.apache.avro.io.DatumReader;import org.apache.avro.io.DatumWriter;public class AvroTest2 {public static void main(String[] args) throws Exception {  String filePath = "D:/TCPLog.avsc";  Schema schema = new Schema.Parser().parse(new File(filePath));    GenericRecord tcpLog = new GenericData.Record(schema);  tcpLog.put("total_byteps", 1024);  tcpLog.put("flow_start_time", 1502415717L);  tcpLog.put("date", 1502415717L);    System.out.println(tcpLog);      // Serialize user1 and tcpLog to disk  File file = new File("D:/avro");  DatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<GenericRecord>(schema);  DataFileWriter<GenericRecord> dataFileWriter = new DataFileWriter<GenericRecord>(datumWriter);  dataFileWriter.create(schema, file);  long timestart = System.currentTimeMillis();  dataFileWriter.append(tcpLog);  dataFileWriter.close();  long timeend = System.currentTimeMillis();  System.out.println(timeend-timestart);    // Deserialize users from disk  DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);  DataFileReader<GenericRecord> dataFileReader = new DataFileReader<>(new File("d:/avro"), datumReader);  GenericRecord tcpLogs = null;  long timestart1 = System.currentTimeMillis();  while (dataFileReader.hasNext()) {  // Reuse user object by passing it to next(). This saves us from  // allocating and garbage collecting many objects for files with  // many items.    tcpLogs = dataFileReader.next();//  System.out.println("xx"+tcpLogs); }  long timeend1 = System.currentTimeMillis();  System.out.println("Deserialize"+(timeend1-timestart1)); }}

以下是通过对100W tcpLog序列化操作对比结论:

Java中protobuf与avro的区别是什么

通过对比测试发现 avro的性能要不pb稍微好一些,且支持动态性。故技术选型上可以优先考虑。

以上是通过测试对比了pb与avro的一些性能差异,但是具体测试和机器和样本都有关系,可以参考。

以下是对比protobuf、avro、thrift的一些优缺点:

Google protobuf:优点  二进制消息,性能好/效率高(空间和时间效率都很不错)  proto文件生成目标代码,简单易用  序列化反序列化直接对应程序中的数据类,不需要解析后在进行映射(XML,JSON都是这种方式)  支持向前兼容(新加字段采用默认值)和向后兼容(忽略新加字段),简化升级  支持多种语言(可以把proto文件看做IDL文件)  Netty等一些框架集成缺点  官方只支持c++,JAVA和python语言绑定  二进制可读性差(貌似提供了Text_Fromat功能)  二进制不具有自描述特性  默认不具备动态特性(可以通过动态定义生成消息类型或者动态编译支持)  只涉及序列化和反序列化技术,不涉及RPC功能(类似XML或者jsON的解析器)Apache Thrift:应用  Facebook的开源日志收集系统(scribe: https://GitHub.com/facebook/scribe)  淘宝的实时数据传输平台(TimeTunnel Http://code.taobao.org/p/TimeTunnel/wiki/index)  Evernote开放接口(https://github.com/evernote/evernote-thrift)  Quora(http://www.quora.com/Apache-Thrift)  HBase( http://abloz.com/hbase/book.html#thrift )  …优点  支持非常多的语言绑定  thrift文件生成目标代码,简单易用  消息定义文件支持注释  数据结构与传输表现的分离,支持多种消息格式  包含完整的客户端/服务端堆栈,可快速实现RPC  支持同步和异步通信缺点  和protobuf一样不支持动态特性Apache Avro:应用  hadoop RPC (http://hadoop.apache.org/#What+Is+Apache+Hadoop%3F)优点  二进制消息,性能好/效率高  使用JSON描述模式  模式和数据统一存储,消息自描述,不需要生成stub代码(支持生成IDL)  RPC调用在握手阶段交换模式定义  包含完整的客户端/服务端堆栈,可快速实现RPC  支持同步和异步通信  支持动态消息  模式定义允许定义数据的排序(序列化时会遵循这个顺序)  提供了基于Jetty内核的服务基于Netty的服务缺点  只支持Avro自己的序列化格式  语言绑定不如Thrift丰富

关于Java中protobuf与avro的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Java中protobuf与avro的区别是什么

本文链接: https://lsjlt.com/news/224228.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中protobuf与avro的区别是什么
    这篇文章给大家介绍Java中protobuf与avro的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、protobuf基本操作protobuf简介:Protocol Buffers (...
    99+
    2023-05-31
    java protobuf avro
  • Java语言中&&与& ||与|的区别是什么
    1、运算符两边的变量为boolean变量时       先列出代码:public class Test { public static void main(String[] args) {...
    99+
    2023-05-31
    java
  • java中vector与list的区别是什么?
    vector和list的区别 ● vector的随机访问效率高,但在插入和删除时(不包括尾部)需要挪动数据,不易操作。 ● List的访问要遍历整个链表,它的随机访问效率低。但对数据的插入和删除操作等都比较方便,改变指针的指向即可。 ● l...
    99+
    2021-09-04
    java入门 java vector list
  • java中Byte与byte的区别是什么?
    byte和Bytebyte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127。Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装。二者关系:Byte是byt...
    99+
    2021-03-11
    java教程 java Byte byte
  • java中next()与nextLine()的区别是什么
    java中next()与nextLine()的区别:next()不会获取字符前后的空格,只获取字符,而nextLine()会获取字符前后的空格。next()遇到空格/Tab键/回车截止获取过程,而nextLine()遇到回车键截止。next...
    99+
    2024-04-02
  • java中super与this的区别是什么
    java中super与this的区别:super是当前对象里面的父对象的引用,而this指的是当前对象的引用。super调用基类中的某一个构造函数,而this调用的是本类中另一种形成的构造函数。super是用来访问直接父类中被隐藏的父类中成...
    99+
    2024-04-02
  • Java中int与Integer的区别是什么
    这篇文章主要讲解了“Java中int与Integer的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中int与Integer的区别是什么”吧!nJava 是一种强数据类型的...
    99+
    2023-06-21
  • Java中for与foreach的区别是什么
    本篇内容主要讲解“Java中for与foreach的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中for与foreach的区别是什么”吧!(1)遍历元素首先,我们一一段代码为...
    99+
    2023-06-30
  • Java中List与ArrayList的区别是什么
    Java中List和ArrayList都是集合类的接口,但是它们之间存在一些区别。1. 继承关系:List是一个接口,而ArrayL...
    99+
    2023-08-15
    Java List ArrayList
  • Java中replace与replaceAll的区别是什么
    Java中replace和replaceAll方法都是用来替换字符串中的字符或字符串,但是它们的区别主要有以下几点:1. 参数类型:...
    99+
    2023-08-15
    Java replace replaceAll
  • java中await与wait的区别是什么
    在Java中,await与wait都用于线程的同步,但是它们有一些区别: await是在JDK5中引入的,是在Condition...
    99+
    2024-03-08
    java
  • java中print与println的区别是什么
    在Java中,print()和println()都是用于输出文本的方法,但它们之间有一些区别: print()方法会输出文本并将...
    99+
    2024-04-02
  • java ee与java的区别是什么
    JavaEE是指java enterprise edition,java企业版,多用于企业级开发,包括web开发等等很多组件。Java和JavaEE区别: Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越...
    99+
    2014-06-01
    java入门 java ee java 区别
  • java se与java的区别是什么
    Java是一门程序设计语言,它有三个版本,Java SE(标准版)、Java EE(企业版)和Java ME(微型版)。而Java SE只是一个使用Java进行编程的规范、框架,它不是一门编程语言。Java SE(java standard...
    99+
    2020-11-03
    java入门 java se java 区别
  • android与java的区别是什么
    java是一门编成语言,而android是一个基于linux内核的手机操作系统。两者的关系在于,用java语言可以编写出应用程序安装在android,这也是现在java语言就业的一个方向。编程界网,大量的免费Java入门教程,欢迎在线学习!...
    99+
    2018-02-25
    java教程 android java 区别
  • html与java的区别是什么?
    html与java的区别两者本质不一样。Java是一种面向对象编程语言,像C、Basic一样,但各有各的特点。java是一门程序语言,具有众多优点,它是可以编写网页的;但那个语言叫JSP,JSP语言是JAVA程序语言的一种技术。【推荐学习:...
    99+
    2014-10-09
    java基础 html java
  • java与javascript的区别是什么
    这篇文章给大家分享的是有关java与javascript的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 区别:1、JavaScript由浏...
    99+
    2024-04-02
  • Kotlin与Java的区别是什么
    Kotlin与Java的区别可以总结如下:1. 语法简洁:Kotlin的语法相对于Java更简洁易读,减少了冗余的代码和样板代码。例...
    99+
    2023-08-14
    Kotlin Java
  • java中String、StringBuffer与StringBuilder的区别是什么
    这篇文章主要介绍“java中String、StringBuffer与StringBuilder的区别是什么”,在日常操作中,相信很多人在java中String、StringBuffer与StringBuilder的区别是什么问题上存在疑惑,...
    99+
    2023-06-21
  • java与安卓的区别是什么
    Android和Java区别Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优势之分,只是两种职业岗位选择,学安卓从事移动互联方向开发,学Java从事软件方向开发,主要看个人选择,从学Java转移到安卓,学安卓转...
    99+
    2015-09-03
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作