下面列出了com.google.protobuf.DynamicMessage#writeDelimitedTo ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void write(Record record) throws IOException, DataGeneratorException {
if (closed) {
throw new IOException("generator has been closed");
}
DynamicMessage message = ProtobufTypeUtil.sdcFieldToProtobufMsg(
record,
descriptor,
messageTypeToExtensionMap,
defaultValueMap
);
if (isDelimited) {
message.writeDelimitedTo(outputStream);
} else {
message.writeTo(outputStream);
}
}
@Test
public void testSdcToProtobufFields() throws Exception {
List<Record> protobufRecords = ProtobufTestUtil.getProtobufRecords();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(bOut);
for (int i = 0; i < protobufRecords.size(); i++) {
DynamicMessage dynamicMessage = ProtobufTypeUtil.sdcFieldToProtobufMsg(
protobufRecords.get(i),
md,
typeToExtensionMap,
defaultValueMap
);
dynamicMessage.writeDelimitedTo(bufferedOutputStream);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
ProtobufTestUtil.checkProtobufDataFields(bOut.toByteArray());
}
@Test
public void testSdcToProtobufExtensions() throws Exception {
List<Record> protobufRecords = ProtobufTestUtil.getProtobufRecords();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(bOut);
for (int i = 0; i < protobufRecords.size(); i++) {
DynamicMessage dynamicMessage = ProtobufTypeUtil.sdcFieldToProtobufMsg(
protobufRecords.get(i),
md,
typeToExtensionMap,
defaultValueMap
);
dynamicMessage.writeDelimitedTo(bufferedOutputStream);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
ProtobufTestUtil.checkProtobufDataExtensions(bOut.toByteArray());
}
@Test
public void testSdcToProtobufUnknownFields() throws Exception {
List<Record> protobufRecords = ProtobufTestUtil.getProtobufRecords();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(bOut);
for (int i = 0; i < protobufRecords.size(); i++) {
DynamicMessage dynamicMessage = ProtobufTypeUtil.sdcFieldToProtobufMsg(
protobufRecords.get(i),
md,
typeToExtensionMap,
defaultValueMap
);
dynamicMessage.writeDelimitedTo(bufferedOutputStream);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
ProtobufTestUtil.checkProtobufDataUnknownFields(bOut.toByteArray());
}