下面列出了怎么用com.google.protobuf.GeneratedMessageV3.Builder的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public boolean tcpSend(Integer channelId, Object msg) {
if(_mapChJsFunc != null){
JsTcpChannel ch = _mapChJsFunc.get(channelId);
if(ch != null){ //online
Object msgOut = msg;
if(msg instanceof IScriptBuffer){ //trans to bytebuf
msgOut = ((DFJsBuffer)msg).getBuf();
}else if(msg instanceof Builder){ //protobuf builder
byte[] bytes = ((Builder<?>)msg).build().toByteArray();
int len = bytes.length;
msgOut = PooledByteBufAllocator.DEFAULT.ioBuffer(len);
((ByteBuf)msgOut).writeBytes(bytes);
}
return ch.channel.write(msgOut)==0?true:false;
}
}
return false;
}
@Override
public IScriptBuffer protoToBuf(Builder<?> builder) {
try{
byte[] bytes = builder.build().toByteArray();
ByteBuf buf = UnpooledByteBufAllocator.DEFAULT.heapBuffer(bytes.length);
buf.writeBytes(bytes);
IScriptBuffer bufOut = DFJsBuffer.newBuffer(buf);
return bufOut;
}catch(Throwable e){
e.printStackTrace();
}
return null;
}
public IScriptBuffer protoToBuf(Builder<?> builder);