diff --git a/producer/api/c/include/asapo/producer_c.h b/producer/api/c/include/asapo/producer_c.h index 5e992bce3276a01233f54d3f3ec40e1e46857e32..190f013ec29799a152e5fafb34d6402f24e37a56 100644 --- a/producer/api/c/include/asapo/producer_c.h +++ b/producer/api/c/include/asapo/producer_c.h @@ -55,10 +55,10 @@ enum AsapoRequestHandlerType { //! c version of asapo::IngestModeFlags enum AsapoIngestModeFlags { - kTransferData = 1 << 0, - kTransferMetaDataOnly = 1 << 1, - kStoreInFilesystem = 1 << 2, - kStoreInDatabase = 1 << 3, + kTransferData = 1 << 0, + kTransferMetaDataOnly = 1 << 1, + kStoreInFilesystem = 1 << 2, + kStoreInDatabase = 1 << 3, }; const uint64_t kDefaultIngestMode = kTransferData | kStoreInFilesystem | kStoreInDatabase; @@ -114,6 +114,14 @@ AsapoStreamInfoHandle asapo_producer_get_last_stream(AsapoProducerHandle produce uint64_t timeout_ms, AsapoErrorHandle* error); +AsapoMessageHeaderHandle asapo_create_message_header(uint64_t message_id, + uint64_t data_size, + const char* file_name, + const char* user_metadata, + uint64_t dataset_substream, + uint64_t dataset_size, + AsapoBool auto_id); + int asapo_producer_send(AsapoProducerHandle producer, const AsapoMessageHeaderHandle message_header, void* data, diff --git a/producer/api/cpp/src/producer_c_glue.cpp b/producer/api/cpp/src/producer_c_glue.cpp index 24d1f09a8d18d395d8b59ac195143007adee34e1..2a4455626b8e1c143f6aff2ca583bc65e9ca71e4 100644 --- a/producer/api/cpp/src/producer_c_glue.cpp +++ b/producer/api/cpp/src/producer_c_glue.cpp @@ -104,6 +104,24 @@ extern "C" { uint64_t timeout_ms, AsapoErrorHandle* error); + AsapoMessageHeaderHandle asapo_create_message_header(uint64_t message_id, + uint64_t data_size, + const char* file_name, + const char* user_metadata, + uint64_t dataset_substream, + uint64_t dataset_size, + AsapoBool auto_id) { + return new AsapoHandlerHolder<asapo::MessageHeader>(new asapo::MessageHeader(message_id, + data_size, + file_name, + user_metadata, + dataset_substream, + dataset_size, + auto_id != 0)); + } + + + #define BUILD_WRAPPER asapo::RequestCallback wrapper = [ = ](asapo::RequestCallbackPayload payload, asapo::Error err) -> void { \ auto payLoadHandle = new AsapoHandlerHolder<asapo::RequestCallbackPayload>(&payload); \ auto errorHandle = new AsapoHandlerHolder<asapo::ErrorInterface>(err.release()); \