00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _UTILS_H_
00021 #define _UTILS_H_
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <cstdio>
00031 #include <cstdlib>
00032
00033 #include "iostream_t.hpp"
00034
00035
00036
00037
00038
00039
00040
00041
00042 typedef enum _enum_cons_result {
00043 E_CONSTRUCTOR_OK,
00044 E_CONSTRUCTOR_KO
00045 } T_ConstructorResult, *T_pContructorResult ;
00046
00047
00048
00049 #ifdef LOCAL_BOOLEAN
00050 #ifndef boolean
00051 typedef unsigned char boolean ;
00052 #endif
00053 #ifndef true
00054 #define true (boolean) ((0) == (0))
00055 #endif
00056 #ifndef false
00057 #define false (boolean) ((0) == (1))
00058 #endif
00059 #endif
00060
00061
00062
00063
00064
00065 #define ALLOC_VAR(v,t,s)\
00066 (v) = (t) malloc (s); \
00067 if ((v) == NULL) { \
00068 fprintf(stderr, "ALLOC_VAR (" #v ", " #t ", size: %lu) failure\n", (unsigned long)(s));\
00069 exit(-1) ;\
00070 }
00071
00072 #define REALLOC_VAR(v,t,s)\
00073 (v) = (t) realloc ((void*)(v),s); \
00074 if ((v) == NULL) { \
00075 fprintf(stderr, "REALLOC_VAR (" #v ", " #t ", size: %lu) failure\n", (unsigned long)(s));\
00076 exit(-1) ;\
00077 }
00078
00079
00080 #define ALLOC_TABLE(v,t,s,nb)\
00081 (v) = (t) malloc ((s) * (nb)); \
00082 if ((v) == NULL) { \
00083 fprintf(stderr, "ALLOC_TABLE (" #v ", " #t ", size: %lu, nb: %lu) failure\n", (unsigned long)(s), (unsigned long)(nb));\
00084 exit(-1) ;\
00085 }
00086
00087
00088 #define NEW_VAR(v,t)\
00089 (v) = new t ;\
00090 if ((v) == NULL) {\
00091 iostream_error << "NEW_VAR (" #v ", " #t ") failure" << iostream_endl ;\
00092 exit(-1);\
00093 }
00094
00095
00096 #define NEW_TABLE(v,t,s)\
00097 (v) = new t [(s)] ;\
00098 if ((v) == NULL) {\
00099 iostream_error << "NEW_TABLE (" #v ", " #t ", nb: " << (s) << ") failure" << iostream_endl ;\
00100 exit(-1);\
00101 }
00102
00103
00104
00105
00106
00107 #define FREE_VAR(p)\
00108 if ((p) != NULL) {\
00109 free (p) ; \
00110 (p) = NULL ; \
00111 }
00112
00113
00114 #define FREE_TABLE(p)\
00115 if ((p) != NULL) {\
00116 free (p) ; \
00117 (p) = NULL ; \
00118 }
00119
00120
00121 #define DELETE_VAR(p)\
00122 if ((p) != NULL) {\
00123 delete p ;\
00124 (p) = NULL ;\
00125 }
00126
00127
00128 #define DELETE_TABLE(p)\
00129 if ((p) != NULL) {\
00130 delete [] p ;\
00131 (p) = NULL ;\
00132 }
00133
00134 #endif
00135
00136