INGOR
Loading...
Searching...
No Matches
ytIntArray.h
1/*
2 ytIntArray.{h,c} : Expanable int Array
3 Copyright (C) 2016, Yoshinori Tamada <tamada A T ytlab.jp>
4 All rights reserved.
5
6 See LICENSE.txt for details of the licensing agreement.
7*/
8
9#ifndef __YTLIB_INT_ARRAY_H
10#define __YTLIB_INT_ARRAY_H
11
12#include <stdio.h>
13#include <stdlib.h>
14
15#include "lang/ytObject.h"
16
17#define ytIntArray_ERROR_VALUE ((size_t) -1)
18
23/*typedef struct ytIntArray_t ytIntArray;*/
24#ifndef DOXY
25typedef struct ytIntArray_t {
26 ytObject obj;
27 int * ptr;
28 size_t size;
29 size_t buff_size;
31#endif
32
33#ifdef YTLIB_MEMCHECK
34#define ytIntArray_new() ytIntArray_newm(__FILE__,__LINE__)
35ytIntArray * ytIntArray_newm(const char * file, int line);
36#else
37ytIntArray * ytIntArray_new();
38#endif
39void ytIntArray_delete(ytIntArray * this);
40void ytIntArray_deletev(void * this);
41void ytIntArray_deleteAll(ytIntArray * this);
42void ytIntArray_deleteAllv(void * this);
43ytIntArray * ytIntArray_clone(const ytIntArray * this);
44ytObject * ytIntArray_cloneI(const ytObject * this);
45ytIntArray * ytIntArray_arrayNew(size_t size);
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);
53void ytIntArray_clear(ytIntArray * this);
54ytIntArray * ytIntArray_setBuffSize(ytIntArray * this, size_t new_size);
55void ytIntArray_add(ytIntArray * this, int value);
56void ytIntArray_addIntArray(ytIntArray * this, const ytIntArray * values);
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);
61void ytIntArray_copy(ytIntArray * this, const ytIntArray * src);
62void ytIntArray_copyArray(ytIntArray * this, size_t index, const int * array, size_t size);
63int ytIntArray_get(const ytIntArray * this, size_t index);
64int ytIntArray_pop(ytIntArray * this);
65int * ytIntArray_ptr(ytIntArray * this);
66void ytIntArray_sort(ytIntArray * this);
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);
70ytObject * ytIntArray_obj(ytIntArray * this);
71ytObject * ytIntArray_pObj(ytIntArray ** ptr);
72ytIntArray * ytIntArray_from(ytObject * this);
73ytIntArray ** ytIntArray_objP(ytObject * this);
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);
80#ifdef USE_MPI
81#include <mpi.h>
82void ytIntArray_MPI_Bcast(ytIntArray ** pObj, int root, MPI_Comm comm);
83void ytIntArray_MPI_BcastI(ytObject ** pObject, int root, MPI_Comm comm);
84#endif
85
86#endif /* __YTLIB_INT_ARRAY_H */
Expandable array.
The basis class.