Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
flatbuffers
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
flatbuffers
Commits
3a1f7761
Commit
3a1f7761
authored
Jul 14, 2016
by
BogDan Vatra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Verify everything in one shot
parent
4b53762c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
62 additions
and
32 deletions
+62
-32
flatbuffers.h
include/flatbuffers/flatbuffers.h
+6
-1
reflection_generated.h
include/flatbuffers/reflection_generated.h
+2
-2
monster_generated.h
samples/monster_generated.h
+31
-12
idl_gen_cpp.cpp
src/idl_gen_cpp.cpp
+14
-8
monster_test_generated.h
tests/monster_test_generated.h
+2
-2
namespace_test1_generated.h
tests/namespace_test/namespace_test1_generated.h
+1
-1
namespace_test2_generated.h
tests/namespace_test/namespace_test2_generated.h
+6
-6
No files found.
include/flatbuffers/flatbuffers.h
View file @
3a1f7761
...
...
@@ -1314,7 +1314,12 @@ class Verifier FLATBUFFERS_FINAL_CLASS {
}
// Verify this whole buffer, starting with root type T.
template
<
typename
T
>
bool
VerifyBuffer
()
{
template
<
typename
T
>
bool
VerifyBuffer
(
const
char
*
identifier
)
{
if
(
identifier
&&
(
size_t
(
end_
-
buf_
)
<
2
*
sizeof
(
flatbuffers
::
uoffset_t
)
||
!
BufferHasIdentifier
(
buf_
,
identifier
)))
{
return
false
;
}
// Call T::Verify, which must be in the generated code for this type.
return
Verify
<
uoffset_t
>
(
buf_
)
&&
reinterpret_cast
<
const
T
*>
(
buf_
+
ReadScalar
<
uoffset_t
>
(
buf_
))
->
...
...
include/flatbuffers/reflection_generated.h
View file @
3a1f7761
...
...
@@ -478,12 +478,12 @@ inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &
inline
const
reflection
::
Schema
*
GetSchema
(
const
void
*
buf
)
{
return
flatbuffers
::
GetRoot
<
reflection
::
Schema
>
(
buf
);
}
inline
bool
VerifySchemaBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
reflection
::
Schema
>
();
}
inline
const
char
*
SchemaIdentifier
()
{
return
"BFBS"
;
}
inline
bool
SchemaBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
SchemaIdentifier
());
}
inline
bool
VerifySchemaBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
reflection
::
Schema
>
(
SchemaIdentifier
());
}
inline
const
char
*
SchemaExtension
()
{
return
"bfbs"
;
}
inline
void
FinishSchemaBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
reflection
::
Schema
>
root
)
{
fbb
.
Finish
(
root
,
SchemaIdentifier
());
}
...
...
samples/monster_generated.h
View file @
3a1f7761
...
...
@@ -135,15 +135,15 @@ struct MonsterBuilder {
};
inline
flatbuffers
::
Offset
<
Monster
>
CreateMonster
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
Vec3
*
pos
=
0
,
int16_t
mana
=
150
,
int16_t
hp
=
100
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
uint8_t
>>
inventory
=
0
,
Color
color
=
Color_Blue
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
flatbuffers
::
Offset
<
Weapon
>>>
weapons
=
0
,
Equipment
equipped_type
=
Equipment_NONE
,
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
const
Vec3
*
pos
=
0
,
int16_t
mana
=
150
,
int16_t
hp
=
100
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
uint8_t
>>
inventory
=
0
,
Color
color
=
Color_Blue
,
flatbuffers
::
Offset
<
flatbuffers
::
Vector
<
flatbuffers
::
Offset
<
Weapon
>>>
weapons
=
0
,
Equipment
equipped_type
=
Equipment_NONE
,
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
MonsterBuilder
builder_
(
_fbb
);
builder_
.
add_equipped
(
equipped
);
builder_
.
add_weapons
(
weapons
);
...
...
@@ -157,6 +157,19 @@ inline flatbuffers::Offset<Monster> CreateMonster(flatbuffers::FlatBufferBuilder
return
builder_
.
Finish
();
}
inline
flatbuffers
::
Offset
<
Monster
>
CreateMonster
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
Vec3
*
pos
=
0
,
int16_t
mana
=
150
,
int16_t
hp
=
100
,
const
char
*
name
=
nullptr
,
const
std
::
vector
<
uint8_t
>
*
inventory
=
nullptr
,
Color
color
=
Color_Blue
,
const
std
::
vector
<
flatbuffers
::
Offset
<
Weapon
>>
*
weapons
=
nullptr
,
Equipment
equipped_type
=
Equipment_NONE
,
flatbuffers
::
Offset
<
void
>
equipped
=
0
)
{
return
CreateMonster
(
_fbb
,
pos
,
mana
,
hp
,
name
?
0
:
_fbb
.
CreateString
(
name
),
inventory
?
0
:
_fbb
.
CreateVector
<
uint8_t
>
(
*
inventory
),
color
,
weapons
?
0
:
_fbb
.
CreateVector
<
flatbuffers
::
Offset
<
Weapon
>>
(
*
weapons
),
equipped_type
,
equipped
);
}
struct
Weapon
FLATBUFFERS_FINAL_CLASS
:
private
flatbuffers
::
Table
{
enum
{
VT_NAME
=
4
,
...
...
@@ -189,14 +202,20 @@ struct WeaponBuilder {
};
inline
flatbuffers
::
Offset
<
Weapon
>
CreateWeapon
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
int16_t
damage
=
0
)
{
flatbuffers
::
Offset
<
flatbuffers
::
String
>
name
=
0
,
int16_t
damage
=
0
)
{
WeaponBuilder
builder_
(
_fbb
);
builder_
.
add_name
(
name
);
builder_
.
add_damage
(
damage
);
return
builder_
.
Finish
();
}
inline
flatbuffers
::
Offset
<
Weapon
>
CreateWeapon
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
const
char
*
name
=
nullptr
,
int16_t
damage
=
0
)
{
return
CreateWeapon
(
_fbb
,
name
?
0
:
_fbb
.
CreateString
(
name
),
damage
);
}
inline
bool
VerifyEquipment
(
flatbuffers
::
Verifier
&
verifier
,
const
void
*
union_obj
,
Equipment
type
)
{
switch
(
type
)
{
case
Equipment_NONE
:
return
true
;
...
...
@@ -209,7 +228,7 @@ inline const MyGame::Sample::Monster *GetMonster(const void *buf) { return flatb
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Sample
::
Monster
>
();
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Sample
::
Monster
>
(
nullptr
);
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Sample
::
Monster
>
root
)
{
fbb
.
Finish
(
root
);
}
...
...
src/idl_gen_cpp.cpp
View file @
3a1f7761
...
...
@@ -158,14 +158,6 @@ class CppGenerator : public BaseGenerator {
code
+=
name
+
">(buf); }
\n\n
"
;
}
// The root verifier:
code
+=
"inline bool Verify"
;
code
+=
name
;
code
+=
"Buffer(flatbuffers::Verifier &verifier) { "
"return verifier.VerifyBuffer<"
;
code
+=
cpp_qualified_name
+
">(); }
\n\n
"
;
if
(
parser_
.
file_identifier_
.
length
())
{
// Return the identifier
code
+=
"inline const char *"
+
name
;
...
...
@@ -179,6 +171,20 @@ class CppGenerator : public BaseGenerator {
code
+=
name
+
"Identifier()); }
\n\n
"
;
}
// The root verifier:
code
+=
"inline bool Verify"
;
code
+=
name
;
code
+=
"Buffer(flatbuffers::Verifier &verifier) { "
"return verifier.VerifyBuffer<"
;
code
+=
cpp_qualified_name
+
">("
;
if
(
parser_
.
file_identifier_
.
length
())
code
+=
name
+
"Identifier()"
;
else
code
+=
"nullptr"
;
code
+=
"); }
\n\n
"
;
if
(
parser_
.
file_extension_
.
length
())
{
// Return the extension
code
+=
"inline const char *"
+
name
;
...
...
tests/monster_test_generated.h
View file @
3a1f7761
...
...
@@ -510,12 +510,12 @@ inline const MyGame::Example::Monster *GetMonster(const void *buf) { return flat
inline
Monster
*
GetMutableMonster
(
void
*
buf
)
{
return
flatbuffers
::
GetMutableRoot
<
Monster
>
(
buf
);
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Example
::
Monster
>
();
}
inline
const
char
*
MonsterIdentifier
()
{
return
"MONS"
;
}
inline
bool
MonsterBufferHasIdentifier
(
const
void
*
buf
)
{
return
flatbuffers
::
BufferHasIdentifier
(
buf
,
MonsterIdentifier
());
}
inline
bool
VerifyMonsterBuffer
(
flatbuffers
::
Verifier
&
verifier
)
{
return
verifier
.
VerifyBuffer
<
MyGame
::
Example
::
Monster
>
(
MonsterIdentifier
());
}
inline
const
char
*
MonsterExtension
()
{
return
"mon"
;
}
inline
void
FinishMonsterBuffer
(
flatbuffers
::
FlatBufferBuilder
&
fbb
,
flatbuffers
::
Offset
<
MyGame
::
Example
::
Monster
>
root
)
{
fbb
.
Finish
(
root
,
MonsterIdentifier
());
}
...
...
tests/namespace_test/namespace_test1_generated.h
View file @
3a1f7761
...
...
@@ -69,7 +69,7 @@ struct TableInNestedNSBuilder {
};
inline
flatbuffers
::
Offset
<
TableInNestedNS
>
CreateTableInNestedNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
int32_t
foo
=
0
)
{
int32_t
foo
=
0
)
{
TableInNestedNSBuilder
builder_
(
_fbb
);
builder_
.
add_foo
(
foo
);
return
builder_
.
Finish
();
...
...
tests/namespace_test/namespace_test2_generated.h
View file @
3a1f7761
...
...
@@ -60,9 +60,9 @@ struct TableInFirstNSBuilder {
};
inline
flatbuffers
::
Offset
<
TableInFirstNS
>
CreateTableInFirstNS
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceA
::
NamespaceB
::
TableInNestedNS
>
foo_table
=
0
,
NamespaceA
::
NamespaceB
::
EnumInNestedNS
foo_enum
=
NamespaceA
::
NamespaceB
::
EnumInNestedNS_A
,
const
NamespaceA
::
NamespaceB
::
StructInNestedNS
*
foo_struct
=
0
)
{
flatbuffers
::
Offset
<
NamespaceA
::
NamespaceB
::
TableInNestedNS
>
foo_table
=
0
,
NamespaceA
::
NamespaceB
::
EnumInNestedNS
foo_enum
=
NamespaceA
::
NamespaceB
::
EnumInNestedNS_A
,
const
NamespaceA
::
NamespaceB
::
StructInNestedNS
*
foo_struct
=
0
)
{
TableInFirstNSBuilder
builder_
(
_fbb
);
builder_
.
add_foo_struct
(
foo_struct
);
builder_
.
add_foo_table
(
foo_table
);
...
...
@@ -107,8 +107,8 @@ struct TableInCBuilder {
};
inline
flatbuffers
::
Offset
<
TableInC
>
CreateTableInC
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceA
::
TableInFirstNS
>
refer_to_a1
=
0
,
flatbuffers
::
Offset
<
NamespaceA
::
SecondTableInA
>
refer_to_a2
=
0
)
{
flatbuffers
::
Offset
<
NamespaceA
::
TableInFirstNS
>
refer_to_a1
=
0
,
flatbuffers
::
Offset
<
NamespaceA
::
SecondTableInA
>
refer_to_a2
=
0
)
{
TableInCBuilder
builder_
(
_fbb
);
builder_
.
add_refer_to_a2
(
refer_to_a2
);
builder_
.
add_refer_to_a1
(
refer_to_a1
);
...
...
@@ -146,7 +146,7 @@ struct SecondTableInABuilder {
};
inline
flatbuffers
::
Offset
<
SecondTableInA
>
CreateSecondTableInA
(
flatbuffers
::
FlatBufferBuilder
&
_fbb
,
flatbuffers
::
Offset
<
NamespaceC
::
TableInC
>
refer_to_c
=
0
)
{
flatbuffers
::
Offset
<
NamespaceC
::
TableInC
>
refer_to_c
=
0
)
{
SecondTableInABuilder
builder_
(
_fbb
);
builder_
.
add_refer_to_c
(
refer_to_c
);
return
builder_
.
Finish
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment