00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00016 #ifndef __DRIZZLE_PRIVATE_H
00017 #define __DRIZZLE_PRIVATE_H
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00031 #define DRIZZLE_ERROR_SET(__drizzle, __function, ...) { \
00032 snprintf((__drizzle)->last_error, DRIZZLE_MAX_ERROR_SIZE, \
00033 __function ":" __VA_ARGS__); }
00034
00035
00036 #define DRIZZLE_GET_BYTE2(__buffer) (uint16_t)((__buffer)[0] | \
00037 ((__buffer)[1] << 8))
00038 #define DRIZZLE_GET_BYTE3(__buffer) (uint32_t)((__buffer)[0] | \
00039 ((__buffer)[1] << 8) | ((__buffer)[2] << 16))
00040 #define DRIZZLE_GET_BYTE4(__buffer) (uint32_t)((__buffer)[0] | \
00041 ((__buffer)[1] << 8) | ((__buffer)[2] << 16) | ((__buffer)[3] << 24))
00042 #define DRIZZLE_GET_BYTE8(__buffer) ((uint64_t)(__buffer)[0] | \
00043 ((uint64_t)(__buffer)[1] << 8) | ((uint64_t)(__buffer)[2] << 16) | \
00044 ((uint64_t)(__buffer)[3] << 24) | ((uint64_t)(__buffer)[4] << 32) | \
00045 ((uint64_t)(__buffer)[5] << 40) | ((uint64_t)(__buffer)[6] << 48) | \
00046 ((uint64_t)(__buffer)[7] << 56))
00047
00048
00049 #define DRIZZLE_SET_BYTE2(__buffer, __int) { \
00050 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00051 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); }
00052 #define DRIZZLE_SET_BYTE3(__buffer, __int) { \
00053 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00054 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00055 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); }
00056 #define DRIZZLE_SET_BYTE4(__buffer, __int) { \
00057 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00058 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00059 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); \
00060 (__buffer)[3]= (uint8_t)(((__int) >> 24) & 0xFF); }
00061 #define DRIZZLE_SET_BYTE8(__buffer, __int) { \
00062 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00063 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00064 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); \
00065 (__buffer)[3]= (uint8_t)(((__int) >> 24) & 0xFF); \
00066 (__buffer)[4]= (uint8_t)(((__int) >> 32) & 0xFF); \
00067 (__buffer)[5]= (uint8_t)(((__int) >> 40) & 0xFF); \
00068 (__buffer)[6]= (uint8_t)(((__int) >> 48) & 0xFF); \
00069 (__buffer)[7]= (uint8_t)(((__int) >> 56) & 0xFF); }
00070
00071
00072 #define DRIZZLE_MB_CHAR(__c) (((__c) & 0x80) != 0)
00073 #define DRIZZLE_MB_LENGTH(__c) \
00074 ((uint32_t)(__c) <= 0x7f ? 1 : \
00075 ((uint32_t)(__c) <= 0x7ff ? 2 : \
00076 ((uint32_t)(__c) <= 0xd7ff ? 3 : \
00077 ((uint32_t)(__c) <= 0xdfff || (uint32_t)(__c) > 0x10ffff ? 0 : \
00078 ((uint32_t)(__c) <= 0xffff ? 3 : 4)))))
00079
00080
00081 #define DRIZZLE_STATE_NONE(__con) ((__con)->state_current == 0)
00082 #define DRIZZLE_STATE_PUSH(__con, __function) { \
00083 assert((__con)->state_current < DRIZZLE_STATE_STACK_SIZE); \
00084 (__con)->state_stack[(__con)->state_current]= __function; \
00085 (__con)->state_current++; }
00086 #define DRIZZLE_STATE_POP(__con) (__con)->state_current--;
00087 #define DRIZZLE_STATE_RESET(__con) (__con)->state_current= 0;
00088
00089
00090
00091 #ifdef VERBOSE_DEBUG
00092 #define PDEBUG(__function, __format, ...) fprintf(stderr, \
00093 "%20s:%-4d %30s" __format "\n", __FILE__, __LINE__, __function, __VA_ARGS__);
00094 #else
00095 #define PDEBUG(__function, __format, ...)
00096 #endif
00097
00100 #ifdef __cplusplus
00101 }
00102 #endif
00103
00104 #endif