comparison dyncallback/dyncall_args.h @ 544:111236b31c75

- C++ non-trivial aggregate-by-value handling: * dyncallback support for dcbArgAggr() * better doc
author Tassilo Philipp
date Tue, 31 May 2022 18:25:13 +0200
parents 71c884e610f0
children
comparison
equal deleted inserted replaced
543:781b308aa320 544:111236b31c75
59 DC_API DCulong dcbArgULong (DCArgs* p); 59 DC_API DCulong dcbArgULong (DCArgs* p);
60 DC_API DCulonglong dcbArgULongLong(DCArgs* p); 60 DC_API DCulonglong dcbArgULongLong(DCArgs* p);
61 DC_API DCfloat dcbArgFloat (DCArgs* p); 61 DC_API DCfloat dcbArgFloat (DCArgs* p);
62 DC_API DCdouble dcbArgDouble (DCArgs* p); 62 DC_API DCdouble dcbArgDouble (DCArgs* p);
63 DC_API DCpointer dcbArgPointer (DCArgs* p); 63 DC_API DCpointer dcbArgPointer (DCArgs* p);
64 DC_API void dcbArgAggr (DCArgs* p, DCpointer target); 64 /* for trivial aggrs: 'target' points to space to copy aggr to, returns 'target'
65 for C++ non-trivial aggrs: target is ignored, returns ptr to aggr arg */
66 DC_API DCpointer dcbArgAggr (DCArgs* p, DCpointer target);
65 67
66 /* function helper to put a to be returned struct-by-value into the 'result' 68 /* helper func to put a to be returned struct-by-value into the 'result'
67 param of the callback handler, in order to return it */ 69 param of the callback handler; for C++ non-trivial aggrs, pass NULL in
70 'ret', then copy aggr into result->p */
68 DC_API void dcbReturnAggr(DCArgs *args, DCValue *result, DCpointer ret); 71 DC_API void dcbReturnAggr(DCArgs *args, DCValue *result, DCpointer ret);
69 72
70 #ifdef __cplusplus 73 #ifdef __cplusplus
71 } 74 }
72 #endif 75 #endif