Mercurial > dovecot > core-2.2
annotate src/lib/array-decl.h @ 9002:9d0037a997f4 HEAD
Initial commit for config rewrite.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 27 Jan 2009 18:21:53 -0500 |
parents | e4eb71ae8e96 |
children | 13bbdd7b15b8 |
rev | line source |
---|---|
6410
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
6316
diff
changeset
|
1 #ifndef ARRAY_DECL_H |
e4eb71ae8e96
Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents:
6316
diff
changeset
|
2 #define ARRAY_DECL_H |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 |
4601
664011f3b1fb
Some more array changes. v and v_modifiable are now pointer-to-pointers so
Timo Sirainen <tss@iki.fi>
parents:
4451
diff
changeset
|
4 #define ARRAY_DEFINE(name, array_type) union { struct array arr; array_type const *const *v; array_type **v_modifiable; } name |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
5 #define ARRAY_INIT { { 0, 0 } } |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
7 #define ARRAY_DEFINE_TYPE(name, array_type) \ |
4601
664011f3b1fb
Some more array changes. v and v_modifiable are now pointer-to-pointers so
Timo Sirainen <tss@iki.fi>
parents:
4451
diff
changeset
|
8 union array ## __ ## name { struct array arr; array_type const *const *v; array_type **v_modifiable; } |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
9 #define ARRAY_TYPE(name) \ |
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
10 union array ## __ ## name |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 struct array { |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 buffer_t *buffer; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 size_t element_size; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 }; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 |
6316
fcd14b4cf941
Added string (char *) array type.
Timo Sirainen <tss@iki.fi>
parents:
5733
diff
changeset
|
17 ARRAY_DEFINE_TYPE(string, char *); |
4944
51e2a2adc141
Defined a universal const_string array type.
Timo Sirainen <tss@iki.fi>
parents:
4601
diff
changeset
|
18 ARRAY_DEFINE_TYPE(const_string, const char *); |
5733
4b5ce642957d
Declare a global uint32_t array type.
Timo Sirainen <tss@iki.fi>
parents:
4944
diff
changeset
|
19 ARRAY_DEFINE_TYPE(uint32_t, uint32_t); |
9002
9d0037a997f4
Initial commit for config rewrite.
Timo Sirainen <tss@iki.fi>
parents:
6410
diff
changeset
|
20 ARRAY_DEFINE_TYPE(void_array, void *); |
4944
51e2a2adc141
Defined a universal const_string array type.
Timo Sirainen <tss@iki.fi>
parents:
4601
diff
changeset
|
21 |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
22 #endif |