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);
}

View File

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

View File

@@ -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<nt::opConstructor> ctorStore_;
};
using addOperatorPtr = void (*)(const char* internalName, const char* displayName, nt::opConstructor ctorFunc);
}

View File

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

View File

@@ -17,7 +17,7 @@ int main(int argc, char **argv)
QSurfaceFormat::setDefaultFormat(format);
// 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"
);

View File

@@ -7,10 +7,12 @@
#include <iostream>
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
);
}

View File

@@ -35,7 +35,7 @@ TEST_CASE("boost dll")
);
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"
);