feat(plugin): add name arguments to addOperator function

This commit is contained in:
parker
2025-07-16 16:23:23 +01:00
parent 6d00c92f0f
commit 1ac5af190b
7 changed files with 11 additions and 7 deletions

View File

@@ -30,4 +30,5 @@ protected:
}; };
using opConstructor = GeometryOpDef* (*)(enzo::nt::OpId); using opConstructor = GeometryOpDef* (*)(enzo::nt::OpId);
} }

View File

@@ -2,9 +2,10 @@
#include <iostream> #include <iostream>
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 << "OPERATOR TABLE ADDED\n";
std::cout << "adding operator: " << displayName << "\n";
ctorStore_.push_back(ctorFunc); ctorStore_.push_back(ctorFunc);
} }

View File

@@ -9,10 +9,11 @@ namespace enzo::op
class BOOST_SYMBOL_EXPORT OperatorTable class BOOST_SYMBOL_EXPORT OperatorTable
{ {
public: 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); static nt::opConstructor getOpConstructor(size_t pos);
private: private:
static std::vector<nt::opConstructor> ctorStore_; static std::vector<nt::opConstructor> ctorStore_;
}; };
using addOperatorPtr = void (*)(const char* internalName, const char* displayName, nt::opConstructor ctorFunc);
} }

View File

@@ -37,6 +37,5 @@ namespace enzo
Input, Input,
Output Output
}; };
} }
} }

View File

@@ -17,7 +17,7 @@ int main(int argc, char **argv)
QSurfaceFormat::setDefaultFormat(format); QSurfaceFormat::setDefaultFormat(format);
// setup table // setup table
auto initPlugin = boost::dll::import_symbol<void(void (*addOperator)(enzo::nt::opConstructor))>( auto initPlugin = boost::dll::import_symbol<void(enzo::op::addOperatorPtr)>(
"build/src/OpDefs/libenzoOps1.so", "newSopOperator" "build/src/OpDefs/libenzoOps1.so", "newSopOperator"
); );

View File

@@ -7,10 +7,12 @@
#include <iostream> #include <iostream>
extern "C" 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( addOperator(
"transform",
"Transform",
&GopTransform::ctor &GopTransform::ctor
); );
} }

View File

@@ -35,7 +35,7 @@ TEST_CASE("boost dll")
); );
std::cout << "VAR: " << *cpp_var << "\n"; std::cout << "VAR: " << *cpp_var << "\n";
auto cpp11_func = boost::dll::import_symbol<void(void (*addOperator)(enzo::nt::opConstructor))>( auto cpp11_func = boost::dll::import_symbol<void(enzo::op::addOperatorPtr)>(
"build/src/OpDefs/libenzoOps1.so", "newSopOperator" "build/src/OpDefs/libenzoOps1.so", "newSopOperator"
); );