FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
flatbuffers/samples/SampleBinary.java at master · golang4gg/flatbuffers · GitHub
golang4gg
/
flatbuffers
Public
forked from
google/flatbuffers
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
flatbuffers
/
samples
/
SampleBinary.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
112 lines (91 loc) · 4.2 KB
Breadcrumbs
flatbuffers
/
samples
/
SampleBinary.java
Copy path
File metadata and controls
112 lines (91 loc) · 4.2 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* Copyright 2015 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Run this file with the `java_sample.sh` script.
import
MyGame
.
Sample
.
Color
;
import
MyGame
.
Sample
.
Equipment
;
import
MyGame
.
Sample
.
Monster
;
import
MyGame
.
Sample
.
Vec3
;
import
MyGame
.
Sample
.
Weapon
;
import
com
.
google
.
flatbuffers
.
FlatBufferBuilder
;
import
java
.
nio
.
ByteBuffer
;
class
SampleBinary
{
// Example how to use FlatBuffers to create and read binary buffers.
public
static
void
main
(
String
[]
args
) {
FlatBufferBuilder
builder
=
new
FlatBufferBuilder
(
0
);
// Create some weapons for our Monster ('Sword' and 'Axe').
int
weaponOneName
=
builder
.
createString
(
"Sword"
);
short
weaponOneDamage
=
3
;
int
weaponTwoName
=
builder
.
createString
(
"Axe"
);
short
weaponTwoDamage
=
5
;
// Use the `createWeapon()` helper function to create the weapons, since we set every field.
int
[]
weaps
=
new
int
[
2
];
weaps
[
0
] =
Weapon
.
createWeapon
(
builder
,
weaponOneName
,
weaponOneDamage
);
weaps
[
1
] =
Weapon
.
createWeapon
(
builder
,
weaponTwoName
,
weaponTwoDamage
);
// Serialize the FlatBuffer data.
int
name
=
builder
.
createString
(
"Orc"
);
byte
[]
treasure
= {
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
};
int
inv
=
Monster
.
createInventoryVector
(
builder
,
treasure
);
int
weapons
=
Monster
.
createWeaponsVector
(
builder
,
weaps
);
int
pos
=
Vec3
.
createVec3
(
builder
,
1.0f
,
2.0f
,
3.0f
);
Monster
.
startMonster
(
builder
);
Monster
.
addPos
(
builder
,
pos
);
Monster
.
addName
(
builder
,
name
);
Monster
.
addColor
(
builder
,
Color
.
Red
);
Monster
.
addHp
(
builder
, (
short
)
300
);
Monster
.
addInventory
(
builder
,
inv
);
Monster
.
addWeapons
(
builder
,
weapons
);
Monster
.
addEquippedType
(
builder
,
Equipment
.
Weapon
);
Monster
.
addEquipped
(
builder
,
weaps
[
1
]);
int
orc
=
Monster
.
endMonster
(
builder
);
builder
.
finish
(
orc
);
// You could also call `Monster.finishMonsterBuffer(builder, orc);`.
// We now have a FlatBuffer that can be stored on disk or sent over a network.
// ...Code to store to disk or send over a network goes here...
// Instead, we are going to access it right away, as if we just received it.
ByteBuffer
buf
=
builder
.
dataBuffer
();
// Get access to the root:
Monster
monster
=
Monster
.
getRootAsMonster
(
buf
);
// Note: We did not set the `mana` field explicitly, so we get back the default value.
assert
monster
.
mana
() == (
short
)
150
;
assert
monster
.
hp
() == (
short
)
300
;
assert
monster
.
name
().
equals
(
"Orc"
);
assert
monster
.
color
() ==
Color
.
Red
;
assert
monster
.
pos
().
x
() ==
1.0f
;
assert
monster
.
pos
().
y
() ==
2.0f
;
assert
monster
.
pos
().
z
() ==
3.0f
;
// Get and test the `inventory` FlatBuffer `vector`.
for
(
int
i
=
0
;
i
<
monster
.
inventoryLength
();
i
++) {
assert
monster
.
inventory
(
i
) == (
byte
)
i
;
}
// Get and test the `weapons` FlatBuffer `vector` of `table`s.
String
[]
expectedWeaponNames
= {
"Sword"
,
"Axe"
};
int
[]
expectedWeaponDamages
= {
3
,
5
};
for
(
int
i
=
0
;
i
<
monster
.
weaponsLength
();
i
++) {
assert
monster
.
weapons
(
i
).
name
().
equals
(
expectedWeaponNames
[
i
]);
assert
monster
.
weapons
(
i
).
damage
() ==
expectedWeaponDamages
[
i
];
}
Weapon
.
Vector
weaponsVector
=
monster
.
weaponsVector
();
for
(
int
i
=
0
;
i
<
weaponsVector
.
length
();
i
++) {
assert
weaponsVector
.
get
(
i
).
name
().
equals
(
expectedWeaponNames
[
i
]);
assert
weaponsVector
.
get
(
i
).
damage
() ==
expectedWeaponDamages
[
i
];
}
// Get and test the `equipped` FlatBuffer `union`.
assert
monster
.
equippedType
() ==
Equipment
.
Weapon
;
Weapon
equipped
= (
Weapon
)
monster
.
equipped
(
new
Weapon
());
assert
equipped
.
name
().
equals
(
"Axe"
);
assert
equipped
.
damage
() ==
5
;
System
.
out
.
println
(
"The FlatBuffer was successfully created and verified!"
);
}
}
Back
|
FazBrowse Home
|
New Git URL