com.google.protobuf.CodedOutputStream# computeRawVarint32Size ( ) 源码实例Demo

下面列出了com.google.protobuf.CodedOutputStream# computeRawVarint32Size ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。


private void sendSaslMessage(ChannelHandlerContext ctx, byte[] payload,
    List<CipherOption> options) throws IOException {
  DataTransferEncryptorMessageProto.Builder builder =
      DataTransferEncryptorMessageProto.newBuilder();
  builder.setStatus(DataTransferEncryptorStatus.SUCCESS);
  if (payload != null) {
    BuilderPayloadSetter.wrapAndSetPayload(builder, payload);
  }
  if (options != null) {
    builder.addAllCipherOption(PBHelperClient.convertCipherOptions(options));
  }
  DataTransferEncryptorMessageProto proto = builder.build();
  int size = proto.getSerializedSize();
  size += CodedOutputStream.computeRawVarint32Size(size);
  ByteBuf buf = ctx.alloc().buffer(size);
  proto.writeDelimitedTo(new ByteBufOutputStream(buf));
  ctx.write(buf);
}
 
源代码2 项目: jprotobuf   文件: CodedConstant.java

/**
 * Compute object size no tag.
 *
 * @param o the o
 * @return the int
 */
public static int computeObjectSizeNoTag(Object o) {
    int size = 0;
    if (o == null) {
        return size;
    }

    Class cls = o.getClass();
    Codec target = ProtobufProxy.create(cls);
    try {
        size = target.size(o);
        size = size + CodedOutputStream.computeRawVarint32Size(size);
        return size;
    } catch (IOException e) {
        throw new RuntimeException(e.getMessage(), e);
    }
}
 
源代码3 项目: blueflood   文件: RawSerDes.java

private int sizeOf(Object obj) throws SerializationException {
    int sz = sizeOfSize();
    sz += sizeOfType();

    if ( obj instanceof Integer ) {
        sz += CodedOutputStream.computeRawVarint32Size((Integer) obj);
    } else if ( obj instanceof Long ) {
        sz += CodedOutputStream.computeRawVarint64Size((Long)obj);
    } else if ( obj instanceof Double ) {
        sz += CodedOutputStream.computeDoubleSizeNoTag((Double)obj);
    } else if ( obj instanceof Float ) {
        sz += CodedOutputStream.computeDoubleSizeNoTag(((Float)obj).doubleValue());
    } else {
        throw new SerializationException("Unexpected type: " + obj.getClass().getName());
    }
    return sz;
}
 
源代码4 项目: hadoop   文件: ProtobufRpcEngine.java

@Override
public int getLength() {
  int headerLen = requestHeader.getSerializedSize();
  int reqLen;
  if (theRequest != null) {
    reqLen = theRequest.getSerializedSize();
  } else if (theRequestRead != null ) {
    reqLen = theRequestRead.length;
  } else {
    throw new IllegalArgumentException(
        "getLength on uninitialized RpcWrapper");      
  }
  return CodedOutputStream.computeRawVarint32Size(headerLen) +  headerLen
      + CodedOutputStream.computeRawVarint32Size(reqLen) + reqLen;
}
 
源代码5 项目: hadoop   文件: ProtobufRpcEngine.java

@Override
public int getLength() {
  int resLen;
  if (theResponse != null) {
    resLen = theResponse.getSerializedSize();
  } else if (theResponseRead != null ) {
    resLen = theResponseRead.length;
  } else {
    throw new IllegalArgumentException(
        "getLength on uninitialized RpcWrapper");      
  }
  return CodedOutputStream.computeRawVarint32Size(resLen) + resLen;
}
 
源代码6 项目: big-c   文件: ProtobufRpcEngine.java

@Override
public int getLength() {
  int headerLen = requestHeader.getSerializedSize();
  int reqLen;
  if (theRequest != null) {
    reqLen = theRequest.getSerializedSize();
  } else if (theRequestRead != null ) {
    reqLen = theRequestRead.length;
  } else {
    throw new IllegalArgumentException(
        "getLength on uninitialized RpcWrapper");      
  }
  return CodedOutputStream.computeRawVarint32Size(headerLen) +  headerLen
      + CodedOutputStream.computeRawVarint32Size(reqLen) + reqLen;
}
 
源代码7 项目: big-c   文件: ProtobufRpcEngine.java

