...

Text file src/github.com/google/flatbuffers/tests/union_vector/Movie.cs

Documentation: github.com/google/flatbuffers/tests/union_vector

     1// <auto-generated>
     2//  automatically generated by the FlatBuffers compiler, do not modify
     3// </auto-generated>
     4
     5using global::System;
     6using global::System.Collections.Generic;
     7using global::Google.FlatBuffers;
     8
     9public struct Movie : IFlatbufferObject
    10{
    11  private Table __p;
    12  public ByteBuffer ByteBuffer { get { return __p.bb; } }
    13  public static void ValidateVersion() { FlatBufferConstants.FLATBUFFERS_23_5_26(); }
    14  public static Movie GetRootAsMovie(ByteBuffer _bb) { return GetRootAsMovie(_bb, new Movie()); }
    15  public static Movie GetRootAsMovie(ByteBuffer _bb, Movie obj) { return (obj.__assign(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
    16  public static bool MovieBufferHasIdentifier(ByteBuffer _bb) { return Table.__has_identifier(_bb, "MOVI"); }
    17  public static bool VerifyMovie(ByteBuffer _bb) {Google.FlatBuffers.Verifier verifier = new Google.FlatBuffers.Verifier(_bb); return verifier.VerifyBuffer("MOVI", false, MovieVerify.Verify); }
    18  public void __init(int _i, ByteBuffer _bb) { __p = new Table(_i, _bb); }
    19  public Movie __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
    20
    21  public Character MainCharacterType { get { int o = __p.__offset(4); return o != 0 ? (Character)__p.bb.Get(o + __p.bb_pos) : Character.NONE; } }
    22  public TTable? MainCharacter<TTable>() where TTable : struct, IFlatbufferObject { int o = __p.__offset(6); return o != 0 ? (TTable?)__p.__union<TTable>(o + __p.bb_pos) : null; }
    23  public string MainCharacterAsString() { int o = __p.__offset(6); return o != 0 ? __p.__string(o + __p.bb_pos) : null; }
    24  public Attacker MainCharacterAsMuLan() { return MainCharacter<Attacker>().Value; }
    25  public Rapunzel MainCharacterAsRapunzel() { return MainCharacter<Rapunzel>().Value; }
    26  public BookReader MainCharacterAsBelle() { return MainCharacter<BookReader>().Value; }
    27  public BookReader MainCharacterAsBookFan() { return MainCharacter<BookReader>().Value; }
    28  public string MainCharacterAsOther() { return MainCharacterAsString(); }
    29  public string MainCharacterAsUnused() { return MainCharacterAsString(); }
    30  public Character CharactersType(int j) { int o = __p.__offset(8); return o != 0 ? (Character)__p.bb.Get(__p.__vector(o) + j * 1) : (Character)0; }
    31  public int CharactersTypeLength { get { int o = __p.__offset(8); return o != 0 ? __p.__vector_len(o) : 0; } }
    32#if ENABLE_SPAN_T
    33  public Span<Character> GetCharactersTypeBytes() { return __p.__vector_as_span<Character>(8, 1); }
    34#else
    35  public ArraySegment<byte>? GetCharactersTypeBytes() { return __p.__vector_as_arraysegment(8); }
    36#endif
    37  public Character[] GetCharactersTypeArray() { int o = __p.__offset(8); if (o == 0) return null; int p = __p.__vector(o); int l = __p.__vector_len(o); Character[] a = new Character[l]; for (int i = 0; i < l; i++) { a[i] = (Character)__p.bb.Get(p + i * 1); } return a; }
    38  public TTable? Characters<TTable>(int j) where TTable : struct, IFlatbufferObject { int o = __p.__offset(10); return o != 0 ? (TTable?)__p.__union<TTable>(__p.__vector(o) + j * 4) : null; }
    39  public string CharactersAsString(int j) { int o = __p.__offset(10); return o != 0 ? __p.__string(__p.__vector(o) + j * 4) : null; }
    40  public int CharactersLength { get { int o = __p.__offset(10); return o != 0 ? __p.__vector_len(o) : 0; } }
    41
    42  public static Offset<Movie> CreateMovie(FlatBufferBuilder builder,
    43      Character main_character_type = Character.NONE,
    44      int main_characterOffset = 0,
    45      VectorOffset characters_typeOffset = default(VectorOffset),
    46      VectorOffset charactersOffset = default(VectorOffset)) {
    47    builder.StartTable(4);
    48    Movie.AddCharacters(builder, charactersOffset);
    49    Movie.AddCharactersType(builder, characters_typeOffset);
    50    Movie.AddMainCharacter(builder, main_characterOffset);
    51    Movie.AddMainCharacterType(builder, main_character_type);
    52    return Movie.EndMovie(builder);
    53  }
    54
    55  public static void StartMovie(FlatBufferBuilder builder) { builder.StartTable(4); }
    56  public static void AddMainCharacterType(FlatBufferBuilder builder, Character mainCharacterType) { builder.AddByte(0, (byte)mainCharacterType, 0); }
    57  public static void AddMainCharacter(FlatBufferBuilder builder, int mainCharacterOffset) { builder.AddOffset(1, mainCharacterOffset, 0); }
    58  public static void AddCharactersType(FlatBufferBuilder builder, VectorOffset charactersTypeOffset) { builder.AddOffset(2, charactersTypeOffset.Value, 0); }
    59  public static VectorOffset CreateCharactersTypeVector(FlatBufferBuilder builder, Character[] data) { builder.StartVector(1, data.Length, 1); for (int i = data.Length - 1; i >= 0; i--) builder.AddByte((byte)data[i]); return builder.EndVector(); }
    60  public static VectorOffset CreateCharactersTypeVectorBlock(FlatBufferBuilder builder, Character[] data) { builder.StartVector(1, data.Length, 1); builder.Add(data); return builder.EndVector(); }
    61  public static VectorOffset CreateCharactersTypeVectorBlock(FlatBufferBuilder builder, ArraySegment<Character> data) { builder.StartVector(1, data.Count, 1); builder.Add(data); return builder.EndVector(); }
    62  public static VectorOffset CreateCharactersTypeVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<Character>(dataPtr, sizeInBytes); return builder.EndVector(); }
    63  public static void StartCharactersTypeVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(1, numElems, 1); }
    64  public static void AddCharacters(FlatBufferBuilder builder, VectorOffset charactersOffset) { builder.AddOffset(3, charactersOffset.Value, 0); }
    65  public static VectorOffset CreateCharactersVector(FlatBufferBuilder builder, int[] data) { builder.StartVector(4, data.Length, 4); for (int i = data.Length - 1; i >= 0; i--) builder.AddOffset(data[i]); return builder.EndVector(); }
    66  public static VectorOffset CreateCharactersVectorBlock(FlatBufferBuilder builder, int[] data) { builder.StartVector(4, data.Length, 4); builder.Add(data); return builder.EndVector(); }
    67  public static VectorOffset CreateCharactersVectorBlock(FlatBufferBuilder builder, ArraySegment<int> data) { builder.StartVector(4, data.Count, 4); builder.Add(data); return builder.EndVector(); }
    68  public static VectorOffset CreateCharactersVectorBlock(FlatBufferBuilder builder, IntPtr dataPtr, int sizeInBytes) { builder.StartVector(1, sizeInBytes, 1); builder.Add<int>(dataPtr, sizeInBytes); return builder.EndVector(); }
    69  public static void StartCharactersVector(FlatBufferBuilder builder, int numElems) { builder.StartVector(4, numElems, 4); }
    70  public static Offset<Movie> EndMovie(FlatBufferBuilder builder) {
    71    int o = builder.EndTable();
    72    return new Offset<Movie>(o);
    73  }
    74  public static void FinishMovieBuffer(FlatBufferBuilder builder, Offset<Movie> offset) { builder.Finish(offset.Value, "MOVI"); }
    75  public static void FinishSizePrefixedMovieBuffer(FlatBufferBuilder builder, Offset<Movie> offset) { builder.FinishSizePrefixed(offset.Value, "MOVI"); }
    76  public MovieT UnPack() {
    77    var _o = new MovieT();
    78    this.UnPackTo(_o);
    79    return _o;
    80  }
    81  public void UnPackTo(MovieT _o) {
    82    _o.MainCharacter = new CharacterUnion();
    83    _o.MainCharacter.Type = this.MainCharacterType;
    84    switch (this.MainCharacterType) {
    85      default: break;
    86      case Character.MuLan:
    87        _o.MainCharacter.Value = this.MainCharacter<Attacker>().HasValue ? this.MainCharacter<Attacker>().Value.UnPack() : null;
    88        break;
    89      case Character.Rapunzel:
    90        _o.MainCharacter.Value = this.MainCharacter<Rapunzel>().HasValue ? this.MainCharacter<Rapunzel>().Value.UnPack() : null;
    91        break;
    92      case Character.Belle:
    93        _o.MainCharacter.Value = this.MainCharacter<BookReader>().HasValue ? this.MainCharacter<BookReader>().Value.UnPack() : null;
    94        break;
    95      case Character.BookFan:
    96        _o.MainCharacter.Value = this.MainCharacter<BookReader>().HasValue ? this.MainCharacter<BookReader>().Value.UnPack() : null;
    97        break;
    98      case Character.Other:
    99        _o.MainCharacter.Value = this.MainCharacterAsString();
   100        break;
   101      case Character.Unused:
   102        _o.MainCharacter.Value = this.MainCharacterAsString();
   103        break;
   104    }
   105    _o.Characters = new List<CharacterUnion>();
   106    for (var _j = 0; _j < this.CharactersLength; ++_j) {
   107      var _o_Characters = new CharacterUnion();
   108      _o_Characters.Type = this.CharactersType(_j);
   109      switch (this.CharactersType(_j)) {
   110        default: break;
   111        case Character.MuLan:
   112          _o_Characters.Value = this.Characters<Attacker>(_j).HasValue ? this.Characters<Attacker>(_j).Value.UnPack() : null;
   113          break;
   114        case Character.Rapunzel:
   115          _o_Characters.Value = this.Characters<Rapunzel>(_j).HasValue ? this.Characters<Rapunzel>(_j).Value.UnPack() : null;
   116          break;
   117        case Character.Belle:
   118          _o_Characters.Value = this.Characters<BookReader>(_j).HasValue ? this.Characters<BookReader>(_j).Value.UnPack() : null;
   119          break;
   120        case Character.BookFan:
   121          _o_Characters.Value = this.Characters<BookReader>(_j).HasValue ? this.Characters<BookReader>(_j).Value.UnPack() : null;
   122          break;
   123        case Character.Other:
   124          _o_Characters.Value = this.CharactersAsString(_j);
   125          break;
   126        case Character.Unused:
   127          _o_Characters.Value = this.CharactersAsString(_j);
   128          break;
   129      }
   130      _o.Characters.Add(_o_Characters);
   131    }
   132  }
   133  public static Offset<Movie> Pack(FlatBufferBuilder builder, MovieT _o) {
   134    if (_o == null) return default(Offset<Movie>);
   135    var _main_character_type = _o.MainCharacter == null ? Character.NONE : _o.MainCharacter.Type;
   136    var _main_character = _o.MainCharacter == null ? 0 : CharacterUnion.Pack(builder, _o.MainCharacter);
   137    var _characters_type = default(VectorOffset);
   138    if (_o.Characters != null) {
   139      var __characters_type = new Character[_o.Characters.Count];
   140      for (var _j = 0; _j < __characters_type.Length; ++_j) { __characters_type[_j] = _o.Characters[_j].Type; }
   141      _characters_type = CreateCharactersTypeVector(builder, __characters_type);
   142    }
   143    var _characters = default(VectorOffset);
   144    if (_o.Characters != null) {
   145      var __characters = new int[_o.Characters.Count];
   146      for (var _j = 0; _j < __characters.Length; ++_j) { __characters[_j] = CharacterUnion.Pack(builder,  _o.Characters[_j]); }
   147      _characters = CreateCharactersVector(builder, __characters);
   148    }
   149    return CreateMovie(
   150      builder,
   151      _main_character_type,
   152      _main_character,
   153      _characters_type,
   154      _characters);
   155  }
   156}
   157
   158public class MovieT
   159{
   160  [Newtonsoft.Json.JsonProperty("main_character_type")]
   161  private Character MainCharacterType {
   162    get {
   163      return this.MainCharacter != null ? this.MainCharacter.Type : Character.NONE;
   164    }
   165    set {
   166      this.MainCharacter = new CharacterUnion();
   167      this.MainCharacter.Type = value;
   168    }
   169  }
   170  [Newtonsoft.Json.JsonProperty("main_character")]
   171  [Newtonsoft.Json.JsonConverter(typeof(CharacterUnion_JsonConverter))]
   172  public CharacterUnion MainCharacter { get; set; }
   173  [Newtonsoft.Json.JsonProperty("characters_type")]
   174  private Character[] CharactersType {
   175    get {
   176      if (this.Characters == null) return null;
   177      var _o = new Character[this.Characters.Count];
   178      for (var _j = 0; _j < _o.Length; ++_j) { _o[_j] = this.Characters[_j].Type; }
   179      return _o;
   180    }
   181    set {
   182      this.Characters = new List<CharacterUnion>();
   183      for (var _j = 0; _j < value.Length; ++_j) {
   184        var _o = new CharacterUnion();
   185        _o.Type = value[_j];
   186        this.Characters.Add(_o);
   187      }
   188    }
   189  }
   190  [Newtonsoft.Json.JsonProperty("characters")]
   191  [Newtonsoft.Json.JsonConverter(typeof(CharacterUnion_JsonConverter))]
   192  public List<CharacterUnion> Characters { get; set; }
   193
   194  public MovieT() {
   195    this.MainCharacter = null;
   196    this.Characters = null;
   197  }
   198
   199  public static MovieT DeserializeFromJson(string jsonText) {
   200    return Newtonsoft.Json.JsonConvert.DeserializeObject<MovieT>(jsonText);
   201  }
   202  public string SerializeToJson() {
   203    return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
   204  }
   205  public static MovieT DeserializeFromBinary(byte[] fbBuffer) {
   206    return Movie.GetRootAsMovie(new ByteBuffer(fbBuffer)).UnPack();
   207  }
   208  public byte[] SerializeToBinary() {
   209    var fbb = new FlatBufferBuilder(0x10000);
   210    Movie.FinishMovieBuffer(fbb, Movie.Pack(fbb, this));
   211    return fbb.DataBuffer.ToSizedArray();
   212  }
   213}
   214
   215
   216static public class MovieVerify
   217{
   218  static public bool Verify(Google.FlatBuffers.Verifier verifier, uint tablePos)
   219  {
   220    return verifier.VerifyTableStart(tablePos)
   221      && verifier.VerifyField(tablePos, 4 /*MainCharacterType*/, 1 /*Character*/, 1, false)
   222      && verifier.VerifyUnion(tablePos, 4, 6 /*MainCharacter*/, CharacterVerify.Verify, false)
   223      && verifier.VerifyVectorOfData(tablePos, 8 /*CharactersType*/, 1 /*Character*/, false)
   224      && verifier.VerifyTableEnd(tablePos);
   225  }
   226}

View as plain text