namespace packets;
table User { uiid: string; name: string;}
union PacketType {Ping, RoomInfo}
table Packet { packet: PacketType;}
table Ping { timestamp: uint;}
table RoomInfo { id: uint; users: [User];}
root_type Packet;
flatbuffers::FlatBufferBuilder builder;
auto user1 = CreateUser(builder, builder.CreateString("user1"), builder.CreateString("user1_uuid"));auto user2 = CreateUser(builder, builder.CreateString("user2"), builder.CreateString("user2_uuid"));
flatbuffers::Offset<User> users[2];users[0] = user1;users[1] = user2;
auto vec = builder.CreateVector(users, 2);
RoomInfoBuilder rib(builder);rib.add_id(100);rib.add_users(vec);
auto packet = CreatePacket(builder, PacketType_RoomInfo, rib.Finish().Union());
builder.Finish(packet);
std::ofstream ofs("/tmp/roominfo.data", std::ios::out | std::ios::binary);if (!ofs) { std::cout << "file open failed" << std::endl; return -1;}
ofs.write((char*)builder.GetBufferPointer(), builder.GetSize());
ofs.close();builder := flatbuffers.NewBuilder(0)
// create user 1packets.UserStart(builder)packets.UserAddName(builder, builder.CreateString("user1"))packets.UserAddUiid(builder, builder.CreateString("user1_uuid"))user1 := packets.LoginEnd(builder)builder.Finish(user1)
// create user 2packets.UserStart(builder)packets.UserAddName(builder, builder.CreateString("user2222"))packets.UserAddUiid(builder, builder.CreateString("user2222_uuid"))user2 := packets.LoginEnd(builder)builder.Finish(user2)
/// write room infopackets.RoomInfoStart(builder)packets.RoomInfoAddId(builder, 1000)
////// HOW to build vector of struct??///
room := packets.RoomInfoEnd(builder)builder.Finish(room)
packets.PacketStart(builder)packets.PacketAddPacketType(builder, packets.PacketTypeRoomInfo)packets.PacketAddPacket(builder, room)p := packets.PacketEnd(builder)builder.Finish(p)
ioutil.WriteFile("/tmp/roominfo.go.data", builder.Bytes[builder.Head():], os.FileMode(0644))--
You received this message because you are subscribed to the Google Groups "FlatBuffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flatbuffers...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
builder := flatbuffers.NewBuilder(0)
// create user 1packets.UserStart(builder)packets.UserAddName(builder, builder.CreateString("user1"))packets.UserAddUiid(builder, builder.CreateString("user1_uuid"))user1 := packets.UserEnd(builder)
// create user 2packets.UserStart(builder)packets.UserAddName(builder, builder.CreateString("user2222"))packets.UserAddUiid(builder, builder.CreateString("user2222_uuid"))user2 := packets.UserEnd(builder)
// create vectorpackets.RoomInfoStartUsersVector(builder, 2)builder.PrependUOffsetT(user1)builder.PrependUOffsetT(user2)vec := builder.EndVector(2)
/// write room infopackets.RoomInfoStart(builder)packets.RoomInfoAddId(builder, 1000)packets.RoomInfoAddUsers(builder, vec)room := packets.RoomInfoEnd(builder)builder.Finish(room)
packets.PacketStart(builder)packets.PacketAddPacketType(builder, packets.PacketTypeRoomInfo)packets.PacketAddPacket(builder, room)p := packets.PacketEnd(builder)builder.Finish(p)
ioutil.WriteFile("/tmp/roominfo.go.data", builder.Bytes[builder.Head():], os.FileMode(0644))