Files
obitools3/src/obidmscolumn_array.h
2018-10-21 17:35:18 +02:00

65 lines
2.2 KiB
C
Executable File

/****************************************************************************
* Array columns header file *
****************************************************************************/
/**
* @file obidsmcolumn_array.h
* @author Celine Mercier
* @date October 30th 2017
* @brief Header file for the functions handling OBIColumns containing data in the form of indices referring to data arrays.
*/
#ifndef OBIDMSCOLUMN_ARRAY_H_
#define OBIDMSCOLUMN_ARRAY_H_
#include <stdlib.h>
#include <stdio.h>
#include "obidmscolumn.h"
#include "obitypes.h"
/**
* @brief Sets a value in an OBIDMS column containing data in the form of indices referring
* to arrays handled by an indexer.
*
* @warning Pointers returned by obi_open_column() don't allow writing.
*
* @param column A pointer as returned by obi_create_column() or obi_clone_column().
* @param line_nb The number of the line where the value should be set.
* @param value A pointer on the array.
* @param elt_size The size in bits of one element.
* @param value_length The length (number of elements) of the array to index.
*
* @returns An integer value indicating the success of the operation.
* @retval 0 on success.
* @retval -1 if an error occurred.
*
* @since October 2017
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*/
int obi_column_set_array(OBIDMS_column_p column, index_t line_nb, const void* value, uint8_t elt_size, int32_t value_length);
/**
* @brief Recovers a value in an OBIDMS column containing data in the form of indices referring
* to arrays handled by an indexer.
*
* @param column A pointer as returned by obi_create_column().
* @param line_nb The number of the line where the value should be recovered.
* @param value_length A pointer on an integer to store the length of the array retrieved.
*
* @returns The recovered value.
* @retval OBITuple_NA the NA value of the type if an error occurred and obi_errno is set.
*
* @since October 2017
* @author Celine Mercier (celine.mercier@metabarcoding.org)
*/
const void* obi_column_get_array(OBIDMS_column_p column, index_t line_nb, int32_t* value_length_p);
#endif /* OBIDMSCOLUMN_ARRAY_H_ */