- 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->netcards_)
+ list->push_back(kv.second);
+}
+/** @brief Register a new netcard to the system */
+void Engine::netcardRegister(simgrid::kernel::routing::NetCard* card)
+{
+// simgrid::simix::kernelImmediate([&]{ FIXME: this segfaults in set_thread
+ pimpl->netcards_[card->name()] = card;
+// });
+}
+/** @brief Unregister a given netcard */
+void Engine::netcardUnregister(simgrid::kernel::routing::NetCard* card)
+{
+ simgrid::simix::kernelImmediate([&]{
+ pimpl->netcards_.erase(card->name());
+ });