94 for (j = 0; j < level; j++)
98 fprintf(file,
"+-- osl_arrays_t\n");
100 fprintf(file,
"+-- NULL arrays\n");
102 if (arrays != NULL) {
104 for(j = 0; j <= level; j++)
105 fprintf(file,
"|\t");
108 fprintf(file,
"nb_names: %d\n", arrays->
nb_names);
111 for(i = 0; i < arrays->
nb_names; i++) {
113 for(j = 0; j <= level; j++)
114 fprintf(file,
"|\t");
116 fprintf(file,
"id: %2d, name: %s\n", arrays->
id[i], arrays->
names[i]);
121 for (j = 0; j <= level; j++)
122 fprintf(file,
"|\t");
148 int high_water_mark = OSL_MAX_STRING;
149 char *
string = NULL;
150 char buffer[OSL_MAX_STRING];
152 if (arrays != NULL) {
153 OSL_malloc(
string,
char *, high_water_mark *
sizeof(
char));
156 sprintf(buffer,
"# Number of arrays\n");
159 sprintf(buffer,
"%d\n", arrays->
nb_names);
163 sprintf(buffer,
"# Mapping array-identifiers/array-names\n");
166 for (i = 0; i < arrays->
nb_names; i++) {
167 sprintf(buffer,
"%d %s\n", arrays->
id[i], arrays->
names[i]);
171 OSL_realloc(
string,
char *, (strlen(
string) + 1) *
sizeof(
char));
200 OSL_debug(
"no arrays optional tag");
209 OSL_malloc(arrays->
id,
int *, nb_names *
sizeof(
int));
210 OSL_malloc(arrays->
names,
char **, nb_names *
sizeof(
char *));
212 for (i = 0; i < nb_names; i++)
213 arrays->
names[i] = NULL;
216 for (k = 0; k < nb_names; k++) {
247 arrays->
names = NULL;
261 if (arrays != NULL) {
263 for (i = 0; i < arrays->
nb_names; i++)
264 free(arrays->
names[i]);
292 OSL_malloc(clone->
id,
int *, arrays->
nb_names *
sizeof(
int));
293 OSL_malloc(clone->
names,
char **, arrays->
nb_names *
sizeof(
char*));
295 for (i = 0; i < arrays->
nb_names; i++) {
296 clone->
id[i] = arrays->
id[i];
297 OSL_strdup(clone->
names[i], arrays->
names[i]);
320 if (((a1 == NULL) && (a2 != NULL)) || ((a1 != NULL) && (a2 == NULL))) {
321 OSL_info(
"arrays are not the same");
327 OSL_info(
"arrays are not the same");
333 for (i = 0; i < a1->
nb_names; i++) {
335 for (j = 0; j < a2->
nb_names; j++) {
336 if ((a1->
id[i] == a2->
id[j]) && (!strcmp(a1->
names[i], a2->
names[j]))) {
342 OSL_info(
"arrays are not the same");
369 max_id = arrays->
id[0];
370 for (i = 1; i < arrays->
nb_names; i++)
371 if (arrays->
id[i] > max_id)
372 max_id = arrays->
id[i];
377 for (i = 0; i < arrays->
nb_names; i++) {
378 free(strings->
string[arrays->
id[i] - 1]);
379 OSL_strdup(strings->
string[arrays->
id[i] - 1], arrays->
names[i]);
396 if (arrays == NULL || name == NULL)
399 OSL_realloc(arrays->
id,
int *, (arrays->
nb_names+1) *
sizeof(
int));
400 OSL_realloc(arrays->
names,
char **, (arrays->
nb_names+1) *
sizeof(
char *));
423 for (i=0; i<arrays->
nb_names; i++) {
424 if(arrays->
id[i]==
id)
442 if (arrays == NULL || name == NULL)
445 for (i=0; i<arrays->
nb_names; i++) {
446 if(!strcmp(arrays->
names[i], name))
462 OSL_strdup(interface->URI, OSL_URI_ARRAYS);
void osl_arrays_free(osl_arrays_p arrays)
osl_strings_p osl_arrays_to_strings(osl_arrays_p arrays)
void *(* osl_clone_f)(void *)
void osl_arrays_idump(FILE *file, osl_arrays_p arrays, int level)
void osl_arrays_dump(FILE *file, osl_arrays_p arrays)
char * osl_arrays_sprint(osl_arrays_p arrays)
osl_arrays_p osl_arrays_sread(char **input)
osl_interface_p osl_interface_malloc()
int osl_arrays_equal(osl_arrays_p a1, osl_arrays_p a2)
void *(* osl_sread_f)(char **)
osl_interface_p osl_arrays_interface()
size_t osl_arrays_get_index_from_name(osl_arrays_p arrays, char *name)
void osl_util_safe_strcat(char **dst, char *src, int *hwm)
size_t osl_arrays_get_index_from_id(osl_arrays_p arrays, int id)
void(* osl_idump_f)(FILE *, void *, int)
osl_arrays_p osl_arrays_malloc()
osl_arrays_p osl_arrays_clone(osl_arrays_p arrays)
int osl_util_read_int(FILE *file, char **str)
char *(* osl_sprint_f)(void *)
char * osl_util_read_string(FILE *file, char **str)
int(* osl_equal_f)(void *, void *)
osl_strings_p osl_strings_generate(char *prefix, int nb_strings)
int osl_arrays_add(osl_arrays_p arrays, int id, char *name)
void(* osl_free_f)(void *)