diff --git a/common/cpp/include/asapo/common/common_c.h b/common/cpp/include/asapo/common/common_c.h index 8755312a2303ce993e694bd48dae4b1c0f80415c..d9920cbf602b41cfbf9ddb90967ef01a43fcc8f6 100644 --- a/common/cpp/include/asapo/common/common_c.h +++ b/common/cpp/include/asapo/common/common_c.h @@ -4,15 +4,27 @@ #include <stdint.h> #include <time.h> -const unsigned AsapoHandleSize = 24; +#define AsapoHandleSize 24 typedef int AsapoBool; #ifndef __COMMON_C_INTERFACE_IMPLEMENTATION__ -typedef void* AsapoSourceCredentialsHandle; -typedef void* AsapoErrorHandle; -typedef void* AsapoStringHandle; -typedef void* AsapoStreamInfoHandle; -typedef void* AsapoStreamInfosHandle; -typedef void* AsapoMessageDataHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoSourceCredentialsHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoErrorHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoStringHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoStreamInfoHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoStreamInfosHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoMessageDataHandle; #endif //! c version of asapo::SourceType @@ -21,8 +33,8 @@ enum AsapoSourceType { kRaw }; - -void asapo_free_handle(void** handle); +#define asapo_free_handle(handle) asapo_free_handle__((void**)handle); +void asapo_free_handle__(void** handle); void* asapo_new_handle(); diff --git a/common/cpp/src/common/common_c_glue.cpp b/common/cpp/src/common/common_c_glue.cpp index 009dd57067bc674b55c7891e40b086acaec90574..4d942d70746a2c95b0f8e0fdaa58ebc3747b740e 100644 --- a/common/cpp/src/common/common_c_glue.cpp +++ b/common/cpp/src/common/common_c_glue.cpp @@ -56,7 +56,7 @@ extern "C" { //! free handle memory, set handle to NULL /// \param[in] pointer to an ASAPO handle - void asapo_free_handle(void** handle) { + void asapo_free_handle__(void** handle) { if (*handle == nullptr) { return; } diff --git a/consumer/api/c/include/asapo/consumer_c.h b/consumer/api/c/include/asapo/consumer_c.h index 069a4d7b902eee30168173094ffac0c16f189dfb..cf88fefe659384008b3e18fd23fa083572b61a3f 100644 --- a/consumer/api/c/include/asapo/consumer_c.h +++ b/consumer/api/c/include/asapo/consumer_c.h @@ -3,13 +3,27 @@ #include <asapo/common/common_c.h> #ifndef __CONSUMER_C_INTERFACE_IMPLEMENTATION__ -typedef void* AsapoConsumerHandle; -typedef void* AsapoMessageMetaHandle; -typedef void* AsapoMessageMetasHandle; -typedef void* AsapoIdListHandle; -typedef void* AsapoDataSetHandle; -typedef void* AsapoPartialErrorDataHandle; -typedef void* AsapoConsumerErrorDataHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoConsumerHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoMessageMetaHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoMessageMetasHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoIdListHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoDataSetHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoPartialErrorDataHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoConsumerErrorDataHandle; #include <time.h> #include <stdint.h> diff --git a/producer/api/c/include/asapo/producer_c.h b/producer/api/c/include/asapo/producer_c.h index e3f64bab8a6ded96e8abffda6700926ea2031138..f29bc92b564f5a5960e5d3d36ad1829b813b4613 100644 --- a/producer/api/c/include/asapo/producer_c.h +++ b/producer/api/c/include/asapo/producer_c.h @@ -3,9 +3,15 @@ #include "asapo/common/common_c.h" #ifndef __PRODUCER_C_INTERFACE_IMPLEMENTATION__ -typedef void* AsapoProducerHandle; -typedef void* AsapoRequestCallbackPayloadHandle; -typedef void* AsapoMessageHeaderHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoProducerHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoRequestCallbackPayloadHandle; +typedef struct { + char _[AsapoHandleSize]; +}* AsapoMessageHeaderHandle; #endif typedef void(*AsapoRequestCallback)(AsapoRequestCallbackPayloadHandle, AsapoErrorHandle);