01/10/2018, 16:45

Xin mọi người giúp đỡ về Google Protocol Message trong java

Mình có tham khảo mẫu code trên github. Thấy người ta tạo 1 file
CommonMessage.proto với nội dung:

syntax = "proto3";
option java_package = "protobuf";
message Content {

    uint32 msgType = 1;
    uint64 sender = 2;
    uint64 receiver = 3;
    string content = 4;
    string receiverId = 5;
}

Trong file CommonMessage.java

private Content(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Content() {
      msgType_ = 0;
      sender_ = 0L;
      receiver_ = 0L;
      content_ = "";
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Content(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      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 (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              msgType_ = input.readUInt32();
              break;
            }
            case 16: {

              sender_ = input.readUInt64();
              break;
            }
            case 24: {

              receiver_ = input.readUInt64();
              break;
            }
            case 34: {
              String s = input.readStringRequireUtf8();

              content_ = s;
              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();
      }
    }

Vấn đề mình thắc mắc ở đây là các giá trị 8, 16, 24, 34 trong hàm switch case ở đâu mà có vây?. Mình cảm ơn.

Bài liên quan
0