- xbt_lib_cursor_t cursor = nullptr;
- char* key;
- void* data;
- xbt_dict_foreach (netcards_dict, cursor, key, data) {
- list->push_back(static_cast<simgrid::kernel::routing::NetCard*>(data));
- }
+ for (auto kv : pimpl->netpoints_)
+ list->push_back(kv.second);
+}
+/** @brief Register a new netpoint to the system */
+void Engine::netpointRegister(simgrid::kernel::routing::NetPoint* point)
+{
+// simgrid::simix::kernelImmediate([&]{ FIXME: this segfaults in set_thread
+ pimpl->netpoints_[point->name()] = point;
+// });
+}
+/** @brief Unregister a given netpoint */
+void Engine::netpointUnregister(simgrid::kernel::routing::NetPoint* point)
+{
+ simgrid::simix::kernelImmediate([this, point] {
+ pimpl->netpoints_.erase(point->name());
+ delete point;
+ });