INGOR
Loading...
Searching...
No Matches
ytArray.h
1;;/*
2 ytArray.{h,c} : Expanable ytObject * 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__ARRAY_H
10#define __YTLIB__ARRAY_H
11
12#include <stdio.h>
13#include <stdlib.h>
14
15#include "lang/ytObject.h"
16
17#define ytArray_ERROR_VALUE ((size_t) -1)
18
23/*typedef struct ytArray_t ytArray;*/
24#ifndef DOXY
25typedef struct ytArray_t {
26 ytObject obj;
27 ytObject * * ptr;
28 size_t size;
29 size_t buff_size;
30} ytArray;
31#endif
32
33#ifdef YTLIB_MEMCHECK
34#define ytArray_new() ytArray_newm(__FILE__,__LINE__)
35ytArray * ytArray_newm(const char * file, int line);
36#else
37ytArray * ytArray_new();
38#endif
39void ytArray_delete(ytArray * this);
40void ytArray_deletev(void * this);
41void ytArray_deleteAll(ytArray * this);
42void ytArray_deleteAllv(void * this);
43ytArray * ytArray_clone(const ytArray * this);
44ytObject * ytArray_cloneI(const ytObject * this);
45ytArray * ytArray_arrayNew(size_t size);
46void ytArray_arrayDelete(ytArray * this, size_t size);
47void ytArray_dump(const ytArray * this, FILE * fp);
48void ytArray_dumpv(const ytObject * this, FILE * fp);
49size_t ytArray_size(const ytArray * this);
50size_t ytArray_buffSize(const ytArray * this);
51size_t ytArray_memSize(const ytArray * this);
52size_t ytArray_arrayMemSize(const ytArray * this, size_t n);
53void ytArray_clear(ytArray * this);
54ytArray * ytArray_setBuffSize(ytArray * this, size_t new_size);
55void ytArray_add(ytArray * this, ytObject * value);
56void ytArray_addArray(ytArray * this, const ytArray * values);
57void ytArray_set(ytArray * this, size_t index, ytObject * value);
58void ytArray_setSize(ytArray * this, size_t size);
59void ytArray_insert(ytArray * this, size_t index, ytObject * value);
60ytObject * ytArray_remove(ytArray * this, size_t index);
61void ytArray_copy(ytArray * this, const ytArray * src);
62void ytArray_copyArray(ytArray * this, size_t index, const ytObject * * array, size_t size);
63ytObject * ytArray_get(const ytArray * this, size_t index);
64ytObject * ytArray_pop(ytArray * this);
65ytObject * * ytArray_ptr(ytArray * this);
66void ytArray_sort(ytArray * this);
67size_t ytArray_find(const ytArray * this, const ytObject * v);
68void ytArray_print(const ytArray * this, FILE * fp, char * delim);
69int ytArray_sprint(const ytArray * this, char * buff, size_t size, char * delim);
70ytObject * ytArray_obj(ytArray * this);
71ytObject * ytArray_pObj(ytArray ** ptr);
72ytArray * ytArray_from(ytObject * this);
73ytArray ** ytArray_objP(ytObject * this);
74size_t ytArray_memorySize(const ytArray * this);
75size_t ytArray_memorySizeI(const ytObject * this);
76ytByte * ytArray_serializeI(const ytObject * obj, ytByte ** pptr);
77ytByte * ytArray_serialize(const ytArray * this, ytByte ** pptr);
78ytArray * ytArray_deserialize(ytByte ** const pptr);
79ytObject * ytArray_deserializeI(ytByte ** const ptr);
80#ifdef USE_MPI
81#include <mpi.h>
82void ytArray_MPI_Bcast(ytArray ** pObj, int root, MPI_Comm comm);
83void ytArray_MPI_BcastI(ytObject ** pObject, int root, MPI_Comm comm);
84#endif
85
86#endif /* __YTLIB__ARRAY_H */
Expandable array.
The basis class.