Major update: new type of columns containing indices referring to lines
in other columns
This commit is contained in:
@ -57,12 +57,20 @@ typedef struct OBIDMS_column_header {
|
||||
*/
|
||||
index_t lines_used; /**< Number of lines of data used.
|
||||
*/
|
||||
index_t nb_elements_per_line; /**< Number of elements per line (default: 1).
|
||||
index_t returned_nb_elements_per_line; /**< Number of elements per line returned when getting a
|
||||
* line from the column.
|
||||
*/
|
||||
index_t stored_nb_elements_per_line; /**< Number of elements per line that is actually stored
|
||||
* in the data part of the column.
|
||||
*/
|
||||
char elements_names[ELEMENTS_NAMES_MAX+1]; /**< Names of the line elements with ';' as separator
|
||||
* (should be the column name if one element per line).
|
||||
*/
|
||||
OBIType_t data_type; /**< Type of the data.
|
||||
OBIType_t returned_data_type; /**< Type of the data that is returned when getting an
|
||||
* element from the column.
|
||||
*/
|
||||
OBIType_t stored_data_type; /**< Type of the data that is actually stored in the data
|
||||
* part of the column.
|
||||
*/
|
||||
time_t creation_date; /**< Date of creation of the file.
|
||||
*/
|
||||
@ -72,6 +80,10 @@ typedef struct OBIDMS_column_header {
|
||||
* was cloned from (-1 if it was not created by cloning
|
||||
* another column).
|
||||
*/
|
||||
bool referring; /**< Whether the column contains indices referring to another column.
|
||||
*/
|
||||
obiversion_t referred_column_version; /**< Version of the column to which this column is referring.
|
||||
*/
|
||||
char name[OBIDMS_COLUMN_MAX_NAME+1]; /**< The column name as a NULL terminated string.
|
||||
*/
|
||||
char array_name[ARRAY_MAX_NAME+1]; /**< If there is one, the obi_array name as a NULL terminated string.
|
||||
@ -96,6 +108,8 @@ typedef struct OBIDMS_column {
|
||||
*/
|
||||
OBIDMS_array_p array; /**< A pointer to the array associated with the column if there is one.
|
||||
*/
|
||||
struct OBIDMS_column* referred_column; /**< A pointer to the referred column if the column is referring.
|
||||
*/
|
||||
void* data; /**< A `void` pointer to the beginning of the data.
|
||||
*
|
||||
* @warning Never use this member directly outside of the code of the
|
||||
@ -170,6 +184,7 @@ size_t obi_get_platform_header_size();
|
||||
* @param elements_names The names of the elements with ';' as separator.
|
||||
* @param array_name The name of the array if there is one associated with the column.
|
||||
* @param comments Optional comments associated with the column.
|
||||
* @param referring
|
||||
*
|
||||
* @returns A pointer on the newly created column structure.
|
||||
* @retval NULL if an error occurred.
|
||||
@ -184,7 +199,8 @@ OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
index_t nb_elements_per_line,
|
||||
const char* elements_names,
|
||||
const char* array_name,
|
||||
const char* comments);
|
||||
const char* comments,
|
||||
bool referring);
|
||||
|
||||
|
||||
/**
|
||||
@ -217,7 +233,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms, const char* column_name, obiversio
|
||||
* @since August 2015
|
||||
* @author Celine Mercier (celine.mercier@metabarcoding.org)
|
||||
*/
|
||||
OBIDMS_column_p obi_clone_column(OBIDMS_p dms, const char* column_name, obiversion_t version_number, bool clone_data);
|
||||
OBIDMS_column_p obi_clone_column(OBIDMS_p dms, const char* column_name, obiversion_t version_number, bool referring, bool clone_data);
|
||||
|
||||
|
||||
/**
|
||||
@ -354,4 +370,8 @@ index_t obi_column_get_element_index_from_name(OBIDMS_column_p column, const cha
|
||||
char* obi_column_format_date(time_t date);
|
||||
|
||||
|
||||
int obi_grep_line(OBIDMS_column_p referring_column, index_t line_to_grep);
|
||||
|
||||
|
||||
|
||||
#endif /* OBIDMSCOLUMN_H_ */
|
||||
|
Reference in New Issue
Block a user