home | help
SOLDOUT_ARRAY(3)	     Library Functions Manual		SOLDOUT_ARRAY(3)

NAME
     soldout_array,   arr_adjust,   arr_free,  arr_grow,  arr_init,  arr_insert,
     arr_item,	arr_newitem,  arr_remove,  arr_sorted_find,   arr_sorted_find_i,
     parr_adjust,   parr_free,	 parr_grow,  parr_init,  parr_insert,  parr_pop,
     parr_push, parr_remove, parr_sorted_find, parr_sorted_find_i,  parr_top  --
     array handling functions for soldout

SYNOPSIS
     #include <array.h>

     int
     (*array_cmp_fn)(void *key, void *array_entry);

     int
     arr_adjust(struct array *arr);

     void
     arr_free(struct array *arr);

     int
     arr_grow(struct array *arr, int need);

     void
     arr_init(struct array *arr, size_t unit);

     int
     arr_insert(struct array *arr, int nb, int n);

     void *
     arr_item(struct array *arr, int no);

     int
     arr_newitem(struct array *arr);

     void
     arr_remove(struct array *arr, int idx);

     void *
     arr_sorted_find(struct array *arr, void *key, array_cmp_fn cmp);

     int
     arr_sorted_find_i(struct array *arr, void *key, array_cmp_fn cmp);

     int
     parr_adjust(struct parray *arr);

     void
     parr_free(struct parray *arr);

     int
     parr_grow(struct parray *arr, int need);

     void
     parr_init(struct parray *arr);

     int
     parr_insert(struct parray *parr, int nb, int n);

     void *
     parr_pop(struct parray *arr);

     int
     parr_push(struct parray *arr, void *i);

     void *
     parr_remove(struct parray *arr, int idx);

     void *
     parr_sorted_find(struct parray *arr, void *key, array_cmp_fn cmp);

     int
     parr_sorted_find_i(struct parray *arr, void *key, array_cmp_fn cmp);

     void *
     parr_top(struct parray *arr);

DESCRIPTION
   Types
     struct array
     generic linear array.  Consists of the following fields:

     void * base
	     actual array data.

     int size
	     size of the array.

     int asize
	     allocated size.

     size_t unit
	     reallocation unit size.

     struct parray
     array of pointers.  Consists of the following fields:

     void ** item
	     actual parray data.

     int size
	     size of the parray.

     int asize
	     allocated size.

     array_cmp_fn
     comparison function for sorted arrays.

   Functions
     arr_adjust()
     shrink the allocated memory to fit exactly the needs.

     arr_free()
     free the structure contents (but NOT the struct itself).

     arr_grow()
     increase the array size to fit the given number of elements.

     arr_init()
     initialize the contents of the struct.

     arr_insert()
     insert nb elements before the n one.

     arr_item()
     return a pointer to the n element.

     arr_newitem()
     return the index of a new element appended to the array arr.

     arr_remove()
     remove the n-th elements of the array.

     arr_sorted_find()
     O(log n) search in a sorted array, returning entry.

     arr_sorted_find_i()
     O(log  n) search in a sorted array, returning index of the smallest element
     larger than the key.

     parr_adjust()
     shrink the allocated memory to fit exactly the needs.

     parr_free()
     free the structure contents (but NOT the struct itself).

     parr_grow()
     increase the array size to fit the given number of elements.

     parr_init()
     initialize the contents of the struct.

     parr_insert()
     insert nb elements before the n one.

     parr_pop()
     pop the last item of the array and return it.

     parr_push()
     push a pointer at the end of the array (= append).

     parr_remove()
     remove the idx element of the array and return it.

     parr_sorted_find()
     O(log n) search in a sorted array, returning entry.

     parr_sorted_find_i()
     O(log n) search in a sorted array, returning index of the smallest  element
     larger than the key.

     parr_top()
     return the top the stack (i.e. the last element of the array).

RETURN VALUES
     The  arr_adjust(),  arr_grow(),  arr_insert(),  parr_adjust(), parr_grow(),
     parr_insert() and parr_push() functions return on success 1; on error - 0.

     The arr_free(), arr_init(), arr_remove(), parr_free() and parr_init() func-
     tions do not return a value.

     The    arr_item(),    arr_sorted_find(),	  parr_pop(),	  parr_remove(),
     parr_sorted_find() and parr_top() functions return a pointer to the element
     on success; on error - NULL.

     The arr_newitem() function returns the index on success; on error -1.

     The arr_sorted_find_i() and parr_sorted_find_i() functions return an index.

SEE ALSO
     soldout(3)

AUTHORS
     The soldout library was written by Natasha "Kerensikova" Porte <natacha@in-
     stinctive.eu>.   Manual  page was originally written by Massimo Manghi <mx-
     manghi@apache.org>, and rewritten	to  mdoc  format  by  Svyatoslav  Mishyn
     <juef@openmailbox.org>.

FreeBSD ports 15.quarterly	 April 13, 2016 		SOLDOUT_ARRAY(3)

home | help