Set the optional value (begin phase)
(has_value)
| 1688 | |
| 1689 | # Set the optional value (begin phase) |
| 1690 | def set_begin(has_value) |
| 1691 | if (@_buffer.offset + fbe_offset + fbe_size) > @_buffer.size |
| 1692 | return 0 |
| 1693 | end |
| 1694 | |
| 1695 | fbe_has_value = has_value ? 1 : 0 |
| 1696 | write_uint8(fbe_offset, fbe_has_value) |
| 1697 | if fbe_has_value == 0 |
| 1698 | return 0 |
| 1699 | end |
| 1700 | |
| 1701 | fbe_optional_size = value.fbe_size |
| 1702 | fbe_optional_offset = @_buffer.allocate(fbe_optional_size) - @_buffer.offset |
| 1703 | if (fbe_optional_offset <= 0) || ((@_buffer.offset + fbe_optional_offset + fbe_optional_size) > @_buffer.size) |
| 1704 | return 0 |
| 1705 | end |
| 1706 | |
| 1707 | write_uint32(fbe_offset + 1, fbe_optional_offset) |
| 1708 | |
| 1709 | @_buffer.shift(fbe_optional_offset) |
| 1710 | fbe_optional_offset |
| 1711 | end |
| 1712 | |
| 1713 | # Set the optional value (end phase) |
| 1714 | def set_end(fbe_begin) |