提交 e45f2a48 编写于 作者: T tanghai

修复protobuf生成器repeated string int不能生成的问题

上级 6cff2b39
......@@ -68,4 +68,7 @@ message G2C_PlayerInfo // IResponse
string Message = 92;
PlayerInfo PlayerInfo = 1;
repeated PlayerInfo PlayerInfos = 2;
repeated string TestRepeatedString = 3;
repeated int32 TestRepeatedInt32 = 4;
repeated int64 TestRepeatedInt64 = 5;
}
\ No newline at end of file
......@@ -182,7 +182,7 @@ namespace ETModel {
public void MergeFrom(pb::CodedInputStream input) {
frame_ = 0;
if (typeof(global::ETModel.OneFrameMessage).IsClass) { for (int i = 0; i < message_.Count; i++) { MessagePool.Instance.Recycle(message_[i]); } }
for (int i = 0; i < message_.Count; i++) { MessagePool.Instance.Recycle(message_[i]); }
message_.Clear();
rpcId_ = 0;
actorId_ = 0;
......
......@@ -762,7 +762,7 @@ namespace ETModel {
}
public void MergeFrom(pb::CodedInputStream input) {
if (typeof(global::ETModel.UnitInfo).IsClass) { for (int i = 0; i < units_.Count; i++) { MessagePool.Instance.Recycle(units_[i]); } }
for (int i = 0; i < units_.Count; i++) { MessagePool.Instance.Recycle(units_[i]); }
units_.Clear();
rpcId_ = 0;
actorId_ = 0;
......
......@@ -767,12 +767,39 @@ namespace ETHotfix {
set { playerInfos_ = value; }
}
private static readonly pb::FieldCodec<string> _repeated_testRepeatedString_codec
= pb::FieldCodec.ForString(26);
private pbc::RepeatedField<string> testRepeatedString_ = new pbc::RepeatedField<string>();
public pbc::RepeatedField<string> TestRepeatedString {
get { return testRepeatedString_; }
set { testRepeatedString_ = value; }
}
private static readonly pb::FieldCodec<int> _repeated_testRepeatedInt32_codec
= pb::FieldCodec.ForInt32(34);
private pbc::RepeatedField<int> testRepeatedInt32_ = new pbc::RepeatedField<int>();
public pbc::RepeatedField<int> TestRepeatedInt32 {
get { return testRepeatedInt32_; }
set { testRepeatedInt32_ = value; }
}
private static readonly pb::FieldCodec<long> _repeated_testRepeatedInt64_codec
= pb::FieldCodec.ForInt64(42);
private pbc::RepeatedField<long> testRepeatedInt64_ = new pbc::RepeatedField<long>();
public pbc::RepeatedField<long> TestRepeatedInt64 {
get { return testRepeatedInt64_; }
set { testRepeatedInt64_ = value; }
}
public void WriteTo(pb::CodedOutputStream output) {
if (playerInfo_ != null) {
output.WriteRawTag(10);
output.WriteMessage(PlayerInfo);
}
playerInfos_.WriteTo(output, _repeated_playerInfos_codec);
testRepeatedString_.WriteTo(output, _repeated_testRepeatedString_codec);
testRepeatedInt32_.WriteTo(output, _repeated_testRepeatedInt32_codec);
testRepeatedInt64_.WriteTo(output, _repeated_testRepeatedInt64_codec);
if (RpcId != 0) {
output.WriteRawTag(208, 5);
output.WriteInt32(RpcId);
......@@ -802,13 +829,19 @@ namespace ETHotfix {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(PlayerInfo);
}
size += playerInfos_.CalculateSize(_repeated_playerInfos_codec);
size += testRepeatedString_.CalculateSize(_repeated_testRepeatedString_codec);
size += testRepeatedInt32_.CalculateSize(_repeated_testRepeatedInt32_codec);
size += testRepeatedInt64_.CalculateSize(_repeated_testRepeatedInt64_codec);
return size;
}
public void MergeFrom(pb::CodedInputStream input) {
if (playerInfo_ != null) MessagePool.Instance.Recycle(playerInfo_); playerInfo_ = null;
if (typeof(global::ETHotfix.PlayerInfo).IsClass) { for (int i = 0; i < playerInfos_.Count; i++) { MessagePool.Instance.Recycle(playerInfos_[i]); } }
for (int i = 0; i < playerInfos_.Count; i++) { MessagePool.Instance.Recycle(playerInfos_[i]); }
playerInfos_.Clear();
testRepeatedString_.Clear();
testRepeatedInt32_.Clear();
testRepeatedInt64_.Clear();
rpcId_ = 0;
error_ = 0;
message_ = "";
......@@ -829,6 +862,20 @@ namespace ETHotfix {
playerInfos_.AddEntriesFrom(input, _repeated_playerInfos_codec);
break;
}
case 26: {
testRepeatedString_.AddEntriesFrom(input, _repeated_testRepeatedString_codec);
break;
}
case 34:
case 32: {
testRepeatedInt32_.AddEntriesFrom(input, _repeated_testRepeatedInt32_codec);
break;
}
case 42:
case 40: {
testRepeatedInt64_.AddEntriesFrom(input, _repeated_testRepeatedInt64_codec);
break;
}
case 720: {
RpcId = input.ReadInt32();
break;
......
无法预览此类型文件
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册