NuSMV/code/nusmv/core/utils/array.h File Reference

Go to the source code of this file.

Data Structures

struct  array_t

Defines

#define array_alloc(type, number)   array_do_alloc(sizeof(type), number)
#define array_data(type, array)   (type *) array_do_data(array)
#define array_fetch(type, a, i)
#define array_fetch_last(type, array)   array_fetch(type, array, ((array)->num)-1)
#define array_fetch_last_p(type, array)   array_fetch_p(type, array, ((array)->num)-1)
#define array_fetch_p(type, a, i)
#define array_insert(type, a, i, datum)
 Documentation needed!
#define array_insert_last(type, array, datum)   array_insert(type, array, (array)->num, datum)
#define array_n(array)   (array)->num
#define ARRAY_OUT_OF_MEM   -10000
 The header of the generic array manipulator.
#define arrayForEachItem(type,array, i,data)
#define arrayForEachItemP(type,array, i,pdata)

Functions

int array_abort (const array_t *, int)
int array_append (array_t *, array_t *)
array_tarray_do_alloc (int, int)
char * array_do_data (array_t *)
array_tarray_dup (array_t *)
void array_free (array_t *)
array_tarray_join (array_t *, array_t *)
int array_resize (array_t *, int)
void array_sort (array_t *, int(*)(const void *, const void *))
 Sorts the array content according to the given comparison function.
void array_uniq (array_t *array, int(*compare)(char **, char **), void(*free_func)(char *))

Define Documentation

#define array_alloc ( type,
number   )     array_do_alloc(sizeof(type), number)
Todo:
Missing synopsis
Todo:
Missing description
#define array_data ( type,
array   )     (type *) array_do_data(array)
Todo:
Missing synopsis
Todo:
Missing description
#define array_fetch ( type,
a,
 ) 
Value:
(((array_t*)a)->e_index = (i),                                    \
    nusmv_assert((a)->num >= 0),                                    \
   (((a)->e_index) >= (a)->num) ? array_abort((a),1) : 0,            \
   *((type *) ((a)->space + (a)->e_index * (a)->obj_size)))
Todo:
Missing synopsis
Todo:
Missing description
#define array_fetch_last ( type,
array   )     array_fetch(type, array, ((array)->num)-1)
Todo:
Missing synopsis
Todo:
Missing description
#define array_fetch_last_p ( type,
array   )     array_fetch_p(type, array, ((array)->num)-1)
Todo:
Missing synopsis
Todo:
Missing description
#define array_fetch_p ( type,
a,
 ) 
Value:
(((array_t*)a)->e_index = (i),                                              \
   ((a)->e_index >= (a)->num) ? array_abort((a),1) : 0,             \
   ((type *) ((a)->space + (a)->e_index * (a)->obj_size)))
Todo:
Missing synopsis
Todo:
Missing description
#define array_insert ( type,
a,
i,
datum   ) 
Value:
(  -(a)->index != sizeof(type) ? array_abort((a),4) : 0,              \
     (a)->index = (i),                                                  \
     (a)->index < 0 ? array_abort((a),0) : 0,                           \
     (a)->index >= (a)->n_size ?                                        \
     ((array_t*)a)->e_insert = array_resize(a, (a)->index + 1) : 0, \
     (a)->e_insert != ARRAY_OUT_OF_MEM ?                            \
     *((type *) ((a)->space + (a)->index * (a)->obj_size)) = datum : datum, \
     (a)->e_insert != ARRAY_OUT_OF_MEM ?                            \
     ((a)->index >= (a)->num ? (a)->num = (a)->index + 1 : 0) : 0,      \
     (a)->e_insert != ARRAY_OUT_OF_MEM ?                            \
     ((a)->index = -(int)sizeof(type)) : ARRAY_OUT_OF_MEM )

Documentation needed!

#define array_insert_last ( type,
array,
datum   )     array_insert(type, array, (array)->num, datum)
Todo:
Missing synopsis
Todo:
Missing description
#define array_n ( array   )     (array)->num
Todo:
Missing synopsis
Todo:
Missing description
#define ARRAY_OUT_OF_MEM   -10000

The header of the generic array manipulator.

Author:
Originated from glu library of VIS
Todo:
: Missing description
Todo:
Missing synopsis
Todo:
Missing description
Todo:
Missing synopsis
Todo:
Missing description
#define arrayForEachItem ( type,
array,
i,
data   ) 
Value:
for((i) = 0;                                                 \
      (((i) < array_n((array)))                                \
       && (((data) = array_fetch(type, (array), (i))), 1));    \
      (i)++)
Todo:
Missing synopsis
Todo:
Missing description
#define arrayForEachItemP ( type,
array,
i,
pdata   ) 
Value:
for((i) = 0;                                                 \
      (((i) < array_n((array)))                                \
       && (((pdata) = array_fetch_p(type, (array), (i))), 1));  \
      (i)++)
Todo:
Missing synopsis
Todo:
Missing description

Function Documentation

int array_abort ( const array_t ,
int   
)
int array_append ( array_t ,
array_t  
)
Todo:
Missing synopsis
Todo:
Missing description
array_t* array_do_alloc ( int  ,
int   
)
Todo:
Missing synopsis
Todo:
Missing description
char* array_do_data ( array_t  ) 
Todo:
Missing synopsis
Todo:
Missing description
array_t* array_dup ( array_t  ) 
Todo:
Missing synopsis
Todo:
Missing description
void array_free ( array_t  ) 
Todo:
Missing synopsis
Todo:
Missing description
array_t* array_join ( array_t ,
array_t  
)
Todo:
Missing synopsis
Todo:
Missing description
int array_resize ( array_t ,
int   
)
Todo:
Missing synopsis
Todo:
Missing description
void array_sort ( array_t ,
int(*)(const void *, const void *)   
)

Sorts the array content according to the given comparison function.

IMPORTANT! compare has argument int (void* pa, void* pb) pa and pb must be dereferenced to access the corresponding values into the array

void array_uniq ( array_t array,
int(*)(char **, char **)  compare,
void(*)(char *)  free_func 
)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 14 Oct 2015 for NuSMV Developers Manual by  doxygen 1.6.1