int dedge_index_load(HSParameters params, FILE * fp, void ** userData) { uint16_t saved; if (!load_uint16(&saved, fp)) return 0; DedgeIndexData * data = (DedgeIndexData *)malloc(sizeof(DedgeIndexData)); int i; for (i = 0; i < 12; i++) { data->dedgeFlags[i] = (saved >> i) & 1; } if (!load_cuboid_dimensions(&data->dims, fp)) { free(data); return 0; } if (!dedge_index_supports_dimensions(data, params.symmetries.dims)) { free(data); return 0; } *userData = data; return 1; }
/*read the data contain in the file */ int32_t macsim_read(GenericReader_T* genreader,glu_item_t* item) { char data_var[LG_MAX_STRING_MACSIM]; uint32_t indice_data=0, rep=EOF, dimension=0; uint8_t continuer=1; TSP_sample_symbol_info_list_t ssi_list; ssi_list=*genreader->ssi_list; if(NULL!=genreader->handler->file) { /*TYPE_CHAR or TYPE_UCHAR is a string of LG_MAX_STRING_MACSIM length */ if( (TSP_TYPE_CHAR==ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].type) || (TSP_TYPE_UCHAR==ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].type) ) { item->size=ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].dimension; /*calculate the real dimension for the string symbol*/ dimension=ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].dimension/LG_MAX_STRING_MACSIM; } else { item->size=ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].dimension; dimension=ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].dimension; } item->size*=tsp_type_size[ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].type]; while( continuer && (indice_data<dimension)) { memset(data_var,'\0',LG_MAX_STRING_MACSIM); /*read one data of the file*/ rep=read_data_file(genreader->handler->file,data_var); if(EOF!=rep) { /*end of line*/ if(END_SAMPLE_SET==rep) { continuer=0; } /*load retrieve data in the raw value*/ switch(ssi_list.TSP_sample_symbol_info_list_t_val[item->provider_global_index].type) { case TSP_TYPE_DOUBLE : load_double(data_var,item->raw_value,indice_data); break; case TSP_TYPE_FLOAT : load_float(data_var,item->raw_value,indice_data); break; case TSP_TYPE_INT8 : load_int8(data_var,item->raw_value,indice_data); break; case TSP_TYPE_INT16: load_int16(data_var,item->raw_value,indice_data); break; case TSP_TYPE_INT32 : load_int32(data_var,item->raw_value,indice_data); break; case TSP_TYPE_INT64 : load_int64(data_var,item->raw_value,indice_data); break; case TSP_TYPE_UINT8: load_uint8(data_var,item->raw_value,indice_data); break; case TSP_TYPE_UINT16: load_uint16(data_var,item->raw_value,indice_data); break; case TSP_TYPE_UINT32: load_uint32(data_var,item->raw_value,indice_data); break; case TSP_TYPE_UINT64: load_uint64(data_var,item->raw_value,indice_data); break; case TSP_TYPE_CHAR: load_char(data_var,item->raw_value,indice_data); break; case TSP_TYPE_UCHAR: load_uchar(data_var,item->raw_value,indice_data); break; case TSP_TYPE_RAW: load_type_raw(data_var,item->raw_value,indice_data); break; default: break; } ++indice_data; } else { continuer=0; } } } return(rep); }