@Override
public int getLength() {
  int resLen;
  if (theResponse != null) {
    resLen = theResponse.getSerializedSize();
  } else if (theResponseRead != null ) {
    resLen = theResponseRead.length;
  } else {
    throw new IllegalArgumentException(
        "getLength on uninitialized RpcWrapper");      
  }
  return CodedOutputStream.computeRawVarint32Size(resLen) + resLen;
}
 

@Override
protected void encode(
        ChannelHandlerContext ctx, ByteBuf msg, ByteBuf out) throws Exception {
    int bodyLen = msg.readableBytes();
    int headerLen = CodedOutputStream.computeRawVarint32Size(bodyLen);
    out.ensureWritable(headerLen + bodyLen);

    CodedOutputStream headerOut =
            CodedOutputStream.newInstance(new ByteBufOutputStream(out), headerLen);
    headerOut.writeRawVarint32(bodyLen);
    headerOut.flush();

    out.writeBytes(msg, msg.readerIndex(), bodyLen);
}
 
源代码9 项目: blueflood   文件: CounterSerDes.java

private int sizeOf(BluefloodCounterRollup counterRollup) {
    int sz = sizeOfSize();
    sz += sizeOfType();
    if (counterRollup.getCount() instanceof Long || counterRollup.getCount() instanceof Integer)
        sz += CodedOutputStream.computeRawVarint64Size(counterRollup.getCount().longValue());
    else if (counterRollup.getCount() instanceof Double || counterRollup.getCount() instanceof Float)
        sz += CodedOutputStream.computeDoubleSizeNoTag(counterRollup.getCount().doubleValue());
    sz += CodedOutputStream.computeDoubleSizeNoTag(counterRollup.getRate());
    sz += CodedOutputStream.computeRawVarint32Size(counterRollup.getSampleCount());
    return sz;
}
 
源代码10 项目: blueflood   文件: TimerRollupSerDes.java

private int sizeOf(BluefloodTimerRollup bluefloodTimerRollup, byte timerVersion) throws SerializationException {

        int sz = sizeOfSize();

        if (timerVersion == VERSION_1_TIMER) {
            sz += CodedOutputStream.computeRawVarint64Size((long) bluefloodTimerRollup.getSum());
        } else if (timerVersion == VERSION_2_TIMER) {
            sz += CodedOutputStream.computeDoubleSizeNoTag(bluefloodTimerRollup.getSum());
        } else {
            throw new SerializationException(String.format("Unexpected timer serialization version: %d", (int)timerVersion));
        }
        sz += CodedOutputStream.computeRawVarint64Size(bluefloodTimerRollup.getCount());
        sz += CodedOutputStream.computeDoubleSizeNoTag(bluefloodTimerRollup.getRate());
        sz += CodedOutputStream.computeRawVarint32Size(bluefloodTimerRollup.getSampleCount());
        sz += averageStatDeSer.sizeOf(bluefloodTimerRollup.getAverage());
        sz += maxStatDeSer.sizeOf(bluefloodTimerRollup.getMaxValue());
        sz += minStatDeSer.sizeOf(bluefloodTimerRollup.getMinValue());
        sz += varianceStatDeSer.sizeOf(bluefloodTimerRollup.getVariance());

        Map<String, BluefloodTimerRollup.Percentile> percentiles = bluefloodTimerRollup.getPercentiles();
        sz += CodedOutputStream.computeRawVarint32Size(bluefloodTimerRollup.getPercentiles().size());
        for (Map.Entry<String, BluefloodTimerRollup.Percentile> entry : percentiles.entrySet()) {
            sz += CodedOutputStream.computeStringSizeNoTag(entry.getKey());
            Number[] pctComponents = new Number[] {
                    entry.getValue().getMean(),
            };
            for (Number num : pctComponents) {
                sz += sizeOfType();
                if (num instanceof Long || num instanceof Integer) {
                    sz += CodedOutputStream.computeRawVarint64Size(num.longValue());
                } else if (num instanceof Double || num instanceof Float) {
                    sz += CodedOutputStream.computeDoubleSizeNoTag(num.doubleValue());
                }
            }
        }
        return sz;
    }
 
源代码11 项目: blueflood   文件: SetSerDes.java

private int sizeOf(BluefloodSetRollup setRollup) {
    int sz = sizeOfSize();
    sz += CodedOutputStream.computeRawVarint32Size(setRollup.getCount());
    for (Integer i : setRollup.getHashes()) {
        sz += CodedOutputStream.computeRawVarint32Size(i);
    }
    return sz;
}
 
源代码12 项目: hadoop   文件: FSImageFormatProtobuf.java

