Package com.google.protobuf

Examples of com.google.protobuf.CodedOutputStream$OutOfSpaceException


      sz += computeByteBufferSize(2, index);
    if (meta != null)
      sz += CodedOutputStream.computeMessageSize(3, meta);

    byte[] r = new byte[sz];
    CodedOutputStream out = CodedOutputStream.newInstance(r);
    try {
      if (data != null)
        writeByteBuffer(out, 1, data);
      if (index != null)
        writeByteBuffer(out, 2, index);
      if (meta != null)
        out.writeMessage(3, meta);
    } catch (IOException err) {
      throw new RuntimeException("Cannot buffer chunk", err);
    }
    return r;
  }
View Full Code Here


      CodedInputStream codedInputStream = CodedInputStream.newInstance(bais);
      UnknownFieldSet unknownFieldSet = new UnknownFieldSetImpl();
      unknownFieldSet.readAllFields(codedInputStream);

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      CodedOutputStream out = CodedOutputStream.newInstance(baos);
      unknownFieldSet.writeTo(out);
      byte[] bytes2 = baos.toByteArray();

      assertArrayEquals(bytes, bytes2);
   }
View Full Code Here

      CodedInputStream codedInputStream = CodedInputStream.newInstance(bais);
      UnknownFieldSet unknownFieldSet = new UnknownFieldSetImpl();
      unknownFieldSet.readAllFields(codedInputStream);

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      CodedOutputStream out = CodedOutputStream.newInstance(baos);
      unknownFieldSet.writeTo(out);
      byte[] bytes2 = baos.toByteArray();

      assertArrayEquals(bytes, bytes2);
   }
View Full Code Here

        int length = body.readableBytes();
        ChannelBuffer header =
            channel.getConfig().getBufferFactory().getBuffer(
                    body.order(),
                    CodedOutputStream.computeRawVarint32Size(length));
        CodedOutputStream codedOutputStream = CodedOutputStream
                .newInstance(new ChannelBufferOutputStream(header));
        codedOutputStream.writeRawVarint32(length);
        codedOutputStream.flush();
        return wrappedBuffer(header, body);
    }
View Full Code Here

        int length = body.readableBytes();
        ChannelBuffer header =
            channel.getConfig().getBufferFactory().getBuffer(
                    body.order(),
                    CodedOutputStream.computeRawVarint32Size(length));
        CodedOutputStream codedOutputStream = CodedOutputStream
                .newInstance(new ChannelBufferOutputStream(header));
        codedOutputStream.writeRawVarint32(length);
        codedOutputStream.flush();
        return wrappedBuffer(header, body);
    }
View Full Code Here

      if (t == null) {
         throw new IllegalArgumentException("Object to marshall cannot be null");
      }

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      CodedOutputStream out = CodedOutputStream.newInstance(baos);

      if (t instanceof String) {
         out.writeString(wrappedString, (String) t);
      } else if (t instanceof Long) {
         out.writeInt64(wrappedInt64, (Long) t);
      } else if (t instanceof Integer) {
         out.writeInt32(wrappedInt32, (Integer) t);
      } else if (t instanceof Double) {
         out.writeDouble(wrappedDouble, (Double) t);
      } else if (t instanceof Float) {
         out.writeFloat(wrappedFloat, (Float) t);
      } else if (t instanceof Boolean) {
         out.writeBool(wrappedBool, (Boolean) t);
      } else if (t instanceof byte[]) {
         byte[] bytes = (byte[]) t;
         out.writeTag(wrappedBytes, WireFormat.WIRETYPE_LENGTH_DELIMITED);
         out.writeRawVarint32(bytes.length);
         out.writeRawBytes(bytes);
      } else if (t instanceof Enum) {
         // use an enum encoder
         EnumEncoder enumEncoder = ctx.getEnumEncoder((Class<Enum>) t.getClass());
         out.writeString(wrappedDescriptorFullName, enumEncoder.getFullName());
         out.writeEnum(wrappedEnum, enumEncoder.encode((Enum) t));
      } else {
         // this is either an unknown primitive type or a message type
         // try to use a message marshaller
         MessageMarshaller marshaller = ctx.getMarshaller(t.getClass());
         out.writeString(wrappedDescriptorFullName, marshaller.getFullName());

         ByteArrayOutputStream buffer = new ByteArrayOutputStream();      //todo here we should use a better buffer allocation strategy
         ProtobufWriterImpl writer = new ProtobufWriterImpl(ctx);
         writer.write(CodedOutputStream.newInstance(buffer), t);

         out.writeTag(wrappedMessageBytes, WireFormat.WIRETYPE_LENGTH_DELIMITED);
         out.writeRawVarint32(buffer.size());
         out.writeRawBytes(buffer.toByteArray());
      }
      out.flush();

      return baos.toByteArray();
   }
