From 1ac5af190b68f63e94b698fb066ec60601cf584e Mon Sep 17 00:00:00 2001 From: parker Date: Wed, 16 Jul 2025 16:23:23 +0100 Subject: [PATCH] feat(plugin): add name arguments to addOperator function --- src/Engine/Operator/GeometryOpDef.h | 1 + src/Engine/Operator/OperatorTable.cpp | 3 ++- src/Engine/Operator/OperatorTable.h | 3 ++- src/Engine/Types.h | 1 - src/Gui/main.cpp | 2 +- src/OpDefs/main.cpp | 6 ++++-- tests/main-tests.cpp | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Engine/Operator/GeometryOpDef.h b/src/Engine/Operator/GeometryOpDef.h index 2c5a24e..2a671df 100644 --- a/src/Engine/Operator/GeometryOpDef.h +++ b/src/Engine/Operator/GeometryOpDef.h @@ -30,4 +30,5 @@ protected: }; using opConstructor = GeometryOpDef* (*)(enzo::nt::OpId); + } diff --git a/src/Engine/Operator/OperatorTable.cpp b/src/Engine/Operator/OperatorTable.cpp index 86c39a6..cbff63a 100644 --- a/src/Engine/Operator/OperatorTable.cpp +++ b/src/Engine/Operator/OperatorTable.cpp @@ -2,9 +2,10 @@ #include -void enzo::op::OperatorTable::addOperator(nt::opConstructor ctorFunc) +void enzo::op::OperatorTable::addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc) { std::cout << "OPERATOR TABLE ADDED\n"; + std::cout << "adding operator: " << displayName << "\n"; ctorStore_.push_back(ctorFunc); } diff --git a/src/Engine/Operator/OperatorTable.h b/src/Engine/Operator/OperatorTable.h index 95b46dd..1ed6949 100644 --- a/src/Engine/Operator/OperatorTable.h +++ b/src/Engine/Operator/OperatorTable.h @@ -9,10 +9,11 @@ namespace enzo::op class BOOST_SYMBOL_EXPORT OperatorTable { public: - static void addOperator(nt::opConstructor ctorFunc); + static void addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc); static nt::opConstructor getOpConstructor(size_t pos); private: static std::vector ctorStore_; }; +using addOperatorPtr = void (*)(const char* internalName, const char* displayName, nt::opConstructor ctorFunc); } diff --git a/src/Engine/Types.h b/src/Engine/Types.h index 546cdfe..84ff885 100644 --- a/src/Engine/Types.h +++ b/src/Engine/Types.h @@ -37,6 +37,5 @@ namespace enzo Input, Output }; - } } diff --git a/src/Gui/main.cpp b/src/Gui/main.cpp index 238df80..86d6b12 100644 --- a/src/Gui/main.cpp +++ b/src/Gui/main.cpp @@ -17,7 +17,7 @@ int main(int argc, char **argv) QSurfaceFormat::setDefaultFormat(format); // setup table - auto initPlugin = boost::dll::import_symbol( + auto initPlugin = boost::dll::import_symbol( "build/src/OpDefs/libenzoOps1.so", "newSopOperator" ); diff --git a/src/OpDefs/main.cpp b/src/OpDefs/main.cpp index fdbcc71..303f689 100644 --- a/src/OpDefs/main.cpp +++ b/src/OpDefs/main.cpp @@ -7,10 +7,12 @@ #include extern "C" -{ BOOST_SYMBOL_EXPORT std::string myVar = "hello world"; - BOOST_SYMBOL_EXPORT void newSopOperator(void (*addOperator)(enzo::nt::opConstructor)) +{ + BOOST_SYMBOL_EXPORT void newSopOperator(enzo::op::addOperatorPtr addOperator) { addOperator( + "transform", + "Transform", &GopTransform::ctor ); } diff --git a/tests/main-tests.cpp b/tests/main-tests.cpp index 2e3260f..e005d19 100644 --- a/tests/main-tests.cpp +++ b/tests/main-tests.cpp @@ -35,7 +35,7 @@ TEST_CASE("boost dll") ); std::cout << "VAR: " << *cpp_var << "\n"; - auto cpp11_func = boost::dll::import_symbol( + auto cpp11_func = boost::dll::import_symbol( "build/src/OpDefs/libenzoOps1.so", "newSopOperator" );