Back to Aurora Vision Library website

You are here: Start » Function Reference » All Functions » Binary Data » WriteIntegerArrayToBuffer

WriteIntegerArrayToBuffer


This is Filter Equivalent. This function may be present in generated code, but should not be used in hand-written code.

Header: STD.h
Namespace: avl
Module: FoundationLite

Converts an array of integer values into specified binary representation and writes it to a byte buffer.

Syntax

void avl::WriteIntegerArrayToBuffer
(
	const avl::ByteBuffer& inBuffer,
	atl::Optional<int> inOffset,
	const atl::Array<int>& inArray,
	avl::IntegerBinaryFormat::Type inFormat,
	avl::ByteBuffer& outBuffer
)

Parameters

Name Type Range Default Description
Input value inBuffer const ByteBuffer& Initial buffer to be expanded
Input value inOffset Optional<int> 0 - NIL Write destination position
Input value inArray const Array<int>& Values array to be written
Input value inFormat IntegerBinaryFormat::Type Signed_32Bit_LittleEndian Binary serialization format of integer data
Output value outBuffer ByteBuffer& Resulting data

In-place Processing

This function supports in-place data processing - you can pass the same reference to inBuffer and outBuffer

Read more about In-place Computation.

Description

This filter is intended for generating a raw binary data in the ByteBuffer by writing a properly serialized array of integer values into it.

Resulting ByteBuffer data on the outBuffer output is created by expanding data from buffer on the inBuffer input. Data is written starting at the position specified by the inOffset input (in bytes). When written data spans beyond the end of the input buffer the resulting buffer length is expanded (event when inOffset points beyond the end of the input buffer). When the inOffset input is set to Auto data is written at the end of the input buffer.

This filter writes multiple consecutive integer values from an array on the inArray input. Every array item integer value is converted into a binary representation according to the inFormat input value:

  • Signed_8Bit - signed two's complement 8-bit integer, 1 byte long.
  • Signed_16Bit_LittleEndian - signed two's complement 16-bit integer, 2 bytes long with little-endian byte order.
  • Signed_32Bit_LittleEndian - signed two's complement 32-bit integer, 4 bytes long with little-endian byte order.
  • Signed_64Bit_LittleEndian - signed two's complement 64-bit integer, 8 bytes long with little-endian byte order.
  • Unsigned_8Bit - unsigned 8-bit integer, 1 byte long.
  • Unsigned_16Bit_LittleEndian - unsigned 16-bit integer, 2 bytes long with little-endian byte order.
  • Unsigned_64Bit_LittleEndian - unsigned 64-bit integer, 8 bytes long with little-endian byte order.
  • Signed_16Bit_BigEndian - signed two's complement 16-bit integer, 2 bytes long with big-endian byte order.
  • Signed_32Bit_BigEndian - signed two's complement 32-bit integer, 4 bytes long with big-endian byte order.
  • Signed_64Bit_BigEndian - signed two's complement 64-bit integer, 8 bytes long with big-endian byte order.
  • Unsigned_16Bit_BigEndian - unsigned 16-bit integer, 2 bytes long with big-endian byte order.
  • Unsigned_32Bit_BigEndian - unsigned 32-bit integer, 4 bytes long with big-endian byte order.
  • Unsigned_64Bit_BigEndian - unsigned 64-bit integer, 8 bytes long with big-endian byte order.

Supported numeric range of stored value also depends on selected format:

  • Signed_8Bit: -128...127
  • Signed_16Bit_: -32768...32767
  • Signed_32Bit_: -2147483648...2147483647
  • Signed_64Bit_: -9223372036854775808...9223372036854775807 *
  • Unsigned_8Bit: 0...255
  • Unsigned_16Bit_: 0...65535
  • Unsigned_32Bit_: 0...4294967295 *
  • Unsigned_64Bit_: 0...18446744073709551615 *

 *) actual achievable range in the application is also limited by the Integer type

When an array item value (which is a signed 32-bit integer) cannot be stored in the selected format (it is out of its range) a DomainError is raised.

This filter can be used as a more convenient and faster alternative to the connection of WriteIntegerToBuffer and WriteBufferArrayToBuffer filters.

Errors

List of possible exceptions:

Error type Description
DomainError Input value is out of the valid range for specified integer binary format.
One of the items value in provided array cannot be cast to the type specified by the inFormat input.
DomainError Not supported integer binary format.
IoError Resulting byte buffer size is too large.

See Also

  • WriteIntegerToBuffer – Converts integer value into specified binary representation and writes it to a byte buffer.