Allow unions of table types with the same name but from different namespaces.

Also fixed most codegenerators using the wrong namespace when multiple
namespace were used in a file, with some files not being generated.

Change-Id: Ib42969221239d7244e431cbd667ef69200fc415f
Tested: on Linux.
Bug: 29338474
This commit is contained in:
Wouter van Oortmerssen
2016-06-17 18:16:11 -07:00
parent 6e177bf03f
commit 3639032d1e
25 changed files with 584 additions and 35 deletions

View File

@@ -0,0 +1,23 @@
// automatically generated by the FlatBuffers compiler, do not modify
namespace MyGame.Example2
{
using System;
using FlatBuffers;
public sealed class Monster : Table {
public static Monster GetRootAsMonster(ByteBuffer _bb) { return GetRootAsMonster(_bb, new Monster()); }
public static Monster GetRootAsMonster(ByteBuffer _bb, Monster obj) { return (obj.__init(_bb.GetInt(_bb.Position) + _bb.Position, _bb)); }
public Monster __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void StartMonster(FlatBufferBuilder builder) { builder.StartObject(0); }
public static Offset<MyGame.Example2.Monster> EndMonster(FlatBufferBuilder builder) {
int o = builder.EndObject();
return new Offset<MyGame.Example2.Monster>(o);
}
};
}

View File

@@ -0,0 +1,18 @@
// automatically generated by the FlatBuffers compiler, do not modify
package Example2
import (
flatbuffers "github.com/google/flatbuffers/go"
)
type Monster struct {
_tab flatbuffers.Table
}
func (rcv *Monster) Init(buf []byte, i flatbuffers.UOffsetT) {
rcv._tab.Bytes = buf
rcv._tab.Pos = i
}
func MonsterStart(builder *flatbuffers.Builder) { builder.StartObject(0) }
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() }

View File

@@ -0,0 +1,23 @@
// automatically generated by the FlatBuffers compiler, do not modify
package MyGame.Example2;
import java.nio.*;
import java.lang.*;
import java.util.*;
import com.google.flatbuffers.*;
@SuppressWarnings("unused")
public final class Monster extends Table {
public static Monster getRootAsMonster(ByteBuffer _bb) { return getRootAsMonster(_bb, new Monster()); }
public static Monster getRootAsMonster(ByteBuffer _bb, Monster obj) { _bb.order(ByteOrder.LITTLE_ENDIAN); return (obj.__init(_bb.getInt(_bb.position()) + _bb.position(), _bb)); }
public Monster __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; return this; }
public static void startMonster(FlatBufferBuilder builder) { builder.startObject(0); }
public static int endMonster(FlatBufferBuilder builder) {
int o = builder.endObject();
return o;
}
};

View File

@@ -0,0 +1,79 @@
<?php
// automatically generated by the FlatBuffers compiler, do not modify
namespace MyGame\Example2;
use \Google\FlatBuffers\Struct;
use \Google\FlatBuffers\Table;
use \Google\FlatBuffers\ByteBuffer;
use \Google\FlatBuffers\FlatBufferBuilder;
class Monster extends Table
{
/**
* @param ByteBuffer $bb
* @return Monster
*/
public static function getRootAsMonster(ByteBuffer $bb)
{
$obj = new Monster();
return ($obj->init($bb->getInt($bb->getPosition()) + $bb->getPosition(), $bb));
}
public static function MonsterIdentifier()
{
return "MONS";
}
public static function MonsterBufferHasIdentifier(ByteBuffer $buf)
{
return self::__has_identifier($buf, self::MonsterIdentifier());
}
public static function MonsterExtension()
{
return "mon";
}
/**
* @param int $_i offset
* @param ByteBuffer $_bb
* @return Monster
**/
public function init($_i, ByteBuffer $_bb)
{
$this->bb_pos = $_i;
$this->bb = $_bb;
return $this;
}
/**
* @param FlatBufferBuilder $builder
* @return void
*/
public static function startMonster(FlatBufferBuilder $builder)
{
$builder->StartObject(0);
}
/**
* @param FlatBufferBuilder $builder
* @return Monster
*/
public static function createMonster(FlatBufferBuilder $builder, )
{
$builder->startObject(0);
$o = $builder->endObject();
return $o;
}
/**
* @param FlatBufferBuilder $builder
* @return int table offset
*/
public static function endMonster(FlatBufferBuilder $builder)
{
$o = $builder->endObject();
return $o;
}
}

View File

@@ -0,0 +1,15 @@
# automatically generated by the FlatBuffers compiler, do not modify
# namespace: Example2
import flatbuffers
class Monster(object):
__slots__ = ['_tab']
# Monster
def Init(self, buf, pos):
self._tab = flatbuffers.table.Table(buf, pos)
def MonsterStart(builder): builder.StartObject(0)
def MonsterEnd(builder): return builder.EndObject()