added the idea of each line of a column corresponding to a vector, with
the added informations of the number of elements per line and the elements' names in the column's header structure
This commit is contained in:
@ -530,7 +530,9 @@ size_t obi_get_platform_header_size()
|
||||
OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
const char *column_name,
|
||||
OBIType_t type,
|
||||
size_t nb_elements)
|
||||
size_t nb_elements,
|
||||
size_t nb_elements_per_line,
|
||||
const char* elements_names)
|
||||
{
|
||||
OBIDMS_column_p new_column;
|
||||
OBIDMS_column_directory_p column_directory;
|
||||
@ -561,7 +563,7 @@ OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
|
||||
// Calculate the size needed
|
||||
header_size = obi_get_platform_header_size();
|
||||
data_size = obi_array_sizeof(type, nb_elements);
|
||||
data_size = obi_array_sizeof(type, nb_elements, nb_elements_per_line);
|
||||
file_size = header_size + data_size;
|
||||
|
||||
// Get the latest version number
|
||||
@ -618,7 +620,7 @@ OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
|
||||
// Fill the column structure
|
||||
new_column->dms = dms;
|
||||
new_column->column_directory = column_directory;
|
||||
new_column->column_directory = column_directory;
|
||||
new_column->header = mmap(NULL,
|
||||
header_size,
|
||||
PROT_READ | PROT_WRITE,
|
||||
@ -660,15 +662,20 @@ OBIDMS_column_p obi_create_column(OBIDMS_p dms,
|
||||
|
||||
new_column->writable = true;
|
||||
|
||||
header = new_column->header;
|
||||
header->little_endian = obi_is_little_endian();
|
||||
header->header_size = header_size;
|
||||
header->line_count = nb_elements;
|
||||
header->lines_used = 0;
|
||||
header->data_type = type;
|
||||
header->creation_date = time(NULL);
|
||||
header->version = version_number;
|
||||
header->comments[0] = 0x0;
|
||||
header = new_column->header;
|
||||
header->little_endian = obi_is_little_endian();
|
||||
header->header_size = header_size;
|
||||
header->line_count = nb_elements;
|
||||
header->lines_used = 0;
|
||||
header->nb_elements_per_line = nb_elements_per_line;
|
||||
header->data_type = type;
|
||||
header->creation_date = time(NULL);
|
||||
header->version = version_number;
|
||||
header->comments[0] = 0x0;
|
||||
|
||||
header->elements_names = malloc(strlen(elements_names)*sizeof(char) + 1);
|
||||
strcpy(header->elements_names, elements_names);
|
||||
|
||||
strncpy(header->name, column_name, OBIDMS_MAX_COLNAME);
|
||||
|
||||
free(column_file_name);
|
||||
|
Reference in New Issue
Block a user