36#ifndef __YTLIB_INT_ARRAY_H
37#define __YTLIB_INT_ARRAY_H
42#include "lang/ytObject.h"
44#define ytIntArray_ERROR_VALUE ((size_t) -1)
52typedef struct ytIntArray_t {
61#define ytIntArray_new() ytIntArray_newm(__FILE__,__LINE__)
62ytIntArray * ytIntArray_newm(
const char * file,
int line);
67void ytIntArray_deletev(
void *
this);
69void ytIntArray_deleteAllv(
void *
this);
73void ytIntArray_arrayDelete(
ytIntArray *
this,
size_t size);
74void ytIntArray_dump(
const ytIntArray *
this, FILE * fp);
75void ytIntArray_dumpv(
const ytObject *
this, FILE * fp);
76size_t ytIntArray_size(
const ytIntArray *
this);
77size_t ytIntArray_buffSize(
const ytIntArray *
this);
78size_t ytIntArray_memSize(
const ytIntArray *
this);
79size_t ytIntArray_arrayMemSize(
const ytIntArray *
this,
size_t n);
82void ytIntArray_add(
ytIntArray *
this,
int value);
84void ytIntArray_set(
ytIntArray *
this,
size_t index,
int value);
85void ytIntArray_setSize(
ytIntArray *
this,
size_t size);
86void ytIntArray_insert(
ytIntArray *
this,
size_t index,
int value);
87int ytIntArray_remove(
ytIntArray *
this,
size_t index);
89void ytIntArray_copyArray(
ytIntArray *
this,
size_t index,
const int * array,
size_t size);
90int ytIntArray_get(
const ytIntArray *
this,
size_t index);
94size_t ytIntArray_find(
const ytIntArray *
this,
const int v);
95void ytIntArray_print(
const ytIntArray *
this, FILE * fp,
char * delim);
96int ytIntArray_sprint(
const ytIntArray *
this,
char * buff,
size_t size,
char * delim);
101size_t ytIntArray_memorySize(
const ytIntArray *
this);
102size_t ytIntArray_memorySizeI(
const ytObject *
this);
103ytByte * ytIntArray_serializeI(
const ytObject * obj, ytByte ** pptr);
104ytByte * ytIntArray_serialize(
const ytIntArray *
this, ytByte ** pptr);
105ytIntArray * ytIntArray_deserialize(ytByte **
const pptr);
106ytObject * ytIntArray_deserializeI(ytByte **
const ptr);
109void ytIntArray_MPI_Bcast(
ytIntArray ** pObj,
int root, MPI_Comm comm);
110void ytIntArray_MPI_BcastI(
ytObject ** pObject,
int root, MPI_Comm comm);