[C#] Add file identifier to ObjectAPI Serialization Utility. (#5920)
authormugisoba <51015092+mugisoba@users.noreply.github.com>
Thu, 21 May 2020 16:14:20 +0000 (01:14 +0900)
committerGitHub <noreply@github.com>
Thu, 21 May 2020 16:14:20 +0000 (09:14 -0700)
* use Finish***Buffer instead.

* add file_identifier test.

src/idl_gen_csharp.cpp
tests/FlatBuffers.Test/FlatBuffersExampleTests.cs
tests/MyGame/Example/ArrayTable.cs
tests/MyGame/Example/Monster.cs
tests/MyGame/MonsterExtra.cs
tests/union_vector/Movie.cs

index 96a5da8..0dd07d3 100644 (file)
@@ -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";
     }
index c0aa0d1..97a32ae 100644 (file)
@@ -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);
         }
index 4f743d0..b5b599f 100644 (file)
@@ -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();
   }
 }
index 73e39c5..6731cff 100644 (file)
@@ -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();
   }
 }
index f2f4931..d74ae8b 100644 (file)
@@ -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();
   }
 }
index f3d8e6e..2358600 100644 (file)
@@ -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();
   }
 }