Application/Binary
Esta librería es un conjunto de métodos que nos permiten operar a ciertos niveles con valores numéricos sobre binarios, ya sean fragmentados en Bytes como en un valor numérico entero.
Esta librería, pese a tener un constructor, es de las pocas que pueden decirse que son estáticas de uso global y común, es decir, no requiere de la creación de un objeto que contenga sus operaciones sino que simplemente llamando a sus métodos ya sería capaz de aportar las operaciones que ésta contiene.
Binary.get_object
Este método público estático nos permite crear un objeto anónimo con claves y valores definidos sobre el argumento map que mapea dichos datos secuencialmente ordenados contra los datos binarios establecidos en el argumento binary. El mapeado de los datos consta de un Array cuyos valores son otro Array con los siguientes datos:
- name: Este valor no es más que un String que representa el nombre o clave del elemento que se quiere extraer.
- type: Este valor es un String que representa un tipo de dato que se quiere extraer. Dichos datos pueden ser los siguientes:
- string: Representa un valor de tipo String.
- integer: Representa un valor de tipo numérico entero.
- bytes: Representa un valor en Bytes.
- bool: Representa un valor Booleano.
- bytes: Número de Bytes que ocupa dicho valor.
Los tipos de valores que se representan con esos nombres representan realmente un método público estático de Binary que se coge a partir de su prefijo get_, por lo que un valor de tipo string sería para llamar al método Binary:get_string.
El campo type del mapeado de los datos a extraer puede ser una función, la cual representará la acción a llevar a cabo para procesar esos datos.
Por otro lado, el campo bytes del mapeado de los datos a extraer puede ser una función que determine como retorno el número de Bytes a coger dentro del valor binario.
Binary.get_integer
Este método público estático nos permite coger un valor numérico entero a partir del conjunto de Bytes dado por el valor binario.
Este método es peligroso a la hora de usar binarios que excedan del límite seguro de la mantisa del procesador en los lenguajes basados en éstos. Este concepto cambia en lenguajes que procesan de una forma lógica dichos valores como sucede con Python. Además, el rango de seguridad puede variar según lenguaje, pudiendo dar valores totalmente inesperados.