Exemplo n.º 1
0
        public void BuildNestedMonster()
        {
            const string nestedMonsterName = "NestedMonsterName";
            const short  nestedMonsterHp   = 600;
            const short  nestedMonsterMana = 1024;

            for (int i = 0; i < NumberOfRows; i++)
            {
                // Create nested buffer as a Monster type
                var fbb1 = new FlatBufferBuilder(16);
                var str1 = fbb1.CreateString(nestedMonsterName);
                Monster.StartMonster(fbb1);
                Monster.AddName(fbb1, str1);
                Monster.AddHp(fbb1, nestedMonsterHp);
                Monster.AddMana(fbb1, nestedMonsterMana);
                var monster1 = Monster.EndMonster(fbb1);
                Monster.FinishMonsterBuffer(fbb1, monster1);
                var fbb1Bytes = fbb1.SizedByteArray();
                fbb1 = null;

                // Create a Monster which has the first buffer as a nested buffer
                var fbb2         = new FlatBufferBuilder(16);
                var str2         = fbb2.CreateString("My Monster");
                var nestedBuffer = Monster.CreateTestnestedflatbufferVector(fbb2, fbb1Bytes);
                Monster.StartMonster(fbb2);
                Monster.AddName(fbb2, str2);
                Monster.AddHp(fbb2, 50);
                Monster.AddMana(fbb2, 32);
                Monster.AddTestnestedflatbuffer(fbb2, nestedBuffer);
                var monster = Monster.EndMonster(fbb2);
                Monster.FinishMonsterBuffer(fbb2, monster);
            }
        }
Exemplo n.º 2
0
        public void TestNestedFlatBuffer()
        {
            const string nestedMonsterName = "NestedMonsterName";
            const short  nestedMonsterHp   = 600;
            const short  nestedMonsterMana = 1024;
            // Create nested buffer as a Monster type
            var fbb1 = new FlatBufferBuilder(16);
            var str1 = fbb1.CreateString(nestedMonsterName);

            Monster.StartMonster(fbb1);
            Monster.AddName(fbb1, str1);
            Monster.AddHp(fbb1, nestedMonsterHp);
            Monster.AddMana(fbb1, nestedMonsterMana);
            var monster1 = Monster.EndMonster(fbb1);

            Monster.FinishMonsterBuffer(fbb1, monster1);
            var fbb1Bytes = fbb1.SizedByteArray();

            fbb1 = null;

            // Create a Monster which has the first buffer as a nested buffer
            var fbb2         = new FlatBufferBuilder(16);
            var str2         = fbb2.CreateString("My Monster");
            var nestedBuffer = Monster.CreateTestnestedflatbufferVector(fbb2, fbb1Bytes);

            Monster.StartMonster(fbb2);
            Monster.AddName(fbb2, str2);
            Monster.AddHp(fbb2, 50);
            Monster.AddMana(fbb2, 32);
            Monster.AddTestnestedflatbuffer(fbb2, nestedBuffer);
            var monster = Monster.EndMonster(fbb2);

            Monster.FinishMonsterBuffer(fbb2, monster);

            // Now test the data extracted from the nested buffer
            var mons          = Monster.GetRootAsMonster(fbb2.DataBuffer);
            var nestedMonster = mons.GetTestnestedflatbufferAsMonster().Value;

            Assert.AreEqual(nestedMonsterMana, nestedMonster.Mana);
            Assert.AreEqual(nestedMonsterHp, nestedMonster.Hp);
            Assert.AreEqual(nestedMonsterName, nestedMonster.Name);

            TestObjectAPI(mons);
            TestObjectAPI(nestedMonster);
        }
Exemplo n.º 3
0
        public void BuildMonster()
        {
            for (int i = 0; i < NumberOfRows; i++)
            {
                var builder = new FlatBufferBuilder(16);
                var str1    = builder.CreateString("MonsterName");
                Monster.StartMonster(builder);
                Monster.AddName(builder, str1);
                Monster.AddHp(builder, 600);
                Monster.AddMana(builder, 1024);
                Monster.AddColor(builder, Color.Blue);
                Monster.AddTestbool(builder, true);
                Monster.AddTestf(builder, 0.3f);
                Monster.AddTestf2(builder, 0.2f);
                Monster.AddTestf3(builder, 0.1f);

                var monster1 = Monster.EndMonster(builder);
                Monster.FinishMonsterBuffer(builder, monster1);
            }
        }