FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
flatbuffers/samples/samplebinary.js 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.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
106 lines (83 loc) · 4.04 KB
Breadcrumbs
flatbuffers
/
samples
/
samplebinary.js
Copy path
File metadata and controls
106 lines (83 loc) · 4.04 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
/*
* 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.
*/
// To run, use the `javascript_sample.sh` script.
var
assert
=
require
(
'assert'
)
;
var
flatbuffers
=
require
(
'../js/flatbuffers'
)
.
flatbuffers
;
var
MyGame
=
require
(
'./monster_generated'
)
.
MyGame
;
// Example how to use FlatBuffers to create and read binary buffers.
function
main
(
)
{
var
builder
=
new
flatbuffers
.
Builder
(
0
)
;
// Create some weapons for our Monster ('Sword' and 'Axe').
var
weaponOne
=
builder
.
createString
(
'Sword'
)
;
var
weaponTwo
=
builder
.
createString
(
'Axe'
)
;
MyGame
.
Sample
.
Weapon
.
startWeapon
(
builder
)
;
MyGame
.
Sample
.
Weapon
.
addName
(
builder
,
weaponOne
)
;
MyGame
.
Sample
.
Weapon
.
addDamage
(
builder
,
3
)
;
var
sword
=
MyGame
.
Sample
.
Weapon
.
endWeapon
(
builder
)
;
MyGame
.
Sample
.
Weapon
.
startWeapon
(
builder
)
;
MyGame
.
Sample
.
Weapon
.
addName
(
builder
,
weaponTwo
)
;
MyGame
.
Sample
.
Weapon
.
addDamage
(
builder
,
5
)
;
var
axe
=
MyGame
.
Sample
.
Weapon
.
endWeapon
(
builder
)
;
// Serialize the FlatBuffer data.
var
name
=
builder
.
createString
(
'Orc'
)
;
var
treasure
=
[
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
;
var
inv
=
MyGame
.
Sample
.
Monster
.
createInventoryVector
(
builder
,
treasure
)
;
var
weaps
=
[
sword
,
axe
]
;
var
weapons
=
MyGame
.
Sample
.
Monster
.
createWeaponsVector
(
builder
,
weaps
)
;
var
pos
=
MyGame
.
Sample
.
Vec3
.
createVec3
(
builder
,
1.0
,
2.0
,
3.0
)
;
MyGame
.
Sample
.
Monster
.
startMonster
(
builder
)
;
MyGame
.
Sample
.
Monster
.
addPos
(
builder
,
pos
)
;
MyGame
.
Sample
.
Monster
.
addHp
(
builder
,
300
)
;
MyGame
.
Sample
.
Monster
.
addColor
(
builder
,
MyGame
.
Sample
.
Color
.
Red
)
MyGame
.
Sample
.
Monster
.
addName
(
builder
,
name
)
;
MyGame
.
Sample
.
Monster
.
addInventory
(
builder
,
inv
)
;
MyGame
.
Sample
.
Monster
.
addWeapons
(
builder
,
weapons
)
;
MyGame
.
Sample
.
Monster
.
addEquippedType
(
builder
,
MyGame
.
Sample
.
Equipment
.
Weapon
)
;
MyGame
.
Sample
.
Monster
.
addEquipped
(
builder
,
weaps
[
1
]
)
;
var
orc
=
MyGame
.
Sample
.
Monster
.
endMonster
(
builder
)
;
builder
.
finish
(
orc
)
;
// You may also call 'MyGame.Example.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.
var
buf
=
builder
.
dataBuffer
(
)
;
// Get access to the root:
var
monster
=
MyGame
.
Sample
.
Monster
.
getRootAsMonster
(
buf
)
;
// Note: We did not set the `mana` field explicitly, so we get back the default value.
assert
.
equal
(
monster
.
mana
(
)
,
150
)
;
assert
.
equal
(
monster
.
hp
(
)
,
300
)
;
assert
.
equal
(
monster
.
name
(
)
,
'Orc'
)
;
assert
.
equal
(
monster
.
color
(
)
,
MyGame
.
Sample
.
Color
.
Red
)
;
assert
.
equal
(
monster
.
pos
(
)
.
x
(
)
,
1.0
)
;
assert
.
equal
(
monster
.
pos
(
)
.
y
(
)
,
2.0
)
;
assert
.
equal
(
monster
.
pos
(
)
.
z
(
)
,
3.0
)
;
// Get and test the `inventory` FlatBuffer `vector`.
for
(
var
i
=
0
;
i
<
monster
.
inventoryLength
(
)
;
i
++
)
{
assert
.
equal
(
monster
.
inventory
(
i
)
,
i
)
;
}
// Get and test the `weapons` FlatBuffer `vector` of `table`s.
var
expectedWeaponNames
=
[
'Sword'
,
'Axe'
]
;
var
expectedWeaponDamages
=
[
3
,
5
]
;
for
(
var
i
=
0
;
i
<
monster
.
weaponsLength
(
)
;
i
++
)
{
assert
.
equal
(
monster
.
weapons
(
i
)
.
name
(
)
,
expectedWeaponNames
[
i
]
)
;
assert
.
equal
(
monster
.
weapons
(
i
)
.
damage
(
)
,
expectedWeaponDamages
[
i
]
)
;
}
// Get and test the `equipped` FlatBuffer `union`.
assert
.
equal
(
monster
.
equippedType
(
)
,
MyGame
.
Sample
.
Equipment
.
Weapon
)
;
assert
.
equal
(
monster
.
equipped
(
new
MyGame
.
Sample
.
Weapon
(
)
)
.
name
(
)
,
'Axe'
)
;
assert
.
equal
(
monster
.
equipped
(
new
MyGame
.
Sample
.
Weapon
(
)
)
.
damage
(
)
,
5
)
;
console
.
log
(
'The FlatBuffer was successfully created and verified!'
)
;
}
main
(
)
;
Back
|
FazBrowse Home
|
New Git URL