View Full Code Here

      if (MessageLite.class.isAssignableFrom(clazz)) {
         messageContext.out.writeMessage(fd.getNumber(), (MessageLite) value);
      } else {
         MessageMarshaller marshaller = ctx.getMarshaller(clazz);
         ByteArrayOutputStream baos = new ByteArrayOutputStream();      //todo here we should use a better buffer allocation strategy
         CodedOutputStream out = CodedOutputStream.newInstance(baos);
         enterContext(fd.getMessageType(), out);
         marshall(value, marshaller);
         out.flush();
         exitContext();
         messageContext.out.writeTag(fd.getNumber(), WireFormat.WIRETYPE_LENGTH_DELIMITED);
         messageContext.out.writeRawVarint32(baos.size());
         messageContext.out.writeRawBytes(baos.toByteArray());
      }
View Full Code Here

      writeBoolean(fieldName, value.booleanValue());
   }

   private void writePrimitiveCollection(FieldDescriptor fd, Collection<?> collection, Class elementClass) throws IOException {
      CodedOutputStream out = messageContext.out;
      int fieldNumber = fd.getNumber();
      Type type = fd.getType();
      switch (type) {
         case DOUBLE:
            for (Object value : collection) {  //todo check (value != null && value.getClass() == elementClass)
               out.writeDouble(fieldNumber, (Double) value);
            }
            break;
         case FLOAT:
            for (Object value : collection) {
               out.writeFloat(fieldNumber, (Float) value);
            }
            break;
         case BOOL:
            for (Object value : collection) {
               out.writeBool(fieldNumber, (Boolean) value);
            }
            break;
         case STRING:
            for (Object value : collection) {
               out.writeString(fieldNumber, (String) value);
            }
            break;
         case BYTES:
            for (Object value : collection) {
               if (value instanceof byte[]) {
                  value = ByteString.copyFrom((byte[]) value);
               }
               out.writeBytes(fieldNumber, (ByteString) value);
            }
            break;
         case INT64:
            for (Object value : collection) {
               out.writeInt64(fieldNumber, (Long) value);
            }
            break;
         case UINT64:
            for (Object value : collection) {
               out.writeUInt64(fieldNumber, (Long) value);
            }
            break;
         case FIXED64:
            for (Object value : collection) {
               out.writeFixed64(fieldNumber, (Long) value);
            }
            break;
         case SFIXED64:
            for (Object value : collection) {
               out.writeSFixed64(fieldNumber, (Long) value);
            }
            break;
         case SINT64:
            for (Object value : collection) {
               out.writeSInt64(fieldNumber, (Long) value);
            }
            break;
         case INT32:
            for (Object value : collection) {
               out.writeInt32(fieldNumber, (Integer) value);
            }
            break;
         case FIXED32:
            for (Object value : collection) {
               out.writeFixed32(fieldNumber, (Integer) value);
            }
            break;
         case UINT32:
            for (Object value : collection) {
               out.writeUInt32(fieldNumber, (Integer) value);
            }
            break;
         case SFIXED32:
            for (Object value : collection) {
               out.writeSFixed32(fieldNumber, (Integer) value);
            }
            break;
         case SINT32:
            for (Object value : collection) {
               out.writeSInt32(fieldNumber, (Integer) value);
            }
            break;
         default:
            throw new IllegalStateException("Unexpected field type : " + type);
      }
View Full Code Here

   }

   private void writeMessage(String fieldName, FieldDescriptor fd, Object value, Class clazz) throws IOException {
      BaseMarshallerDelegate marshallerDelegate = ctx.getMarshallerDelegate(clazz);
      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      CodedOutputStream out = CodedOutputStream.newInstance(baos);
      marshallerDelegate.marshall(fieldName, fd, value, this, out);
      out.flush();
      messageContext.out.writeTag(fd.getNumber(), WireFormat.WIRETYPE_LENGTH_DELIMITED);
      messageContext.out.writeRawVarint32(baos.size());
      messageContext.out.writeRawBytes(baos.toByteArray());
   }
View Full Code Here

        int size = msg.getSerializedSize();
        value.ensureFit(4 + size);
        int pos = value.getEncodedSize();
        Util.putInt(value.getEncodedBytes(), pos, converter.getTableId());
        pos += 4;
        CodedOutputStream cstr = CodedOutputStream.newInstance(value.getEncodedBytes(), pos, size);
        try {
            msg.writeTo(cstr);
        }
        catch (IOException ex) {
            throw new ConversionException(ex);
View Full Code Here

TOP

Related Classes of com.google.protobuf.CodedOutputStream$OutOfSpaceException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.