private static int getOndiskTrunkSize(com.google.protobuf.GeneratedMessage s) {
  return CodedOutputStream.computeRawVarint32Size(s.getSerializedSize())
      + s.getSerializedSize();
}
 
源代码13 项目: hadoop   文件: Client.java

private void receiveRpcResponse() {
  if (shouldCloseConnection.get()) {
    return;
  }
  touch();
  
  try {
    int totalLen = in.readInt();
    RpcResponseHeaderProto header = 
        RpcResponseHeaderProto.parseDelimitedFrom(in);
    checkResponse(header);

    int headerLen = header.getSerializedSize();
    headerLen += CodedOutputStream.computeRawVarint32Size(headerLen);

    int callId = header.getCallId();
    if (LOG.isDebugEnabled())
      LOG.debug(getName() + " got value #" + callId);

    Call call = calls.get(callId);
    RpcStatusProto status = header.getStatus();
    if (status == RpcStatusProto.SUCCESS) {
      Writable value = ReflectionUtils.newInstance(valueClass, conf);
      value.readFields(in);                 // read value
      calls.remove(callId);
      call.setRpcResponse(value);
      
      // verify that length was correct
      // only for ProtobufEngine where len can be verified easily
      if (call.getRpcResponse() instanceof ProtobufRpcEngine.RpcWrapper) {
        ProtobufRpcEngine.RpcWrapper resWrapper = 
            (ProtobufRpcEngine.RpcWrapper) call.getRpcResponse();
        if (totalLen != headerLen + resWrapper.getLength()) { 
          throw new RpcClientException(
              "RPC response length mismatch on rpc success");
        }
      }
    } else { // Rpc Request failed
      // Verify that length was correct
      if (totalLen != headerLen) {
        throw new RpcClientException(
            "RPC response length mismatch on rpc error");
      }
      
      final String exceptionClassName = header.hasExceptionClassName() ?
            header.getExceptionClassName() : 
              "ServerDidNotSetExceptionClassName";
      final String errorMsg = header.hasErrorMsg() ? 
            header.getErrorMsg() : "ServerDidNotSetErrorMsg" ;
      final RpcErrorCodeProto erCode = 
                (header.hasErrorDetail() ? header.getErrorDetail() : null);
      if (erCode == null) {
         LOG.warn("Detailed error code not set by server on rpc error");
      }
      RemoteException re = 
          ( (erCode == null) ? 
              new RemoteException(exceptionClassName, errorMsg) :
          new RemoteException(exceptionClassName, errorMsg, erCode));
      if (status == RpcStatusProto.ERROR) {
        calls.remove(callId);
        call.setException(re);
      } else if (status == RpcStatusProto.FATAL) {
        // Close the connection
        markClosed(re);
      }
    }
  } catch (IOException e) {
    markClosed(e);
  }
}
 
源代码14 项目: big-c   文件: FSImageFormatProtobuf.java

private static int getOndiskTrunkSize(com.google.protobuf.GeneratedMessage s) {
  return CodedOutputStream.computeRawVarint32Size(s.getSerializedSize())
      + s.getSerializedSize();
}
 
源代码15 项目: big-c   文件: Client.java

private void receiveRpcResponse() {
  if (shouldCloseConnection.get()) {
    return;
  }
  touch();
  
  try {
    int totalLen = in.readInt();
    RpcResponseHeaderProto header = 
        RpcResponseHeaderProto.parseDelimitedFrom(in);
    checkResponse(header);

    int headerLen = header.getSerializedSize();
    headerLen += CodedOutputStream.computeRawVarint32Size(headerLen);

    int callId = header.getCallId();
    if (LOG.isDebugEnabled())
      LOG.debug(getName() + " got value #" + callId);

    Call call = calls.get(callId);
    RpcStatusProto status = header.getStatus();
    if (status == RpcStatusProto.SUCCESS) {
      Writable value = ReflectionUtils.newInstance(valueClass, conf);
      value.readFields(in);                 // read value
      calls.remove(callId);
      call.setRpcResponse(value);
      
      // verify that length was correct
      // only for ProtobufEngine where len can be verified easily
      if (call.getRpcResponse() instanceof ProtobufRpcEngine.RpcWrapper) {
        ProtobufRpcEngine.RpcWrapper resWrapper = 
            (ProtobufRpcEngine.RpcWrapper) call.getRpcResponse();
        if (totalLen != headerLen + resWrapper.getLength()) { 
          throw new RpcClientException(
              "RPC response length mismatch on rpc success");
        }
      }
    } else { // Rpc Request failed
      // Verify that length was correct
      if (totalLen != headerLen) {
        throw new RpcClientException(
            "RPC response length mismatch on rpc error");
      }
      
      final String exceptionClassName = header.hasExceptionClassName() ?
            header.getExceptionClassName() : 
              "ServerDidNotSetExceptionClassName";
      final String errorMsg = header.hasErrorMsg() ? 
            header.getErrorMsg() : "ServerDidNotSetErrorMsg" ;
      final RpcErrorCodeProto erCode = 
                (header.hasErrorDetail() ? header.getErrorDetail() : null);
      if (erCode == null) {
         LOG.warn("Detailed error code not set by server on rpc error");
      }
      RemoteException re = 
          ( (erCode == null) ? 
              new RemoteException(exceptionClassName, errorMsg) :
          new RemoteException(exceptionClassName, errorMsg, erCode));
      if (status == RpcStatusProto.ERROR) {
        calls.remove(callId);
        call.setException(re);
      } else if (status == RpcStatusProto.FATAL) {
        // Close the connection
        markClosed(re);
      }
    }
  } catch (IOException e) {
    markClosed(e);
  }
}
 
