Michaël Lemaire
82d291d903
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@551 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
41 lines
959 B
C
41 lines
959 B
C
#ifndef _PAYSAGES_TOOLS_ARRAY_H_
|
|
#define _PAYSAGES_TOOLS_ARRAY_H_
|
|
|
|
#include "../shared/types.h"
|
|
#include <stdlib.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**************** Naive methods (basic C arrays) ****************/
|
|
|
|
/*
|
|
* Insert an item at a given position, rallocating the array, moving data and returning a pointer to the inserted element.
|
|
*/
|
|
void* naiveArrayInsert(void** array, size_t item_size, int item_count, int location);
|
|
|
|
/**************** Array object ****************/
|
|
|
|
typedef struct
|
|
{
|
|
int length;
|
|
int alloc_length;
|
|
int item_size;
|
|
int dirty;
|
|
void* data;
|
|
} Array;
|
|
|
|
void arrayCreate(Array* array, int item_size);
|
|
void arrayDelete(Array* array);
|
|
void* arrayAppend(Array* array, void* item);
|
|
void arrayInsert(Array* array, void* item, int position);
|
|
void arrayReplace(Array* array, void* item, int position);
|
|
void arrayLStrip(Array* array, int count);
|
|
void arrayClear(Array* array);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|