feat: working operatorDef transfer

This commit is contained in:
parker
2025-07-13 17:39:52 +01:00
parent db5da8a2e8
commit 34a1df859a
4 changed files with 11 additions and 6 deletions

View File

@@ -8,3 +8,5 @@ void enzo::op::OperatorTable::addOperator(nt::opConstructor ctorFunc)
// ctorFunc(5); // ctorFunc(5);
ctorStore_.push_back(ctorFunc); ctorStore_.push_back(ctorFunc);
} }
std::vector<enzo::nt::opConstructor> enzo::op::OperatorTable::ctorStore_;

View File

@@ -8,8 +8,9 @@ namespace enzo::op
class BOOST_SYMBOL_EXPORT OperatorTable class BOOST_SYMBOL_EXPORT OperatorTable
{ {
public: public:
void addOperator(nt::opConstructor ctorFunc); static void addOperator(nt::opConstructor ctorFunc);
private: private:
std::vector<nt::opConstructor> ctorStore_; static std::vector<nt::opConstructor> ctorStore_;
}; };
} }

View File

@@ -8,9 +8,9 @@
extern "C" extern "C"
{ BOOST_SYMBOL_EXPORT std::string myVar = "hello world"; { BOOST_SYMBOL_EXPORT std::string myVar = "hello world";
BOOST_SYMBOL_EXPORT void newSopOperator(enzo::op::OperatorTable* table) BOOST_SYMBOL_EXPORT void newSopOperator(void (*addOperator)(enzo::nt::opConstructor))
{ {
table->addOperator( addOperator(
&GopTransform::ctor &GopTransform::ctor
); );
} }

View File

@@ -2,6 +2,8 @@
#include <oneapi/tbb/parallel_for.h> #include <oneapi/tbb/parallel_for.h>
#include <iostream> #include <iostream>
#include <boost/dll/import.hpp> #include <boost/dll/import.hpp>
#include "Engine/Network/NetworkManager.h"
#include "Engine/Operator/OperatorTable.h"
TEST_CASE("foo") TEST_CASE("foo")
{ {
@@ -33,10 +35,10 @@ TEST_CASE("boost dll")
); );
std::cout << "VAR: " << *cpp_var << "\n"; std::cout << "VAR: " << *cpp_var << "\n";
auto cpp11_func = boost::dll::import_symbol<void(int&&)>( auto cpp11_func = boost::dll::import_symbol<void(void (*addOperator)(enzo::nt::opConstructor))>(
"build/src/OpDefs/libenzoOps1.so", "newSopOperator" "build/src/OpDefs/libenzoOps1.so", "newSopOperator"
); );
cpp11_func(5); cpp11_func(enzo::op::OperatorTable::addOperator);
} }