| Index: third_party/protobuf/javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java
|
| diff --git a/third_party/protobuf/src/google/protobuf/testing/zcgunzip.cc b/third_party/protobuf/javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java
|
| similarity index 51%
|
| copy from third_party/protobuf/src/google/protobuf/testing/zcgunzip.cc
|
| copy to third_party/protobuf/javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java
|
| index a6197854bdef63dc11bbdf0b3cf1f7884348b0e3..b1678d1b93a0b63d0e9df35adc038c233c4fc10a 100644
|
| --- a/third_party/protobuf/src/google/protobuf/testing/zcgunzip.cc
|
| +++ b/third_party/protobuf/javanano/src/main/java/com/google/protobuf/nano/UnknownFieldData.java
|
| @@ -1,6 +1,6 @@
|
| // Protocol Buffers - Google's data interchange format
|
| -// Copyright 2009 Google Inc. All rights reserved.
|
| -// http://code.google.com/p/protobuf/
|
| +// Copyright 2013 Google Inc. All rights reserved.
|
| +// https://developers.google.com/protocol-buffers/
|
| //
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| @@ -28,46 +28,61 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -// Author: brianolson@google.com (Brian Olson)
|
| -// Based on original Protocol Buffers design by
|
| -// Sanjay Ghemawat, Jeff Dean, and others.
|
| -//
|
| -// Test program to verify that GzipInputStream is compatible with command line
|
| -// gunzip or java.util.zip.GzipInputStream
|
| -//
|
| -// Reads gzip stream on standard input and writes decompressed data to standard
|
| -// output.
|
| +package com.google.protobuf.nano;
|
|
|
| -#include "config.h"
|
| +import java.io.IOException;
|
| +import java.util.Arrays;
|
|
|
| -#include <assert.h>
|
| -#include <stdio.h>
|
| -#include <stdlib.h>
|
| -#include <fcntl.h>
|
| +/**
|
| + * Stores unknown fields. These might be extensions or fields that the generated
|
| + * API doesn't know about yet.
|
| + *
|
| + * @author bduff@google.com (Brian Duff)
|
| + */
|
| +final class UnknownFieldData {
|
|
|
| -#include <google/protobuf/io/gzip_stream.h>
|
| -#include <google/protobuf/io/zero_copy_stream_impl.h>
|
| + final int tag;
|
| + /**
|
| + * Important: this should be treated as immutable, even though it's possible
|
| + * to change the array values.
|
| + */
|
| + final byte[] bytes;
|
|
|
| -using google::protobuf::io::FileInputStream;
|
| -using google::protobuf::io::GzipInputStream;
|
| + UnknownFieldData(int tag, byte[] bytes) {
|
| + this.tag = tag;
|
| + this.bytes = bytes;
|
| + }
|
|
|
| -int main(int argc, const char** argv) {
|
| - FileInputStream fin(STDIN_FILENO);
|
| - GzipInputStream in(&fin);
|
| + int computeSerializedSize() {
|
| + int size = 0;
|
| + size += CodedOutputByteBufferNano.computeRawVarint32Size(tag);
|
| + size += bytes.length;
|
| + return size;
|
| + }
|
|
|
| - while (true) {
|
| - const void* inptr;
|
| - int inlen;
|
| - bool ok;
|
| - ok = in.Next(&inptr, &inlen);
|
| - if (!ok) {
|
| - break;
|
| + void writeTo(CodedOutputByteBufferNano output) throws IOException {
|
| + output.writeRawVarint32(tag);
|
| + output.writeRawBytes(bytes);
|
| }
|
| - if (inlen > 0) {
|
| - int err = write(STDOUT_FILENO, inptr, inlen);
|
| - assert(err == inlen);
|
| +
|
| + @Override
|
| + public boolean equals(Object o) {
|
| + if (o == this) {
|
| + return true;
|
| + }
|
| + if (!(o instanceof UnknownFieldData)) {
|
| + return false;
|
| + }
|
| +
|
| + UnknownFieldData other = (UnknownFieldData) o;
|
| + return tag == other.tag && Arrays.equals(bytes, other.bytes);
|
| }
|
| - }
|
|
|
| - return 0;
|
| + @Override
|
| + public int hashCode() {
|
| + int result = 17;
|
| + result = 31 * result + tag;
|
| + result = 31 * result + Arrays.hashCode(bytes);
|
| + return result;
|
| + }
|
| }
|
|
|