FMI Library: part of JModelica.org
Macros | Functions | Variables
jm_vector_template.h File Reference

Vector template definition. More...

#include <stdlib.h>
#include <string.h>
#include "jm_vector.h"

Go to the source code of this file.

Macros

#define jm_vector_ptr2index(T)   jm_mangle(jm_vector_ptr2index, T)
 

Functions

 jm_vector (JM_TEMPLATE_INSTANCE_TYPE)*jm_vector_alloc(JM_TEMPLATE_INSTANCE_TYPE)(size_t size
 
 if (c) cc
 
 if (reserve< size) reserve
 
 if (reserve > JM_VECTOR_MINIMAL_CAPACITY)
 
 if (!v) return 0
 
void jm_vector_free() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a)
 
size_t jm_vector_init() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, size_t initSize, jm_callbacks *c)
 
size_t jm_vector_resize() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, size_t size)
 
size_t jm_vector_copy() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*destination, jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*source)
 
JM_TEMPLATE_INSTANCE_TYPE *jm_vector_insert() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, size_t index, JM_TEMPLATE_INSTANCE_TYPE item)
 
JM_TEMPLATE_INSTANCE_TYPE *jm_vector_push_back() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, JM_TEMPLATE_INSTANCE_TYPE item)
 
void jm_vector_foreach_c() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, void(*f)(JM_TEMPLATE_INSTANCE_TYPE, void *), void *data)
 
void jm_vector_foreach() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*a, void(*f)(JM_TEMPLATE_INSTANCE_TYPE))
 
void jm_vector_qsort() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*v, jm_compare_ft f)
 
static size_t jm_vector_ptr2index() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*v, JM_TEMPLATE_INSTANCE_TYPE *itemp)
 
size_t jm_vector_bsearch_index() JM_TEMPLATE_INSTANCE_TYPE (jm_vector(JM_TEMPLATE_INSTANCE_TYPE)*v, JM_TEMPLATE_INSTANCE_TYPE *key, jm_compare_ft f)
 

Variables

size_t capacity = JM_VECTOR_MINIMAL_CAPACITY
 
size_t jm_callbacksc
 
jm_callbackscc = jm_get_default_callbacks()
 
 reserve = capacity
 
 else
 
v callbacks = cc
 
v items = &(v->preallocated[0])
 
v size = size
 
return v
 

Detailed Description

Vector template definition.

This file is supposed to be included into a C-file that instantiate the template. jm_vector.h must be included before this file. It expects JM_TEMPLATE_INSTANCE_TYPE to be defined to the template type to be instantiated.

Definition in file jm_vector_template.h.