adamdebreceni commented on code in PR #2150:
URL: https://github.com/apache/nifi-minifi-cpp/pull/2150#discussion_r3091757902
##########
libminifi/src/core/extension/Extension.cpp:
##########
@@ -158,10 +150,19 @@ bool Extension::initialize(const
std::shared_ptr<minifi::Configure>& configure)
return false;
}
logger_->log_debug("Found initializer for '{}'", library_name_);
- auto init_fn = reinterpret_cast<void(*)(MinifiExtension*,
MinifiConfig*)>(init_symbol_ptr);
- auto config_handle = reinterpret_cast<MinifiConfig*>(configure.get());
- auto extension_handle = reinterpret_cast<MinifiExtension*>(this);
- init_fn(extension_handle, config_handle);
+
+ auto init_fn =
reinterpret_cast<void(*)(MinifiExtensionContext*)>(init_symbol_ptr);
+ Context extension_context{
+ .config = configure,
+ .create = [&] (Info info) -> Extension* {
+ if (info_) {
+ return nullptr;
+ }
+ info_ = std::move(info);
+ return this;
+ }
+ };
+ init_fn(reinterpret_cast<MinifiExtensionContext*>(&extension_context));
if (!info_) {
Review Comment:
documented its lifetime
##########
minifi-api/include/minifi-c/minifi-c.h:
##########
@@ -188,11 +188,11 @@ typedef struct MinifiExtensionCreateInfo {
MinifiStringView version;
void(*deinit)(void* user_data);
void* user_data;
- size_t processors_count;
- const MinifiProcessorClassDefinition* processors_ptr;
} MinifiExtensionCreateInfo;
-MinifiStatus MINIFI_CREATE_EXTENSION_FN(MinifiExtension* extension, const
MinifiExtensionCreateInfo* create_info);
+MinifiExtension* MINIFI_CREATE_EXTENSION_FN(MinifiExtensionContext*
extension_context, const MinifiExtensionCreateInfo* create_info);
+
+MinifiStatus MinifiRegisterProcessor(MinifiExtension* extension, const
MinifiProcessorClassDefinition* processor);
Review Comment:
incremented
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]