private void TestObjectAPI(Movie a) { var b = a.UnPack(); AreEqual(a, b); var fbb = new FlatBufferBuilder(1); fbb.Finish(Movie.Pack(fbb, b).Value); var c = Movie.GetRootAsMovie(fbb.DataBuffer); AreEqual(a, c); var jsonText = b.SerializeToJson(); var d = MovieT.DeserializeFromJson(jsonText); AreEqual(a, d); var fbBuffer = b.SerializeToBinary(); Assert.IsTrue(Movie.MovieBufferHasIdentifier(new ByteBuffer(fbBuffer))); var e = MovieT.DeserializeFromBinary(fbBuffer); AreEqual(a, e); }
public void TestUnionUtility() { var movie = new MovieT { MainCharacter = CharacterUnion.FromRapunzel(new RapunzelT { HairLength = 40 }), Characters = new System.Collections.Generic.List <CharacterUnion> { CharacterUnion.FromMuLan(new AttackerT { SwordAttackDamage = 10 }), CharacterUnion.FromBelle(new BookReaderT { BooksRead = 20 }), CharacterUnion.FromOther("Chip"), }, }; var fbb = new FlatBufferBuilder(100); Movie.FinishMovieBuffer(fbb, Movie.Pack(fbb, movie)); TestObjectAPI(Movie.GetRootAsMovie(fbb.DataBuffer)); }
public MovieT UnPack() { var _o = new MovieT(); this.UnPackTo(_o); return(_o); }
private void AreEqual(Movie a, MovieT b) { Assert.AreEqual(a.MainCharacterType, b.MainCharacter.Type); Assert.AreEqual(a.MainCharacter <Rapunzel>().Value.HairLength, b.MainCharacter.AsRapunzel().HairLength); Assert.AreEqual(a.CharactersLength, b.Characters.Count); Assert.AreEqual(a.CharactersType(0), b.Characters[0].Type); Assert.AreEqual(a.Characters <Attacker>(0).Value.SwordAttackDamage, b.Characters[0].AsMuLan().SwordAttackDamage); Assert.AreEqual(a.CharactersType(1), b.Characters[1].Type); Assert.AreEqual(a.Characters <BookReader>(1).Value.BooksRead, b.Characters[1].AsBelle().BooksRead); Assert.AreEqual(a.CharactersType(2), b.Characters[2].Type); Assert.AreEqual(a.CharactersAsString(2), b.Characters[2].AsOther()); }
private void TestObjectAPI(Movie a) { var b = a.UnPack(); AreEqual(a, b); var fbb = new FlatBufferBuilder(1); fbb.Finish(Movie.Pack(fbb, b).Value); var c = Movie.GetRootAsMovie(fbb.DataBuffer); AreEqual(a, c); var jsonText = b.SerializeToJson(); var d = MovieT.DeserializeFromJson(jsonText); AreEqual(a, d); }
public static Offset <Movie> Pack(FlatBufferBuilder builder, MovieT _o) { if (_o == null) { return(default(Offset <Movie>)); } var _main_character_type = _o.MainCharacter == null ? Character.NONE : _o.MainCharacter.Type; var _main_character = _o.MainCharacter == null ? 0 : CharacterUnion.Pack(builder, _o.MainCharacter); var _characters_type = default(VectorOffset); if (_o.Characters != null) { var __characters_type = new Character[_o.Characters.Count]; for (var _j = 0; _j < __characters_type.Length; ++_j) { __characters_type[_j] = _o.Characters[_j].Type; } _characters_type = CreateCharactersTypeVector(builder, __characters_type); } var _characters = default(VectorOffset); if (_o.Characters != null) { var __characters = new int[_o.Characters.Count]; for (var _j = 0; _j < __characters.Length; ++_j) { __characters[_j] = CharacterUnion.Pack(builder, _o.Characters[_j]); } _characters = CreateCharactersVector(builder, __characters); } return(CreateMovie( builder, _main_character_type, _main_character, _characters_type, _characters)); }
public void UnPackTo(MovieT _o) { _o.MainCharacter = new CharacterUnion(); _o.MainCharacter.Type = this.MainCharacterType; switch (this.MainCharacterType) { default: break; case Character.MuLan: _o.MainCharacter.Value = this.MainCharacter <Attacker>().HasValue ? this.MainCharacter <Attacker>().Value.UnPack() : null; break; case Character.Rapunzel: _o.MainCharacter.Value = this.MainCharacter <Rapunzel>().HasValue ? this.MainCharacter <Rapunzel>().Value.UnPack() : null; break; case Character.Belle: _o.MainCharacter.Value = this.MainCharacter <BookReader>().HasValue ? this.MainCharacter <BookReader>().Value.UnPack() : null; break; case Character.BookFan: _o.MainCharacter.Value = this.MainCharacter <BookReader>().HasValue ? this.MainCharacter <BookReader>().Value.UnPack() : null; break; case Character.Other: _o.MainCharacter.Value = this.MainCharacterAsString(); break; case Character.Unused: _o.MainCharacter.Value = this.MainCharacterAsString(); break; } _o.Characters = new List <CharacterUnion>(); for (var _j = 0; _j < this.CharactersLength; ++_j) { var _o_Characters = new CharacterUnion(); _o_Characters.Type = this.CharactersType(_j); switch (this.CharactersType(_j)) { default: break; case Character.MuLan: _o_Characters.Value = this.Characters <Attacker>(_j).HasValue ? this.Characters <Attacker>(_j).Value.UnPack() : null; break; case Character.Rapunzel: _o_Characters.Value = this.Characters <Rapunzel>(_j).HasValue ? this.Characters <Rapunzel>(_j).Value.UnPack() : null; break; case Character.Belle: _o_Characters.Value = this.Characters <BookReader>(_j).HasValue ? this.Characters <BookReader>(_j).Value.UnPack() : null; break; case Character.BookFan: _o_Characters.Value = this.Characters <BookReader>(_j).HasValue ? this.Characters <BookReader>(_j).Value.UnPack() : null; break; case Character.Other: _o_Characters.Value = this.CharactersAsString(_j); break; case Character.Unused: _o_Characters.Value = this.CharactersAsString(_j); break; } _o.Characters.Add(_o_Characters); } }