9#ifndef __YTLIB_INT_ARRAY_H
10#define __YTLIB_INT_ARRAY_H
15#include "lang/ytObject.h"
17#define ytIntArray_ERROR_VALUE ((size_t) -1)
25typedef struct ytIntArray_t {
34#define ytIntArray_new() ytIntArray_newm(__FILE__,__LINE__)
35ytIntArray * ytIntArray_newm(
const char * file,
int line);
40void ytIntArray_deletev(
void *
this);
42void ytIntArray_deleteAllv(
void *
this);
46void ytIntArray_arrayDelete(
ytIntArray *
this,
size_t size);
47void ytIntArray_dump(
const ytIntArray *
this, FILE * fp);
48void ytIntArray_dumpv(
const ytObject *
this, FILE * fp);
49size_t ytIntArray_size(
const ytIntArray *
this);
50size_t ytIntArray_buffSize(
const ytIntArray *
this);
51size_t ytIntArray_memSize(
const ytIntArray *
this);
52size_t ytIntArray_arrayMemSize(
const ytIntArray *
this,
size_t n);
55void ytIntArray_add(
ytIntArray *
this,
int value);
57void ytIntArray_set(
ytIntArray *
this,
size_t index,
int value);
58void ytIntArray_setSize(
ytIntArray *
this,
size_t size);
59void ytIntArray_insert(
ytIntArray *
this,
size_t index,
int value);
60int ytIntArray_remove(
ytIntArray *
this,
size_t index);
62void ytIntArray_copyArray(
ytIntArray *
this,
size_t index,
const int * array,
size_t size);
63int ytIntArray_get(
const ytIntArray *
this,
size_t index);
67size_t ytIntArray_find(
const ytIntArray *
this,
const int v);
68void ytIntArray_print(
const ytIntArray *
this, FILE * fp,
char * delim);
69int ytIntArray_sprint(
const ytIntArray *
this,
char * buff,
size_t size,
char * delim);
74size_t ytIntArray_memorySize(
const ytIntArray *
this);
75size_t ytIntArray_memorySizeI(
const ytObject *
this);
76ytByte * ytIntArray_serializeI(
const ytObject * obj, ytByte ** pptr);
77ytByte * ytIntArray_serialize(
const ytIntArray *
this, ytByte ** pptr);
78ytIntArray * ytIntArray_deserialize(ytByte **
const pptr);
79ytObject * ytIntArray_deserializeI(ytByte **
const ptr);
82void ytIntArray_MPI_Bcast(
ytIntArray ** pObj,
int root, MPI_Comm comm);
83void ytIntArray_MPI_BcastI(
ytObject ** pObject,
int root, MPI_Comm comm);