version 1.13.2.5, 2011/12/14 15:00:24
|
version 1.13.2.9, 2012/01/05 09:03:06
|
Line 115 struct tagReqXML {
|
Line 115 struct tagReqXML {
|
/* AIT RPC variables and managment */ |
/* AIT RPC variables and managment */ |
|
|
typedef enum { |
typedef enum { |
empty, /* empty -> variable is not set */ | empty, ptr, /* empty -> variable is not set; ptr -> void* */ |
buffer, string, blob, /* buffer -> uint8_t*; string -> int8_t*; blob -> void*(+socket); */ | buffer, string, blob, /* buffer -> uint8_t*; string -> int8_t*; blob -> uint32_t blobID(+socket); */ |
f32, f64, /* float -> f32; double -> f64 */ |
f32, f64, /* float -> f32; double -> f64 */ |
u8, u16, u32, u64, /* unsigned integers ... */ |
u8, u16, u32, u64, /* unsigned integers ... */ |
i8, i16, i32, i64, /* integers ... */ |
i8, i16, i32, i64, /* integers ... */ |
Line 129 typedef struct {
|
Line 129 typedef struct {
|
union { |
union { |
uint64_t net; |
uint64_t net; |
|
|
|
void *ptr; |
uint8_t *buffer; |
uint8_t *buffer; |
int8_t *string; |
int8_t *string; |
uint32_t blob; |
uint32_t blob; |
Line 150 typedef struct {
|
Line 151 typedef struct {
|
#define AIT_BLOB_CHUNKS(_vl, _n) (assert((_vl)), AIT_LEN((_vl)) / _n + (AIT_LEN((_vl)) % _n) ? 1 : 0) |
#define AIT_BLOB_CHUNKS(_vl, _n) (assert((_vl)), AIT_LEN((_vl)) / _n + (AIT_LEN((_vl)) % _n) ? 1 : 0) |
#define AIT_ISEMPTY(_vl) (assert((_vl)), AIT_TYPE((_vl)) == empty) |
#define AIT_ISEMPTY(_vl) (assert((_vl)), AIT_TYPE((_vl)) == empty) |
|
|
|
#define AIT_GET_PTR(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == ptr), (_vl)->val.ptr) |
|
#define AIT_GET_PTR2(_vl) (assert((_vl)), (_vl)->val.ptr) |
#define AIT_GET_BUF(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == buffer), (_vl)->val.buffer) |
#define AIT_GET_BUF(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == buffer), (_vl)->val.buffer) |
#define AIT_GET_STR(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == string), (_vl)->val.string) |
#define AIT_GET_STR(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == string), (_vl)->val.string) |
#define AIT_GET_BLOB(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == blob), (_vl)->val.blob) |
#define AIT_GET_BLOB(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == blob), (_vl)->val.blob) |
Line 164 typedef struct {
|
Line 167 typedef struct {
|
#define AIT_GET_F32(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == f32), (_vl)->val.f32) |
#define AIT_GET_F32(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == f32), (_vl)->val.f32) |
#define AIT_GET_F64(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == f64), (_vl)->val.f64) |
#define AIT_GET_F64(_vl) (assert((_vl)), assert(AIT_TYPE((_vl)) == f64), (_vl)->val.f64) |
|
|
#define AIT_SET_BUF(_vl, _v, _len) do { ait_val_t *__val = (_vl); assert(__val); assert((_v)); \ | #define AIT_SET_PTR(_vl, _p, _len) do { ait_val_t *__val = (_vl); assert(__val); \ |
| __val->val_type = ptr; AIT_LEN(__val) = _len; \ |
| __val->val.ptr = _p; } while (0) |
| #define AIT_SET_BUF(_vl, _v, _len) do { ait_val_t *__val = (_vl); assert(__val); \ |
__val->val.buffer = malloc(_len); \ |
__val->val.buffer = malloc(_len); \ |
if (__val->val.buffer) { \ |
if (__val->val.buffer) { \ |
__val->val_type = buffer; AIT_LEN(__val) = _len; \ |
__val->val_type = buffer; AIT_LEN(__val) = _len; \ |
memcpy(__val->val.buffer, (_v), _len); \ |
memcpy(__val->val.buffer, (_v), _len); \ |
} } while (0) |
} } while (0) |
#define AIT_SET_STR(_vl, _v) do { ait_val_t *__val = (_vl); assert(__val); assert((_v)); \ | #define AIT_SET_STR(_vl, _v) do { ait_val_t *__val = (_vl); assert(__val); \ |
__val->val.string = (int8_t*) strdup((_v)); \ |
__val->val.string = (int8_t*) strdup((_v)); \ |
if (__val->val.string) { \ |
if (__val->val.string) { \ |
__val->val_type = string; \ |
__val->val_type = string; \ |
AIT_LEN(__val) = strlen((_v)) + 1; \ |
AIT_LEN(__val) = strlen((_v)) + 1; \ |
} } while (0) |
} } while (0) |
|
#define AIT_SET_STRCAT(_vl, _v) do { ait_val_t *__val = (_vl); assert(__val); \ |
|
assert(AIT_TYPE(__val) == string); \ |
|
void *__p = realloc(AIT_LEN(__val) + strlen((_v))); \ |
|
if (__p) { \ |
|
__val->val.string = __p; \ |
|
AIT_LEN(__val) += strlen((_v)); \ |
|
strlcat(__val->val.string, (_v), AIT_LEN(__val)); \ |
|
} } while (0) |
#define AIT_SET_BLOB(_vl, _n, _len) do { ait_val_t *__val = (_vl); assert(__val); \ |
#define AIT_SET_BLOB(_vl, _n, _len) do { ait_val_t *__val = (_vl); assert(__val); \ |
__val->val_type = blob; AIT_LEN(__val) = _len; \ |
__val->val_type = blob; AIT_LEN(__val) = _len; \ |
__val->val.blob = _n; } while (0) |
__val->val.blob = _n; } while (0) |
Line 216 typedef struct {
|
Line 230 typedef struct {
|
AIT_LEN(__val) = sizeof(double); } while (0) |
AIT_LEN(__val) = sizeof(double); } while (0) |
|
|
/* if attribute zeroCopy is set not execute free() */ |
/* if attribute zeroCopy is set not execute free() */ |
#define AIT_FREE_VAL(_vl) do { ait_val_t *__val = (_vl); assert(__val); \ | #define AIT_FREE_VAL(_vl) do { ait_val_t *__val = (ait_val_t*) (_vl); assert(__val); \ |
switch (__val->val_type) { \ |
switch (__val->val_type) { \ |
case buffer: \ |
case buffer: \ |
if (__val->val.buffer) { \ |
if (__val->val.buffer) { \ |