• 大小: 5.32MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-01
  • 语言: C#
  • 标签: protobuf  

资源简介

Protocol Buffers v3.2.0 C# 版本

资源截图

代码片段和文件信息

import com.google.protobuf.ByteString;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.conformance.Conformance;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf_test_messages.proto3.TestMessagesProto3;
import com.google.protobuf.util.JsonFormat;
import com.google.protobuf.util.JsonFormat.TypeRegistry;
import java.io.IOException;
import java.nio.ByteBuffer;

class ConformanceJava {
  private int testCount = 0;
  private TypeRegistry typeRegistry;

  private boolean readFromStdin(byte[] buf int len) throws Exception {
    int ofs = 0;
    while (len > 0) {
      int read = System.in.read(buf ofs len);
      if (read == -1) {
        return false;  // EOF
      }
      ofs += read;
      len -= read;
    }

    return true;
  }

  private void writeToStdout(byte[] buf) throws Exception {
    System.out.write(buf);
  }

  // Returns -1 on EOF (the actual values will always be positive).
  private int readLittleEndianIntFromStdin() throws Exception {
    byte[] buf = new byte[4];
    if (!readFromStdin(buf 4)) {
      return -1;
    }
    return (buf[0] & 0xff)
        | ((buf[1] & 0xff) << 8)
        | ((buf[2] & 0xff) << 16)
        | ((buf[3] & 0xff) << 24);
  }

  private void writeLittleEndianIntToStdout(int val) throws Exception {
    byte[] buf = new byte[4];
    buf[0] = (byte)val;
    buf[1] = (byte)(val >> 8);
    buf[2] = (byte)(val >> 16);
    buf[3] = (byte)(val >> 24);
    writeToStdout(buf);
  }

  private enum BinaryDecoder {
    BYTE_STRING_DECODER() {
      @Override
      public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
          throws InvalidProtocolBufferException {
        return TestMessagesProto3.TestAllTypes.parseFrom(bytes);
      }
    }
    BYTE_ARRAY_DECODER() {
      @Override
      public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
          throws InvalidProtocolBufferException {
        return TestMessagesProto3.TestAllTypes.parseFrom(bytes.toByteArray());
      }
    }
    ARRAY_BYTE_BUFFER_DECODER() {
      @Override
      public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
          throws InvalidProtocolBufferException {
        ByteBuffer buffer = ByteBuffer.allocate(bytes.size());
        bytes.copyTo(buffer);
        buffer.flip();
        try {
          return TestMessagesProto3.TestAllTypes.parseFrom(CodedInputStream.newInstance(buffer));
        } catch (InvalidProtocolBufferException e) {
          throw e;
        } catch (IOException e) {
          throw new RuntimeException(
              “ByteString based ByteBuffer should not throw IOException.“ e);
        }
      }
    }
    READONLY_ARRAY_BYTE_BUFFER_DECODER() {
      @Override
      public TestMessagesProto3.TestAllTypes parse(ByteString bytes)
          throws InvalidProtocolBufferException {
        try {
          return TestMessagesProto3.TestAllTypes.parseFrom(
              CodedInputStream.newInstance(bytes.asReadOnlyByteBuffer()));
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-01-28 02:25  protobuf-3.2.0\
     文件        1361  2017-01-27 23:49  protobuf-3.2.0\autogen.sh
     文件        5826  2017-01-28 02:20  protobuf-3.2.0\ar-lib
     文件        2133  2017-01-27 23:49  protobuf-3.2.0\LICENSE
     文件         319  2017-01-27 23:49  protobuf-3.2.0\protobuf.pc.in
     目录           0  2017-01-28 02:25  protobuf-3.2.0\src\
     目录           0  2017-01-28 02:25  protobuf-3.2.0\src\google\
     目录           0  2017-01-28 02:25  protobuf-3.2.0\src\google\protobuf\
     文件       51100  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\arena_unittest.cc
     文件        2049  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\unittest_preserve_unknown_enum2.proto
     文件       61619  2017-01-28 02:20  protobuf-3.2.0\src\google\protobuf\map.h
     文件        3515  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\map_lite_test_util.h
     文件        2059  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\unittest_no_generic_services.proto
     文件        2792  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\generated_message_util.cc
     文件        2353  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\arenastring.cc
     文件       22997  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\unknown_field_set_unittest.cc
     文件        6421  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\generated_message_util.h
     文件       88231  2017-01-28 02:20  protobuf-3.2.0\src\google\protobuf\repeated_field.h
     文件       12345  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\dynamic_message_unittest.cc
     文件        8128  2017-01-28 02:20  protobuf-3.2.0\src\google\protobuf\field_mask.pb.h
     文件       73725  2017-01-28 02:20  protobuf-3.2.0\src\google\protobuf\api.pb.cc
     文件       91511  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\test_util_lite.cc
     文件        3345  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\map_proto2_unittest.proto
     文件        3536  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\reflection_ops.h
     文件        2365  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\unittest_embed_optimize_for.proto
     文件        3493  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\any_test.cc
     文件       30717  2017-01-28 02:20  protobuf-3.2.0\src\google\protobuf\dynamic_message.cc
     文件       17404  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\descriptor_database.h
     文件        5011  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\unittest_well_known_types.proto
     文件       17927  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\map_field_inl.h
     文件        2125  2017-01-27 23:49  protobuf-3.2.0\src\google\protobuf\generated_enum_util.h
............此处省略1155个文件信息

评论

共有 条评论