map_u.hd
1 #REM
2 #REM
3 #REM
4 #OUTPUT_PERHAPS(Global_map_u.ErwinHExt)
5 #DATE
6
7
8
9 #ifdef ERWIN_DEBUG_INCLUDE
10 #warning "Including Global_map_u.h"
11 #endif
12
13 #ifndef Global_ERWIN_MAP_U_ErwinHExt
14 #define Global_ERWIN_MAP_U_ErwinHExt
15
16 #ifdef ERWIN_DEBUG_INCLUDE
17 #warning "First inclusion of Global_map_u.h"
18 #endif
19
20
21
22 #endif
23 #REM
24 #OUTPUT_PERHAPS(Map_u.ErwinHExt)
25
26 #DATE
27
28
29 #ifdef ERWIN_DEBUG_INCLUDE
30 #warning "First inclusion of Map_u.ErwinHExt"
31 #endif
32
33 #ifndef ERWIN_Map_U_ErwinHExt
34 #define ERWIN_Map_U_ErwinHExt
35
36 #ifdef ERWIN_DEBUG_INCLUDE
37 #warning "First inclusion of Map_u.ErwinHExt"
38 #endif
39
40 #include "#Global_map_u.ErwinHExt"
41
42
43
44 #endif
45 #REM
46 #OUTPUT(Map_d.ErwinHExt)
47
48 #DATE
49
50 #ifdef ERWIN_DEBUG_INCLUDE
51 #warning "Including Map_d.h"
52 #endif
53
54 #ifndef ERWIN_Map_D_ErwinHExt
55 #define ERWIN_Map_D_ErwinHExt
56
57 #ifdef ERWIN_DEBUG_INCLUDE
58 #warning "First inclusion of Map_d.ErwinHExt"
59 #endif
60
61 #include "#Global_map_u.ErwinHExt"
62 #include "#Map_u.ErwinHExt"
63
64 ErwinUserInclude
65
66
67 #IF(oType == void)
68 # define Map_INDEX_IS_VOID 1
69 #ELSE
70 # define Map_INDEX_IS_VOID 0
71 #ENDIF
72 #IF(oType == int)
73 # define Map_INDEX_IS_INT 1
74 #ELSE
75 # define Map_INDEX_IS_INT 0
76 #ENDIF
77 #IF(isChar == 1)
78 # define Map_INDEX_IS_CHAR 1
79 #ELSE
80 # define Map_INDEX_IS_CHAR 0
81 #ENDIF
82
83
84 #if Map_INDEX_IS_VOID
85 # undef Map_CONSTANT_ZERO
86 # define Map_CONSTANT_ZERO 1
87 # undef Map_DYN_ZERO
88 #elif defined(Map_CONSTANT_ZERO)
89 # if ERWIN_BOOL_VALUE(Map_CONSTANT_ZERO)
90 # undef Map_CONSTANT_ZERO
91 # define Map_CONSTANT_ZERO 1
92 # else
93 # undef Map_CONSTANT_ZERO
94 # define Map_CONSTANT_ZERO 0
95 # endif
96 #elif defined(Map_DYN_ZERO)
97 # if !ERWIN_BOOL_VALUE(Map_DYN_ZERO)
98 # define Map_CONSTANT_ZERO 1
99 # else
100 # define Map_CONSTANT_ZERO 0
101 # endif
102 #elif defined(Global_oType_HAS_CONSTANT_ZERO)
103 # if ERWIN_BOOL_VALUE(Global_oType_HAS_CONSTANT_ZERO)
104 # define Map_CONSTANT_ZERO 1
105 # else
106 # define Map_CONSTANT_ZERO 0
107 # endif
108 #elif defined(Global_MAP_CONSTANT_ZERO)
109 # if ERWIN_BOOL_VALUE(Global_MAP_CONSTANT_ZERO)
110 # define Map_CONSTANT_ZERO 1
111 # else
112 # define Map_CONSTANT_ZERO 0
113 # endif
114 #elif defined(Global_MAP_DYN_ZERO)
115 # if !ERWIN_BOOL_VALUE(Global_MAP_DYN_ZERO)
116 # define Map_CONSTANT_ZERO 1
117 # else
118 # define Map_CONSTANT_ZERO 0
119 # endif
120 #elif defined(Global_ERWIN_CONSTANT_ZERO)
121 # if ERWIN_BOOL_VALUE(Global_ERWIN_CONSTANT_ZERO)
122 # define Map_CONSTANT_ZERO 1
123 # else
124 # define Map_CONSTANT_ZERO 0
125 # endif
126 #elif defined(Global_ERWIN_DYN_ZERO)
127 # if !ERWIN_BOOL_VALUE(Global_ERWIN_DYN_ZERO)
128 # define Map_CONSTANT_ZERO 1
129 # else
130 # define Map_CONSTANT_ZERO 0
131 # endif
132 #elif defined(ALL_ERWIN_CONSTANT_ZERO)
133 # if ERWIN_BOOL_VALUE(ALL_ERWIN_CONSTANT_ZERO)
134 # define Map_CONSTANT_ZERO 1
135 # else
136 # define Map_CONSTANT_ZERO 0
137 # endif
138 #elif !defined(ALL_ERWIN_DYN_ZERO)
139 # define Map_CONSTANT_ZERO 0
140 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_DYN_ZERO)
141 # define Map_CONSTANT_ZERO 1
142 #else
143 # define Map_CONSTANT_ZERO 0
144 #endif
145 #if !defined(Map_DYN_ZERO)
146 #elif Map_CONSTANT_ZERO == ERWIN_BOOL_VALUE(Map_DYN_ZERO)
147 # error "Inconsistency: Map_CONSTANT_ZERO == Map_DYN_ZERO"
148 #endif
149 #if ERWIN_BOOL_VALUE(Map_CONSTANT_ZERO)
150 # define Map_DYN_ZERO 0
151 #else
152 # define Map_DYN_ZERO 1
153 #endif
154
155
156 #if !defined(__cplusplus)
157 # undef Map_USE_DEFAULT_ARGS
158 # define Map_USE_DEFAULT_ARGS 0
159 # undef Map_NO_DEFAULT_ARGS
160 #elif defined(Map_USE_DEFAULT_ARGS)
161 # if ERWIN_BOOL_VALUE(Map_USE_DEFAULT_ARGS)
162 # undef Map_USE_DEFAULT_ARGS
163 # define Map_USE_DEFAULT_ARGS 1
164 # else
165 # undef Map_USE_DEFAULT_ARGS
166 # define Map_USE_DEFAULT_ARGS 0
167 # endif
168 #elif defined(Map_NO_DEFAULT_ARGS)
169 # if !ERWIN_BOOL_VALUE(Map_NO_DEFAULT_ARGS)
170 # define Map_USE_DEFAULT_ARGS 1
171 # else
172 # define Map_USE_DEFAULT_ARGS 0
173 # endif
174 #elif defined(Global_MAP_USE_DEFAULT_ARGS)
175 # if ERWIN_BOOL_VALUE(Global_MAP_USE_DEFAULT_ARGS)
176 # define Map_USE_DEFAULT_ARGS 1
177 # else
178 # define Map_USE_DEFAULT_ARGS 0
179 # endif
180 #elif defined(Global_MAP_NO_DEFAULT_ARGS)
181 # if !ERWIN_BOOL_VALUE(Global_MAP_NO_DEFAULT_ARGS)
182 # define Map_USE_DEFAULT_ARGS 1
183 # else
184 # define Map_USE_DEFAULT_ARGS 0
185 # endif
186 #elif defined(Global_ERWIN_USE_DEFAULT_ARGS)
187 # if ERWIN_BOOL_VALUE(Global_ERWIN_USE_DEFAULT_ARGS)
188 # define Map_USE_DEFAULT_ARGS 1
189 # else
190 # define Map_USE_DEFAULT_ARGS 0
191 # endif
192 #elif defined(Global_ERWIN_NO_DEFAULT_ARGS)
193 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_DEFAULT_ARGS)
194 # define Map_USE_DEFAULT_ARGS 1
195 # else
196 # define Map_USE_DEFAULT_ARGS 0
197 # endif
198 #elif defined(ALL_ERWIN_USE_DEFAULT_ARGS)
199 # if ERWIN_BOOL_VALUE(ALL_ERWIN_USE_DEFAULT_ARGS)
200 # define Map_USE_DEFAULT_ARGS 1
201 # else
202 # define Map_USE_DEFAULT_ARGS 0
203 # endif
204 #elif !defined(ALL_ERWIN_NO_DEFAULT_ARGS)
205 # define Map_USE_DEFAULT_ARGS 1
206 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_DEFAULT_ARGS)
207 # define Map_USE_DEFAULT_ARGS 1
208 #else
209 # define Map_USE_DEFAULT_ARGS 0
210 #endif
211 #if !defined(Map_NO_DEFAULT_ARGS)
212 #elif Map_USE_DEFAULT_ARGS == ERWIN_BOOL_VALUE(Map_NO_DEFAULT_ARGS)
213 # error "Inconsistency: Map_USE_DEFAULT_ARGS == Map_NO_DEFAULT_ARGS"
214 #endif
215 #if ERWIN_BOOL_VALUE(Map_USE_DEFAULT_ARGS)
216 # define Map_NO_DEFAULT_ARGS 0
217 #else
218 # define Map_NO_DEFAULT_ARGS 1
219 #endif
220 #if defined(Map_USE_DEFAULT_ARGS) && Map_USE_DEFAULT_ARGS
221 # define Map_DEFAULT_ARG(X) = X
222 #else
223 # define Map_DEFAULT_ARG(X)
224 #endif
225
226
227 #if !defined(__cplusplus)
228 #elif defined(Map_SUPER_CLASS)
229 #elif defined(Global_MAP_SUPER_CLASS)
230 # define Map_SUPER_CLASS Global_MAP_SUPER_CLASS
231 #elif defined(Global_ERWIN_SUPER_CLASS)
232 # define Map_SUPER_CLASS Global_ERWIN_SUPER_CLASS
233 #elif defined(ALL_ERWIN_SUPER_CLASS)
234 # define Map_SUPER_CLASS ALL_ERWIN_SUPER_CLASS
235 #endif
236
237
238 #if !defined(__cplusplus)
239 #elif defined(Map_SUPER_CLASS_ACCESS)
240 #elif defined(Global_MAP_SUPER_CLASS_ACCESS)
241 # define Map_SUPER_CLASS_ACCESS Global_MAP_SUPER_CLASS_ACCESS
242 #elif defined(Global_ERWIN_SUPER_CLASS_ACCESS)
243 # define Map_SUPER_CLASS_ACCESS Global_ERWIN_SUPER_CLASS_ACCESS
244 #elif defined(ALL_ERWIN_SUPER_CLASS_ACCESS)
245 # define Map_SUPER_CLASS_ACCESS ALL_ERWIN_SUPER_CLASS_ACCESS
246 #else
247 # define Map_SUPER_CLASS_ACCESS private
248 #endif
249
250
251 #if defined(Map_TYPE_INFO_STD_MEMBERS)
252 #elif defined(Map_t_TYPE_INFO_STD_MEMBERS)
253 # define Map_TYPE_INFO_STD_MEMBERS Map_t_TYPE_INFO_STD_MEMBERS
254 #endif
255 #if defined(Map_STD_MEMBERS)
256 #elif defined(Global_MAP_STD_MEMBERS)
257 # define Map_STD_MEMBERS(CLASS_NAME) Global_MAP_STD_MEMBERS(CLASS_NAME)
258 # define Map_TYPE_INFO_STD_MEMBERS Global_MAP_TYPE_INFO_STD_MEMBERS
259 #elif defined(Global_ERWIN_STD_MEMBERS)
260 # define Map_STD_MEMBERS(CLASS_NAME) Global_ERWIN_STD_MEMBERS(CLASS_NAME)
261 # define Map_TYPE_INFO_STD_MEMBERS Global_ERWIN_TYPE_INFO_STD_MEMBERS
262 #elif defined(ALL_ERWIN_STD_MEMBERS)
263 # define Map_STD_MEMBERS(CLASS_NAME) ALL_ERWIN_STD_MEMBERS(CLASS_NAME)
264 # define Map_TYPE_INFO_STD_MEMBERS ALL_ERWIN_TYPE_INFO_STD_MEMBERS
265 #else
266 # define Map_STD_MEMBERS(CLASS_NAME)
267 # define Map_TYPE_INFO_STD_MEMBERS
268 #endif
269
270
271 #if defined(Map_HAVE_SIG)
272 # if ERWIN_BOOL_VALUE(Map_HAVE_SIG)
273 # undef Map_HAVE_SIG
274 # define Map_HAVE_SIG 1
275 # else
276 # undef Map_HAVE_SIG
277 # define Map_HAVE_SIG 0
278 # endif
279 #elif defined(Map_NO_SIG)
280 # if !ERWIN_BOOL_VALUE(Map_NO_SIG)
281 # define Map_HAVE_SIG 1
282 # else
283 # define Map_HAVE_SIG 0
284 # endif
285 #elif defined(Map_FORCE_SIG)
286 # if ERWIN_BOOL_VALUE(Map_FORCE_SIG)
287 # define Map_HAVE_SIG 1
288 # else
289 # define Map_HAVE_SIG 0
290 # endif
291 #elif defined(Global_MAP_HAVE_SIG)
292 # if ERWIN_BOOL_VALUE(Global_MAP_HAVE_SIG)
293 # define Map_HAVE_SIG 1
294 # else
295 # define Map_HAVE_SIG 0
296 # endif
297 #elif defined(Global_MAP_NO_SIG)
298 # if !ERWIN_BOOL_VALUE(Global_MAP_NO_SIG)
299 # define Map_HAVE_SIG 1
300 # else
301 # define Map_HAVE_SIG 0
302 # endif
303 #elif defined(Global_MAP_FORCE_SIG)
304 # if ERWIN_BOOL_VALUE(Global_MAP_FORCE_SIG)
305 # define Map_HAVE_SIG 1
306 # else
307 # define Map_HAVE_SIG 0
308 # endif
309 #elif defined(Global_ERWIN_HAVE_SIG)
310 # if ERWIN_BOOL_VALUE(Global_ERWIN_HAVE_SIG)
311 # define Map_HAVE_SIG 1
312 # else
313 # define Map_HAVE_SIG 0
314 # endif
315 #elif defined(Global_ERWIN_NO_SIG)
316 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_SIG)
317 # define Map_HAVE_SIG 1
318 # else
319 # define Map_HAVE_SIG 0
320 # endif
321 #elif defined(Global_ERWIN_FORCE_SIG)
322 # if ERWIN_BOOL_VALUE(Global_ERWIN_FORCE_SIG)
323 # define Map_HAVE_SIG 1
324 # else
325 # define Map_HAVE_SIG 0
326 # endif
327 #elif defined(ALL_ERWIN_HAVE_SIG)
328 # if ERWIN_BOOL_VALUE(ALL_ERWIN_HAVE_SIG)
329 # define Map_HAVE_SIG 1
330 # else
331 # define Map_HAVE_SIG 0
332 # endif
333 #elif defined(ALL_ERWIN_NO_SIG)
334 # if !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_SIG)
335 # define Map_HAVE_SIG 1
336 # else
337 # define Map_HAVE_SIG 0
338 # endif
339 #elif defined(ALL_ERWIN_FORCE_SIG)
340 # if ERWIN_BOOL_VALUE(ALL_ERWIN_FORCE_SIG)
341 # define Map_HAVE_SIG 1
342 # else
343 # define Map_HAVE_SIG 0
344 # endif
345 #elif defined(DEVEL)
346 # define Map_HAVE_SIG 1
347 #else
348 # define Map_HAVE_SIG 0
349 #endif
350 #if !defined(Map_NO_SIG)
351 #elif Map_HAVE_SIG == ERWIN_BOOL_VALUE(Map_NO_SIG)
352 # error "Inconsistency: Map_HAVE_SIG == Map_NO_SIG"
353 #endif
354 #if !defined(Map_FORCE_SIG)
355 #elif Map_HAVE_SIG != ERWIN_BOOL_VALUE(Map_FORCE_SIG)
356 # error "Inconsistency: Map_HAVE_SIG != Map_FORCE_SIG"
357 #endif
358 #if ERWIN_BOOL_VALUE(Map_HAVE_SIG)
359 # define Map_NO_SIG 0
360 #else
361 # define Map_NO_SIG 1
362 #endif
363
364
365 #if defined(Map_PROFILE)
366 # if ERWIN_BOOL_VALUE(Map_PROFILE)
367 # undef Map_PROFILE
368 # define Map_PROFILE 1
369 # else
370 # undef Map_PROFILE
371 # define Map_PROFILE 0
372 # endif
373 #elif defined(Global_MAP_PROFILE)
374 # if ERWIN_BOOL_VALUE(Global_MAP_PROFILE)
375 # define Map_PROFILE 1
376 # else
377 # define Map_PROFILE 0
378 # endif
379 #elif defined(Global_ERWIN_PROFILE)
380 # if ERWIN_BOOL_VALUE(Global_ERWIN_PROFILE)
381 # define Map_PROFILE 1
382 # else
383 # define Map_PROFILE 0
384 # endif
385 #elif !defined(ALL_ERWIN_PROFILE)
386 # define Map_PROFILE 0
387 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_PROFILE)
388 # define Map_PROFILE 1
389 #else
390 # define Map_PROFILE 0
391 #endif
392
393
394 #if defined(Map_ALLOW_NULL)
395 # if ERWIN_BOOL_VALUE(Map_ALLOW_NULL)
396 # undef Map_ALLOW_NULL
397 # define Map_ALLOW_NULL 1
398 # else
399 # undef Map_ALLOW_NULL
400 # define Map_ALLOW_NULL 0
401 # endif
402 #elif defined(Global_MAP_ALLOW_NULL)
403 # if ERWIN_BOOL_VALUE(Global_MAP_ALLOW_NULL)
404 # define Map_ALLOW_NULL 1
405 # else
406 # define Map_ALLOW_NULL 0
407 # endif
408 #elif defined(Global_ERWIN_ALLOW_NULL)
409 # if ERWIN_BOOL_VALUE(Global_ERWIN_ALLOW_NULL)
410 # define Map_ALLOW_NULL 1
411 # else
412 # define Map_ALLOW_NULL 0
413 # endif
414 #elif !defined(ALL_ERWIN_ALLOW_NULL)
415 # define Map_ALLOW_NULL 0
416 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_ALLOW_NULL)
417 # define Map_ALLOW_NULL 1
418 #else
419 # define Map_ALLOW_NULL 0
420 #endif
421
422
423 #if !defined(__cplusplus)
424 #elif defined(Map_DIRECT_RECURSION)
425 # if ERWIN_BOOL_VALUE(Map_DIRECT_RECURSION)
426 # undef Map_DIRECT_RECURSION
427 # define Map_DIRECT_RECURSION 1
428 # else
429 # undef Map_DIRECT_RECURSION
430 # define Map_DIRECT_RECURSION 0
431 # endif
432 #elif defined(Global_MAP_DIRECT_RECURSION)
433 # if ERWIN_BOOL_VALUE(Global_MAP_DIRECT_RECURSION)
434 # define Map_DIRECT_RECURSION 1
435 # else
436 # define Map_DIRECT_RECURSION 0
437 # endif
438 #elif defined(Global_ERWIN_DIRECT_RECURSION)
439 # if ERWIN_BOOL_VALUE(Global_ERWIN_DIRECT_RECURSION)
440 # define Map_DIRECT_RECURSION 1
441 # else
442 # define Map_DIRECT_RECURSION 0
443 # endif
444 #elif !defined(ALL_ERWIN_DIRECT_RECURSION)
445 # define Map_DIRECT_RECURSION 0
446 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_DIRECT_RECURSION)
447 # define Map_DIRECT_RECURSION 1
448 #else
449 # define Map_DIRECT_RECURSION 0
450 #endif
451
452
453 #if defined(__cplusplus)
454 # if Map_DYN_ZERO && Map_INDEX_IS_INT
455 # undef Map_HAVE_INT_CONSTRUCTOR
456 # define Map_HAVE_INT_CONSTRUCTOR 0
457 # undef Map_NO_INT_CONSTRUCTOR
458 # elif defined(Map_HAVE_INT_CONSTRUCTOR)
459 # if ERWIN_BOOL_VALUE(Map_HAVE_INT_CONSTRUCTOR)
460 # undef Map_HAVE_INT_CONSTRUCTOR
461 # define Map_HAVE_INT_CONSTRUCTOR 1
462 # else
463 # undef Map_HAVE_INT_CONSTRUCTOR
464 # define Map_HAVE_INT_CONSTRUCTOR 0
465 # endif
466 # elif defined(Map_NO_INT_CONSTRUCTOR)
467 # if !ERWIN_BOOL_VALUE(Map_NO_INT_CONSTRUCTOR)
468 # define Map_HAVE_INT_CONSTRUCTOR 1
469 # else
470 # define Map_HAVE_INT_CONSTRUCTOR 0
471 # endif
472 # elif defined(Global_MAP_HAVE_INT_CONSTRUCTOR)
473 # if ERWIN_BOOL_VALUE(Global_MAP_HAVE_INT_CONSTRUCTOR)
474 # define Map_HAVE_INT_CONSTRUCTOR 1
475 # else
476 # define Map_HAVE_INT_CONSTRUCTOR 0
477 # endif
478 # elif defined(Global_MAP_NO_INT_CONSTRUCTOR)
479 # if !ERWIN_BOOL_VALUE(Global_MAP_NO_INT_CONSTRUCTOR)
480 # define Map_HAVE_INT_CONSTRUCTOR 1
481 # else
482 # define Map_HAVE_INT_CONSTRUCTOR 0
483 # endif
484 # elif defined(Global_ERWIN_HAVE_INT_CONSTRUCTOR)
485 # if ERWIN_BOOL_VALUE(Global_ERWIN_HAVE_INT_CONSTRUCTOR)
486 # define Map_HAVE_INT_CONSTRUCTOR 1
487 # else
488 # define Map_HAVE_INT_CONSTRUCTOR 0
489 # endif
490 # elif defined(Global_ERWIN_NO_INT_CONSTRUCTOR)
491 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_INT_CONSTRUCTOR)
492 # define Map_HAVE_INT_CONSTRUCTOR 1
493 # else
494 # define Map_HAVE_INT_CONSTRUCTOR 0
495 # endif
496 # elif defined(ALL_ERWIN_HAVE_INT_CONSTRUCTOR)
497 # if ERWIN_BOOL_VALUE(ALL_ERWIN_HAVE_INT_CONSTRUCTOR)
498 # define Map_HAVE_INT_CONSTRUCTOR 1
499 # else
500 # define Map_HAVE_INT_CONSTRUCTOR 0
501 # endif
502 # elif !defined(ALL_ERWIN_NO_INT_CONSTRUCTOR)
503 # define Map_HAVE_INT_CONSTRUCTOR 1
504 # elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_INT_CONSTRUCTOR)
505 # define Map_HAVE_INT_CONSTRUCTOR 1
506 # else
507 # define Map_HAVE_INT_CONSTRUCTOR 0
508 # endif
509 # if !defined(Map_NO_INT_CONSTRUCTOR)
510 # elif Map_HAVE_INT_CONSTRUCTOR == ERWIN_BOOL_VALUE(Map_NO_INT_CONSTRUCTOR)
511 # error "Inconsistency: Map_HAVE_INT_CONSTRUCTOR == Map_NO_INT_CONSTRUCTOR"
512 # endif
513 # if ERWIN_BOOL_VALUE(Map_HAVE_INT_CONSTRUCTOR)
514 # define Map_NO_INT_CONSTRUCTOR 0
515 # else
516 # define Map_NO_INT_CONSTRUCTOR 1
517 # endif
518 #endif
519
520
521 #if !defined(__cplusplus)
522 # undef Map_MANY_CASTS
523 # define Map_MANY_CASTS 0
524 #elif defined(Map_MANY_CASTS)
525 # if ERWIN_BOOL_VALUE(Map_MANY_CASTS)
526 # undef Map_MANY_CASTS
527 # define Map_MANY_CASTS 1
528 # else
529 # undef Map_MANY_CASTS
530 # define Map_MANY_CASTS 0
531 # endif
532 #elif defined(Global_MAP_MANY_CASTS)
533 # if ERWIN_BOOL_VALUE(Global_MAP_MANY_CASTS)
534 # define Map_MANY_CASTS 1
535 # else
536 # define Map_MANY_CASTS 0
537 # endif
538 #elif defined(Global_ERWIN_MANY_CASTS)
539 # if ERWIN_BOOL_VALUE(Global_ERWIN_MANY_CASTS)
540 # define Map_MANY_CASTS 1
541 # else
542 # define Map_MANY_CASTS 0
543 # endif
544 #elif !defined(ALL_ERWIN_MANY_CASTS)
545 # define Map_MANY_CASTS 0
546 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_MANY_CASTS)
547 # define Map_MANY_CASTS 1
548 #else
549 # define Map_MANY_CASTS 0
550 #endif
551 #if defined(Map_MANY_CASTS) && Map_MANY_CASTS
552 # define Map_DEFAULT_ARG_MANY(X) Map_DEFAULT_ARG(X)
553 #else
554 # define Map_DEFAULT_ARG_MANY(X)
555 #endif
556
557
558 #ifdef Map_IMPLEMENTATION
559
560 ErwinImplementationInclude
561
562 #ifdef Global_ERWIN_COMPILING
563 # include "erwin/defaults.h"
564 # include "erwin/forwards.h"
565 #else
566 # include <erwin/defaults.h>
567 # include <erwin/forwards.h>
568 #endif
569
570
571 #if defined(Map_NOMEM_IS_FATAL)
572 # if ERWIN_BOOL_VALUE(Map_NOMEM_IS_FATAL)
573 # undef Map_NOMEM_IS_FATAL
574 # define Map_NOMEM_IS_FATAL 1
575 # else
576 # undef Map_NOMEM_IS_FATAL
577 # define Map_NOMEM_IS_FATAL 0
578 # endif
579 #elif defined(Global_MAP_NOMEM_IS_FATAL)
580 # if ERWIN_BOOL_VALUE(Global_MAP_NOMEM_IS_FATAL)
581 # define Map_NOMEM_IS_FATAL 1
582 # else
583 # define Map_NOMEM_IS_FATAL 0
584 # endif
585 #elif defined(Global_ERWIN_NOMEM_IS_FATAL)
586 # if ERWIN_BOOL_VALUE(Global_ERWIN_NOMEM_IS_FATAL)
587 # define Map_NOMEM_IS_FATAL 1
588 # else
589 # define Map_NOMEM_IS_FATAL 0
590 # endif
591 #elif !defined(ALL_ERWIN_NOMEM_IS_FATAL)
592 # define Map_NOMEM_IS_FATAL 0
593 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_NOMEM_IS_FATAL)
594 # define Map_NOMEM_IS_FATAL 1
595 #else
596 # define Map_NOMEM_IS_FATAL 0
597 #endif
598
599
600 #if defined(Map_ASSERTION_FAILED_HANDLER)
601 #elif defined(Global_MAP_ASSERTION_FAILED_HANDLER)
602 # define Map_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_MAP_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
603 #elif defined(Global_ERWIN_ASSERTION_FAILED_HANDLER)
604 # define Map_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_ERWIN_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
605 #elif defined(ALL_ERWIN_ASSERTION_FAILED_HANDLER)
606 # define Map_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) ALL_ERWIN_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
607 #else
608 # define Map_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_ERWIN_DEFAULT_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
609 #endif
610
611
612 #if defined(Map_OPTIMISE_SIZE)
613 # if ERWIN_BOOL_VALUE(Map_OPTIMISE_SIZE)
614 # undef Map_OPTIMISE_SIZE
615 # define Map_OPTIMISE_SIZE 1
616 # else
617 # undef Map_OPTIMISE_SIZE
618 # define Map_OPTIMISE_SIZE 0
619 # endif
620 #elif defined(Global_MAP_OPTIMISE_SIZE)
621 # if ERWIN_BOOL_VALUE(Global_MAP_OPTIMISE_SIZE)
622 # define Map_OPTIMISE_SIZE 1
623 # else
624 # define Map_OPTIMISE_SIZE 0
625 # endif
626 #elif defined(Global_ERWIN_OPTIMISE_SIZE)
627 # if ERWIN_BOOL_VALUE(Global_ERWIN_OPTIMISE_SIZE)
628 # define Map_OPTIMISE_SIZE 1
629 # else
630 # define Map_OPTIMISE_SIZE 0
631 # endif
632 #elif !defined(ALL_ERWIN_OPTIMISE_SIZE)
633 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_OPTIMISE_SIZE)
634 # define Map_OPTIMISE_SIZE 1
635 #else
636 # define Map_OPTIMISE_SIZE 0
637 #endif
638
639
640 #if defined(Map_SPLIT)
641 # if ERWIN_BOOL_VALUE(Map_SPLIT)
642 # undef Map_SPLIT
643 # define Map_SPLIT 1
644 # else
645 # undef Map_SPLIT
646 # define Map_SPLIT 0
647 # endif
648 #elif defined(Global_MAP_SPLIT)
649 # if ERWIN_BOOL_VALUE(Global_MAP_SPLIT)
650 # define Map_SPLIT 1
651 # else
652 # define Map_SPLIT 0
653 # endif
654 #elif defined(Global_ERWIN_SPLIT)
655 # if ERWIN_BOOL_VALUE(Global_ERWIN_SPLIT)
656 # define Map_SPLIT 1
657 # else
658 # define Map_SPLIT 0
659 # endif
660 #elif !defined(ALL_ERWIN_SPLIT)
661 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_SPLIT)
662 # define Map_SPLIT 1
663 #else
664 # define Map_SPLIT 0
665 #endif
666
667
668 #if defined(Map_INITIAL_SIZE)
669 #elif defined(Global_MAP_INITIAL_SIZE)
670 # define Map_INITIAL_SIZE Global_MAP_INITIAL_SIZE
671 #elif defined(Global_ERWIN_INITIAL_SIZE)
672 # define Map_INITIAL_SIZE Global_ERWIN_INITIAL_SIZE
673 #elif defined(ALL_ERWIN_INITIAL_SIZE)
674 # define Map_INITIAL_SIZE ALL_ERWIN_INITIAL_SIZE
675 #else
676 # define Map_INITIAL_SIZE 4
677 #endif
678
679
680 #if defined(Map_MINIMAL_SIZE)
681 #elif defined(Global_MAP_MINIMAL_SIZE)
682 # define Map_MINIMAL_SIZE Global_MAP_MINIMAL_SIZE
683 #elif defined(Global_ERWIN_MINIMAL_SIZE)
684 # define Map_MINIMAL_SIZE Global_ERWIN_MINIMAL_SIZE
685 #elif defined(ALL_ERWIN_MINIMAL_SIZE)
686 # define Map_MINIMAL_SIZE ALL_ERWIN_MINIMAL_SIZE
687 #else
688 # define Map_MINIMAL_SIZE 4
689 #endif
690
691
692 #if defined(Map_TRIGGER_DENOMINATOR)
693 #elif defined(Global_MAP_TRIGGER_DENOMINATOR)
694 # define Map_TRIGGER_DENOMINATOR Global_MAP_TRIGGER_DENOMINATOR
695 #elif defined(Global_ERWIN_TRIGGER_DENOMINATOR)
696 # define Map_TRIGGER_DENOMINATOR Global_ERWIN_TRIGGER_DENOMINATOR
697 #elif defined(ALL_ERWIN_TRIGGER_DENOMINATOR)
698 # define Map_TRIGGER_DENOMINATOR ALL_ERWIN_TRIGGER_DENOMINATOR
699 #else
700 # define Map_TRIGGER_DENOMINATOR 5
701 #endif
702
703
704 #if defined(Map_TRIGGER_NUMERATOR)
705 #elif defined(Global_MAP_TRIGGER_NUMERATOR)
706 # define Map_TRIGGER_NUMERATOR Global_MAP_TRIGGER_NUMERATOR
707 #elif defined(Global_ERWIN_TRIGGER_NUMERATOR)
708 # define Map_TRIGGER_NUMERATOR Global_ERWIN_TRIGGER_NUMERATOR
709 #elif defined(ALL_ERWIN_TRIGGER_NUMERATOR)
710 # define Map_TRIGGER_NUMERATOR ALL_ERWIN_TRIGGER_NUMERATOR
711 #else
712 # define Map_TRIGGER_NUMERATOR 4
713 #endif
714
715
716 #if defined(Map_PLAIN_LIST_LENGTH)
717 #elif defined(Global_MAP_PLAIN_LIST_LENGTH)
718 # define Map_PLAIN_LIST_LENGTH Global_MAP_PLAIN_LIST_LENGTH
719 #elif defined(Global_ERWIN_PLAIN_LIST_LENGTH)
720 # define Map_PLAIN_LIST_LENGTH Global_ERWIN_PLAIN_LIST_LENGTH
721 #elif defined(ALL_ERWIN_PLAIN_LIST_LENGTH)
722 # define Map_PLAIN_LIST_LENGTH ALL_ERWIN_PLAIN_LIST_LENGTH
723 #elif !defined(Map_TRIGGER_NUMERATOR)
724 #elif defined(Map_TRIGGER_DENOMINATOR)
725 # define Map_PLAIN_LIST_LENGTH (5 * (Map_TRIGGER_NUMERATOR)) / (Map_TRIGGER_DENOMINATOR)
726 #endif
727
728
729 #if defined(Global_iType_HASH_RAW)
730 #elif defined(Global_iType_HASHVAL)
731 # define Global_iType_HASH_RAW(X) Global_iType_HASHVAL(X)
732 #else
733 # define Global_iType_HASH_RAW(X) Global_ERWIN_DEFAULT_HASH_RAW(X)
734 #endif
735
736
737 #if defined(Global_oType_HASH_RAW)
738 #elif defined(Global_oType_HASHVAL)
739 # define Global_oType_HASH_RAW(X) Global_oType_HASHVAL(X)
740 #endif
741
742
743 #if defined(Global_iType_HASH)
744 #elif defined(Global_iType_HASH_RAW)
745 # define Global_iType_HASH(X) Global_hashval_t_hash((Global_iType_HASH_RAW(X)))
746 #endif
747
748
749 #if defined(Global_oType_HASH)
750 #elif Map_INDEX_IS_VOID
751 # define Global_oType_HASH(X) Global_ERWIN_HASH_INIT8
752 #elif defined(Global_oType_HASH_RAW)
753 # define Global_oType_HASH(X) Global_hashval_t_hash((Global_oType_HASH_RAW(X)))
754 #endif
755
756
757 #if defined(Global_iType_CMP_PROVIDED)
758 #elif defined(Global_iType_CMP)
759 # define Global_iType_CMP_PROVIDED 1
760 #else
761 # define Global_iType_CMP_PROVIDED 0
762 #endif
763 #if defined(Global_iType_CMP)
764 #elif Global_iType_CMP_PROVIDED
765 # error "Inconsistency: Global_iType_CMP_PROVIDED is true but Global_iType_CMP is undefined."
766 #endif
767
768
769 #if defined(Global_oType_CMP_PROVIDED)
770 #elif Map_INDEX_IS_VOID
771 # define Global_oType_CMP_PROVIDED 0
772 # undef Global_oType_CMP
773 # define Global_oType_CMP(A,B) 0
774 #elif defined(Global_oType_CMP)
775 # define Global_oType_CMP_PROVIDED 1
776 #else
777 # define Global_oType_CMP_PROVIDED 0
778 #endif
779 #if defined(Global_oType_CMP)
780 #elif Global_oType_CMP_PROVIDED
781 # error "Inconsistency: Global_oType_CMP_PROVIDED is true but Global_oType_CMP is undefined."
782 #endif
783
784
785 #if defined(Global_iType_DETCMP_PROVIDED)
786 #elif defined(Global_iType_DETCMP)
787 # define Global_iType_DETCMP_PROVIDED 1
788 #else
789 # if defined(Global_iType_CMP)
790 # define Global_iType_DETCMP(A,B) Global_iType_CMP(A,B)
791 # endif
792 # define Global_iType_DETCMP_PROVIDED 0
793 #endif
794 #if defined(Global_iType_DETCMP)
795 #elif Global_iType_DETCMP_PROVIDED
796 # error "Inconsistency: Global_iType_DETCMP_PROVIDED is true but Global_iType_DETCMP is undefined."
797 #endif
798 #if defined(Global_iType_DETCMP)
799 #elif !defined(Global_ERWIN_REQUIRE_DETERMINISM)
800 #elif !defined(Global_ERWIN_WEAK_DETERMINISM)
801 # error "Need Global_iType_DETCMP or Global_iType_CMP when enforcing determinism. Try to #define Global_iType_DETCMP(x,y) false_if_reached_pk(Global_iType_DETCMP) if you think you never invoke it."
802 #endif
803
804
805 #if defined(Global_oType_DETCMP_PROVIDED)
806 #elif Map_INDEX_IS_VOID
807 # define Global_oType_DETCMP_PROVIDED 0
808 # undef Global_oType_DETCMP
809 # define Global_oType_DETCMP(A,B) 0
810 #elif defined(Global_oType_DETCMP)
811 # define Global_oType_DETCMP_PROVIDED 1
812 #else
813 # if defined(Global_oType_CMP)
814 # define Global_oType_DETCMP(A,B) Global_oType_CMP(A,B)
815 # endif
816 # define Global_oType_DETCMP_PROVIDED 0
817 #endif
818 #if defined(Global_oType_DETCMP)
819 #elif Global_oType_DETCMP_PROVIDED
820 # error "Inconsistency: Global_oType_DETCMP_PROVIDED is true but Global_oType_DETCMP is undefined."
821 #endif
822 #if defined(Global_oType_DETCMP)
823 #elif !defined(Global_ERWIN_REQUIRE_DETERMINISM)
824 #elif !defined(Global_ERWIN_WEAK_DETERMINISM)
825 # error "Need Global_oType_DETCMP or Global_oType_CMP when enforcing determinism. Try to #define Global_oType_DETCMP(x,y) false_if_reached_pk(Global_oType_DETCMP) if you think you never invoke it."
826 #endif
827
828
829 #if defined(Global_iType_EQUAL_PROVIDED)
830 #elif defined(Global_iType_EQUAL)
831 # define Global_iType_EQUAL_PROVIDED 1
832 #else
833 # if !Global_iType_CMP_PROVIDED
834 # define Global_iType_EQUAL(A,B) (A) == (B)
835 # elif defined(Global_iType_CMP)
836 # define Global_iType_EQUAL(A,B) (Global_iType_CMP(A,B)) == 0
837 # endif
838 # define Global_iType_EQUAL_PROVIDED 0
839 #endif
840 #if defined(Global_iType_EQUAL)
841 #elif Global_iType_EQUAL_PROVIDED
842 # error "Inconsistency: Global_iType_EQUAL_PROVIDED is true but Global_iType_EQUAL is undefined."
843 #endif
844
845
846
847
848 #if defined(Global_iType_ICOPY_PROVIDED)
849 #elif defined(Global_iType_ICOPY)
850 # define Global_iType_ICOPY_PROVIDED 1
851 #elif defined(Global_iType_COPY)
852 # define Global_iType_ICOPY_PROVIDED 1
853 # define Global_iType_ICOPY(TO_BE_COPIED,ERR_P) Global_iType_COPY(TO_BE_COPIED,ERR_P)
854 #else
855 # define Global_iType_ICOPY(TO_BE_COPIED,ERR_P) TO_BE_COPIED
856 # define Global_iType_ICOPY_PROVIDED 0
857 #endif
858 #if defined(Global_iType_ICOPY)
859 #elif Global_iType_ICOPY_PROVIDED
860 # error "Inconsistency: Global_iType_ICOPY_PROVIDED is true but Global_iType_ICOPY is undefined."
861 #endif
862
863
864 #if defined(Global_iType_IFREE_PROVIDED)
865 #elif defined(Global_iType_IFREE)
866 # define Global_iType_IFREE_PROVIDED 1
867 #elif defined(Global_iType_FREE)
868 # define Global_iType_IFREE_PROVIDED 1
869 # define Global_iType_IFREE(TO_BE_DESTROYED) Global_iType_FREE(TO_BE_DESTROYED)
870 #else
871 # define Global_iType_IFREE(TO_BE_DESTROYED)
872 # define Global_iType_IFREE_PROVIDED 0
873 #endif
874 #if defined(Global_iType_IFREE)
875 #elif Global_iType_IFREE_PROVIDED
876 # error "Inconsistency: Global_iType_IFREE_PROVIDED is true but Global_iType_IFREE is undefined."
877 #endif
878
879
880 #if !defined(Global_iType_ZERO)
881 # define Global_iType_ZERO (iTypeTouched)0
882 #endif
883
884
885 #if defined(Global_oType_OCOPY_PROVIDED)
886 #elif Map_INDEX_IS_VOID
887 # define Global_oType_OCOPY_PROVIDED 0
888 # undef Global_oType_OCOPY
889 # define Global_oType_OCOPY(TO_BE_COPIED,ERR_P) TO_BE_COPIED
890 # undef Global_oType_COPY
891 #elif defined(Global_oType_OCOPY)
892 # define Global_oType_OCOPY_PROVIDED 1
893 #elif defined(Global_oType_COPY)
894 # define Global_oType_OCOPY_PROVIDED 1
895 # define Global_oType_OCOPY(TO_BE_COPIED,ERR_P) Global_oType_COPY(TO_BE_COPIED,ERR_P)
896 #else
897 # define Global_oType_OCOPY(TO_BE_COPIED,ERR_P) TO_BE_COPIED
898 # define Global_oType_OCOPY_PROVIDED 0
899 #endif
900 #if defined(Global_oType_OCOPY)
901 #elif Global_oType_OCOPY_PROVIDED
902 # error "Inconsistency: Global_oType_OCOPY_PROVIDED is true but Global_oType_OCOPY is undefined."
903 #endif
904
905
906 #if defined(Global_oType_OFREE_PROVIDED)
907 #elif Map_INDEX_IS_VOID
908 # define Global_oType_OFREE_PROVIDED 0
909 # undef Global_oType_OFREE
910 # define Global_oType_OFREE(TO_BE_DESTROYED)
911 # undef Global_oType_FREE
912 #elif defined(Global_oType_OFREE)
913 # define Global_oType_OFREE_PROVIDED 1
914 #elif defined(Global_oType_FREE)
915 # define Global_oType_OFREE_PROVIDED 1
916 # define Global_oType_OFREE(TO_BE_DESTROYED) Global_oType_FREE(TO_BE_DESTROYED)
917 #else
918 # define Global_oType_OFREE(TO_BE_DESTROYED)
919 # define Global_oType_OFREE_PROVIDED 0
920 #endif
921 #if defined(Global_oType_OFREE)
922 #elif Global_oType_OFREE_PROVIDED
923 # error "Inconsistency: Global_oType_OFREE_PROVIDED is true but Global_oType_OFREE is undefined."
924 #endif
925
926
927 #if defined(Global_oType_ZERO)
928 #elif Map_INDEX_IS_VOID
929 # define Global_oType_ZERO (oTypeResult)0
930 #else
931 # define Global_oType_ZERO (oTypeTouched)0
932 #endif
933
934
935 #if defined(Map_ENSURE_VALUE)
936 #elif defined(Global_oType_ENSURE_VALUE)
937 # define Map_ENSURE_VALUE(SELF,KEY,COPY_ERR) Global_oType_ENSURE_VALUE(COPY_ERR)
938 #elif defined(Global_MAP_ENSURE_VALUE)
939 # define Map_ENSURE_VALUE(SELF,KEY,COPY_ERR) Global_MAP_ENSURE_VALUE(SELF,KEY,COPY_ERR)
940 #elif defined(Global_ERWIN_ENSURE_VALUE)
941 # define Map_ENSURE_VALUE(SELF,KEY,COPY_ERR) Global_ERWIN_ENSURE_VALUE(SELF,KEY,COPY_ERR)
942 #elif defined(ALL_ERWIN_ENSURE_VALUE)
943 # define Map_ENSURE_VALUE(SELF,KEY,COPY_ERR) ALL_ERWIN_ENSURE_VALUE(SELF,KEY,COPY_ERR)
944 #elif defined(Global_oType_OCOPY)
945 # define Map_ENSURE_VALUE(SELF,KEY,COPY_ERR) Global_oType_OCOPY((ZERO(SELF)),COPY_ERR)
946 #endif
947
948 #endif
949 #endif