aboutsummaryrefslogtreecommitdiff
path: root/src/backend/tioga/Arr_TgRecipe.h
blob: 71e1203ad4f3ea3c4b4ce27b96a8cde321f58c98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "tioga/Varray.h"

/* Modify the following size macros to suit your need. */

#ifndef Arr_TgString_INITIAL_SIZE
#define Arr_TgString_INITIAL_SIZE 32
#endif

#ifndef Arr_TgElementPtr_INITIAL_SIZE
#define Arr_TgElementPtr_INITIAL_SIZE 32
#endif

#ifndef Arr_TgNodePtr_INITIAL_SIZE
#define Arr_TgNodePtr_INITIAL_SIZE 32
#endif
/***************************************************************/
/*			  Do not modify anything below this line.		   */
/***************************************************************/

/* -- Defining types and function for Arr_TgString type -- */
/* -- the following must be supplied by the user:

   void copyTgString(TgString* from, TgString* to); - make a copy of TgString.
*/

#ifndef _ARR_TgString_
#define _ARR_TgString_

#ifndef ARR_TgString_INITIAL_SIZE
#define ARR_TgString_INITIAL_SIZE 32	/* change this size to suit your
										 * need */
#endif   /* ARR_TgString_INITIAL_SIZE */

typedef struct Arr_TgString
{
	size_t		num;
	size_t		size;
	size_t		valSize;
	TgString   *val;
}	Arr_TgString;

#define newArr_TgString() \
  (Arr_TgString *) NewVarray(ARR_TgString_INITIAL_SIZE, sizeof(TgString))

#define enlargeArr_TgString(A, I) \
( \
  (A)->size += (I), \
  (A)->val = (TgString *) realloc((A)->val, (A)->valSize * (A)->size) \
)

#define addArr_TgString(A, V) \
  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgString)

#define deleteArr_TgString(A) FreeVarray(A)
#endif   /* _ARR_TgString_ */

/* -- Defining types and function for Arr_TgElementPtr type -- */
/* -- the following must be supplied by the user:

   void copyTgElementPtr(TgElementPtr* from, TgElementPtr* to); - make a copy of TgElementPtr.
*/

#ifndef _ARR_TgElementPtr_
#define _ARR_TgElementPtr_

#ifndef ARR_TgElementPtr_INITIAL_SIZE
#define ARR_TgElementPtr_INITIAL_SIZE 32		/* change this size to
												 * suit your need */
#endif   /* ARR_TgElementPtr_INITIAL_SIZE */

typedef struct Arr_TgElementPtr
{
	size_t		num;
	size_t		size;
	size_t		valSize;
	TgElementPtr *val;
}	Arr_TgElementPtr;

#define newArr_TgElementPtr() \
  (Arr_TgElementPtr *) NewVarray(ARR_TgElementPtr_INITIAL_SIZE, sizeof(TgElementPtr))

#define enlargeArr_TgElementPtr(A, I) \
( \
  (A)->size += (I), \
  (A)->val = (TgElementPtr *) realloc((A)->val, (A)->valSize * (A)->size) \
)

#define addArr_TgElementPtr(A, V) \
  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgElementPtr)

#define deleteArr_TgElementPtr(A) FreeVarray(A)
#endif   /* _ARR_TgElementPtr_ */

/* -- Defining types and function for Arr_TgNodePtr type -- */
/* -- the following must be supplied by the user:

   void copyTgNodePtr(TgNodePtr* from, TgNodePtr* to); - make a copy of TgNodePtr.
*/

#ifndef _ARR_TgNodePtr_
#define _ARR_TgNodePtr_

#ifndef ARR_TgNodePtr_INITIAL_SIZE
#define ARR_TgNodePtr_INITIAL_SIZE 32	/* change this size to suit your
										 * need */
#endif   /* ARR_TgNodePtr_INITIAL_SIZE */

typedef struct Arr_TgNodePtr
{
	size_t		num;
	size_t		size;
	size_t		valSize;
	TgNodePtr  *val;
}	Arr_TgNodePtr;

#define newArr_TgNodePtr() \
  (Arr_TgNodePtr *) NewVarray(ARR_TgNodePtr_INITIAL_SIZE, sizeof(TgNodePtr))

#define enlargeArr_TgNodePtr(A, I) \
( \
  (A)->size += (I), \
  (A)->val = (TgNodePtr *) realloc((A)->val, (A)->valSize * (A)->size) \
)

#define addArr_TgNodePtr(A, V) \
  AppendVarray((Varray *) (A), (void *) (V), (CopyingFunct) copyTgNodePtr)

#define deleteArr_TgNodePtr(A) FreeVarray(A)

#endif   /* _ARR_TgNodePtr_ */