From ac203b20926b13a35ff85277d2e5d3c38698eee8 Mon Sep 17 00:00:00 2001 From: mugisoba <51015092+mugisoba@users.noreply.github.com> Date: Fri, 22 May 2020 01:14:20 +0900 Subject: [PATCH] [C#] Add file identifier to ObjectAPI Serialization Utility. (#5920) * use Finish***Buffer instead. * add file_identifier test. --- src/idl_gen_csharp.cpp | 8 +++++--- tests/FlatBuffers.Test/FlatBuffersExampleTests.cs | 3 +++ tests/MyGame/Example/ArrayTable.cs | 2 +- tests/MyGame/Example/Monster.cs | 2 +- tests/MyGame/MonsterExtra.cs | 2 +- tests/union_vector/Movie.cs | 2 +- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index 96a5da8..0dd07d3 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -1823,7 +1823,9 @@ class CSharpGenerator : public BaseGenerator { code += "[idx" + NumToString(j++) + "]"; } code += ";"; - for (size_t i = 0; i < array_only_lengths.size(); ++i) { code += "}"; } + for (size_t i = 0; i < array_only_lengths.size(); ++i) { + code += "}"; + } } else { code += "_o"; for (size_t i = 0; i < array_lengths.size(); ++i) { @@ -2035,8 +2037,8 @@ class CSharpGenerator : public BaseGenerator { code += " }\n"; code += " public byte[] SerializeToBinary() {\n"; code += " var fbb = new FlatBufferBuilder(0x10000);\n"; - code += - " fbb.Finish(" + struct_def.name + ".Pack(fbb, this).Value);\n"; + code += " " + struct_def.name + ".Finish" + struct_def.name + + "Buffer(fbb, " + struct_def.name + ".Pack(fbb, this));\n"; code += " return fbb.DataBuffer.ToSizedArray();\n"; code += " }\n"; } diff --git a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs index c0aa0d1..97a32ae 100644 --- a/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs +++ b/tests/FlatBuffers.Test/FlatBuffersExampleTests.cs @@ -676,6 +676,7 @@ namespace FlatBuffers.Test AreEqual(a, d); var fbBuffer = b.SerializeToBinary(); + Assert.IsTrue(Monster.MonsterBufferHasIdentifier(new ByteBuffer(fbBuffer))); var e = MonsterT.DeserializeFromBinary(fbBuffer); AreEqual(a, e); } @@ -779,6 +780,7 @@ namespace FlatBuffers.Test AreEqual(a, d); var fbBuffer = b.SerializeToBinary(); + Assert.IsTrue(ArrayTable.ArrayTableBufferHasIdentifier(new ByteBuffer(fbBuffer))); var e = ArrayTableT.DeserializeFromBinary(fbBuffer); AreEqual(a, e); } @@ -826,6 +828,7 @@ namespace FlatBuffers.Test AreEqual(a, d); var fbBuffer = b.SerializeToBinary(); + Assert.IsTrue(Movie.MovieBufferHasIdentifier(new ByteBuffer(fbBuffer))); var e = MovieT.DeserializeFromBinary(fbBuffer); AreEqual(a, e); } diff --git a/tests/MyGame/Example/ArrayTable.cs b/tests/MyGame/Example/ArrayTable.cs index 4f743d0..b5b599f 100644 --- a/tests/MyGame/Example/ArrayTable.cs +++ b/tests/MyGame/Example/ArrayTable.cs @@ -66,7 +66,7 @@ public class ArrayTableT } public byte[] SerializeToBinary() { var fbb = new FlatBufferBuilder(0x10000); - fbb.Finish(ArrayTable.Pack(fbb, this).Value); + ArrayTable.FinishArrayTableBuffer(fbb, ArrayTable.Pack(fbb, this)); return fbb.DataBuffer.ToSizedArray(); } } diff --git a/tests/MyGame/Example/Monster.cs b/tests/MyGame/Example/Monster.cs index 73e39c5..6731cff 100644 --- a/tests/MyGame/Example/Monster.cs +++ b/tests/MyGame/Example/Monster.cs @@ -891,7 +891,7 @@ public class MonsterT } public byte[] SerializeToBinary() { var fbb = new FlatBufferBuilder(0x10000); - fbb.Finish(Monster.Pack(fbb, this).Value); + Monster.FinishMonsterBuffer(fbb, Monster.Pack(fbb, this)); return fbb.DataBuffer.ToSizedArray(); } } diff --git a/tests/MyGame/MonsterExtra.cs b/tests/MyGame/MonsterExtra.cs index f2f4931..d74ae8b 100644 --- a/tests/MyGame/MonsterExtra.cs +++ b/tests/MyGame/MonsterExtra.cs @@ -196,7 +196,7 @@ public class MonsterExtraT } public byte[] SerializeToBinary() { var fbb = new FlatBufferBuilder(0x10000); - fbb.Finish(MonsterExtra.Pack(fbb, this).Value); + MonsterExtra.FinishMonsterExtraBuffer(fbb, MonsterExtra.Pack(fbb, this)); return fbb.DataBuffer.ToSizedArray(); } } diff --git a/tests/union_vector/Movie.cs b/tests/union_vector/Movie.cs index f3d8e6e..2358600 100644 --- a/tests/union_vector/Movie.cs +++ b/tests/union_vector/Movie.cs @@ -196,7 +196,7 @@ public class MovieT } public byte[] SerializeToBinary() { var fbb = new FlatBufferBuilder(0x10000); - fbb.Finish(Movie.Pack(fbb, this).Value); + Movie.FinishMovieBuffer(fbb, Movie.Pack(fbb, this)); return fbb.DataBuffer.ToSizedArray(); } } -- 2.7.4