源代码16 项目: jprotobuf   文件: CodedConstant.java

/**
 * get object size by {@link FieldType}.
 *
 * @param order the order
 * @param o the o
 * @param type the type
 * @param list the list
 * @param debug the debug
 * @param path the path
 * @return the int
 */
public static int computeSize(int order, Object o, FieldType type, boolean list, boolean debug, File path) {
    int size = 0;
    if (o == null) {
        return size;
    }

    if (type == FieldType.OBJECT) {
        Class cls = o.getClass();
        Codec target = ProtobufProxy.create(cls, debug, path);
        try {
            size = target.size(o);
            size = size + CodedOutputStream.computeRawVarint32Size(size);
            return size + CodedOutputStream.computeTagSize(order);
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }

    if (type == FieldType.STRING) {
        size = CodedOutputStream.computeStringSizeNoTag(String.valueOf(o));
    } else if (type == FieldType.BOOL) {
        size = CodedOutputStream.computeBoolSizeNoTag(Boolean.valueOf(String.valueOf(o)));
    } else if (type == FieldType.BYTES) {
        byte[] bb = (byte[]) o;
        size = CodedOutputStream.computeBytesSizeNoTag(ByteString.copyFrom(bb));
    } else if (type == FieldType.DOUBLE) {
        size = CodedOutputStream.computeDoubleSizeNoTag(Double.valueOf(o.toString()));
    } else if (type == FieldType.FIXED32 || type == FieldType.INT32 || type == FieldType.SFIXED32
            || type == FieldType.SINT32 || type == FieldType.UINT32) {
        size = CodedOutputStream.computeInt32SizeNoTag(Integer.valueOf(o.toString()));
    } else if (type == FieldType.FIXED64 || type == FieldType.INT64 || type == FieldType.SFIXED64
            || type == FieldType.SINT64 || type == FieldType.UINT64) {
        size = CodedOutputStream.computeInt64SizeNoTag(Long.valueOf(o.toString()));
    } else if (type == FieldType.FLOAT) {
        size = CodedOutputStream.computeFloatSizeNoTag(Float.valueOf(o.toString()));
    } else if (type == FieldType.ENUM) {
        if (o instanceof EnumReadable) {
            size = CodedOutputStream.computeInt32SizeNoTag(((EnumReadable) o).value());
        } else if (o instanceof Enum) {
            size = CodedOutputStream.computeInt32SizeNoTag(((Enum) o).ordinal());
        }
    }

    return size;
}
 
源代码17 项目: jprotobuf   文件: ReflectiveCodec.java

private int computeSize(FieldInfo fieldInfo, Object value) throws IOException {
	FieldType fieldType = fieldInfo.getFieldType();

	int size = 0;
	if (value instanceof List) {
		// if list
		size = CodedConstant.computeListSize(fieldInfo.getOrder(), (List) value, fieldInfo.getFieldType(), true, null);
		return size;
	}

	int order = fieldInfo.getOrder();
	switch (fieldType) {
	case DOUBLE:
		size = CodedOutputStream.computeDoubleSize(order, (Double) value);
		break;
	case BYTES:
		ByteString bytes = ByteString.copyFrom((byte[]) value);
		size = CodedOutputStream.computeBytesSize(order, bytes);
		break;
	case STRING:
		ByteString string = ByteString.copyFromUtf8(value.toString());
		size = CodedOutputStream.computeBytesSize(order, string);
		break;
	case BOOL:
		size = CodedOutputStream.computeBoolSize(order, (Boolean) value);
		break;
	case FIXED32:
		size = CodedOutputStream.computeFixed32Size(order, (Integer) value);
		break;
	case SFIXED32:
		size = CodedOutputStream.computeSFixed32Size(order, (Integer) value);
		break;
	case SINT32:
		size = CodedOutputStream.computeSInt32Size(order, (Integer) value);
		break;
	case INT32:
		size = CodedOutputStream.computeInt32Size(order, (Integer) value);
		break;
	case UINT32:
		size = CodedOutputStream.computeUInt32Size(order, (Integer) value);
		break;
	case FIXED64:
		size = CodedOutputStream.computeFixed64Size(order, (Long) value);
		break;
	case SFIXED64:
		size = CodedOutputStream.computeSFixed64Size(order, (Long) value);
		break;
	case SINT64:
		size = CodedOutputStream.computeSInt64Size(order, (Long) value);
		break;
	case INT64:
		size = CodedOutputStream.computeInt64Size(order, (Long) value);
		break;
	case UINT64:
		size = CodedOutputStream.computeUInt64Size(order, (Long) value);
		break;
	case ENUM:
		int i;
		i = getEnumValue(value);
		size = CodedOutputStream.computeEnumSize(order, i);
		break;
	case FLOAT:
		size = CodedOutputStream.computeFloatSize(order, (Float) value);
		break;
	case OBJECT:
		Class c = value.getClass();
		ReflectiveCodec codec = new ReflectiveCodec(c);
		
		int objectSize = codec.size(value);
		
		size = size + CodedOutputStream.computeRawVarint32Size(objectSize);
		size = size + CodedOutputStream.computeTagSize(order);
		
		size += objectSize;
		break;
	default:
		throw new IOException("Unknown field type on field '" + fieldInfo.getField().getName() + "'");
	}

	return size;
}
 
源代码18 项目: jprotobuf   文件: CodedConstant.java

/**
 * get object size by {@link FieldType}
 * 
 * @param o
 * @param type
 * @return
 */
public static int computeSize(int order, Object o, FieldType type, boolean list, boolean debug, File path) {
    int size = 0;
    if (o == null) {
        return size;
    }

    if (type == FieldType.OBJECT) {
        Class cls = o.getClass();
        Codec target = ProtobufProxy.create(cls);
        try {
            size = target.size(o);
            size = size + CodedOutputStream.computeRawVarint32Size(size);
            return size + CodedOutputStream.computeTagSize(order);
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }

    if (type == FieldType.STRING) {
        size = CodedOutputStream.computeStringSizeNoTag(String.valueOf(o));
    } else if (type == FieldType.BOOL) {
        size = CodedOutputStream.computeBoolSizeNoTag(Boolean.valueOf(String.valueOf(o)));
    } else if (type == FieldType.BYTES) {
        byte[] bb = (byte[]) o;
        size = CodedOutputStream.computeBytesSizeNoTag(ByteString.copyFrom(bb));
    } else if (type == FieldType.DOUBLE) {
        size = CodedOutputStream.computeDoubleSizeNoTag(Double.valueOf(o.toString()));
    } else if (type == FieldType.FIXED32 || type == FieldType.INT32 || type == FieldType.SFIXED32
            || type == FieldType.SINT32 || type == FieldType.UINT32) {
        size = CodedOutputStream.computeInt32SizeNoTag(Integer.valueOf(o.toString()));
    } else if (type == FieldType.FIXED64 || type == FieldType.INT64 || type == FieldType.SFIXED64
            || type == FieldType.SINT64 || type == FieldType.UINT64) {
        size = CodedOutputStream.computeInt64SizeNoTag(Long.valueOf(o.toString()));
    } else if (type == FieldType.FLOAT) {
        size = CodedOutputStream.computeFloatSizeNoTag(Float.valueOf(o.toString()));
    } else if (type == FieldType.ENUM) {
        if (o instanceof EnumReadable) {
            size = CodedOutputStream.computeInt32SizeNoTag(((EnumReadable) o).value());
        } else if (o instanceof Enum) {
            size = CodedOutputStream.computeInt32SizeNoTag(((Enum) o).ordinal());
        }
    }

    return size;
}