Objectively
Ultra-lightweight object oriented framework for GNU C.
Loading...
Searching...
No Matches
Array.h File Reference

Arrays. More...

#include <stdarg.h>
#include <Objectively/Object.h>

Go to the source code of this file.

Data Structures

struct  Array
 Arrays. More...
 

Typedefs

typedef void(* ArrayEnumerator) (const Array *array, ident obj, ident data)
 A function pointer for Array enumeration (iteration).
 

Functions

OBJECTIVELY_EXPORT Class_Array (void)
 
OBJECTIVELY_EXPORT void quicksort (ident base, size_t count, size_t size, Comparator comparator, ident data)
 A portability wrapper around reentrant qsort.
 

Detailed Description

Arrays.

Definition in file Array.h.

Typedef Documentation

◆ ArrayEnumerator

typedef void(* ArrayEnumerator) (const Array *array, ident obj, ident data)

A function pointer for Array enumeration (iteration).

Parameters
arrayThe Array.
objThe Object for the current iteration.
dataUser data.

Definition at line 49 of file Array.h.

Function Documentation

◆ _Array()

OBJECTIVELY_EXPORT Class * _Array ( void  )

Definition at line 760 of file Array.c.

760 {
761 static Class *clazz;
762 static Once once;
763
764 do_once(&once, {
765 clazz = _initialize(&(const ClassDef) {
766 .name = "Array",
767 .superclass = _Object(),
768 .instanceSize = sizeof(Array),
769 .interfaceOffset = offsetof(Array, interface),
770 .interfaceSize = sizeof(ArrayInterface),
772 });
773 });
774
775 return clazz;
776}
static void initialize(Class *clazz)
Definition Array.c:710
Class * _initialize(const ClassDef *def)
Initializes the given Class.
Definition Class.c:86
Class * _Object(void)
Definition Object.c:136
long Once
The Once type.
Definition Once.h:37
#define do_once(once, block)
Executes the given block at most one time.
Definition Once.h:43
Arrays.
Definition Array.h:56
ClassDefs are passed to _initialize via an archetype to initialize a Class.
Definition Class.h:41
The runtime representation of a Class.
Definition Class.h:95

◆ quicksort()

OBJECTIVELY_EXPORT void quicksort ( ident  base,
size_t  count,
size_t  size,
Comparator  comparator,
ident  data 
)

A portability wrapper around reentrant qsort.

Parameters
baseThe base of the array to sort.
countThe count of elements in the array
sizeThe size of each element in the array.
comparatorThe Comparator to sort with.
dataUser data.

Definition at line 69 of file Array.c.

69 {
70 qsort_r(base, count, size, _quicksort, comparator);
71}
static int _quicksort(const void *a, const void *b, void *data)
GNU qsort_r.
Definition Array.c:65