MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / setBegin

Method setBegin

projects/JavaScript/proto/proto.js:1257–1276  ·  view source on GitHub ↗

* Set the struct value (begin phase) * @this {!FieldModelOrder} * @returns {!number} Field model begin offset

()

Source from the content-addressed store, hash-verified

1255 * @returns {!number} Field model begin offset
1256 */
1257 setBegin () {
1258 console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!')
1259 if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) {
1260 return 0
1261 }
1262
1263 let fbeStructSize = this.fbeBody
1264 let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset
1265 console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!')
1266 if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) {
1267 return 0
1268 }
1269
1270 this.writeUInt32(this.fbeOffset, fbeStructOffset)
1271 this.writeUInt32(fbeStructOffset, fbeStructSize)
1272 this.writeUInt32(fbeStructOffset + 4, this.fbeType)
1273
1274 this._buffer.shift(fbeStructOffset)
1275 return fbeStructOffset
1276 }
1277
1278 /**
1279 * Set the struct value (end phase)

Callers 1

setMethod · 0.95

Calls 3

allocateMethod · 0.45
writeUInt32Method · 0.45
shiftMethod · 0.45

Tested by

no test coverage detected