+extern XBT_PUBLIC xbt::signal<void(double)> onTimeAdvance;
+
+/** Callback fired when the time cannot jump because of inter-actors deadlock */
+extern XBT_PUBLIC xbt::signal<void(void)> onDeadlock;
+
+template <class T> XBT_PRIVATE void netzoneByTypeRecursive(s4u::NetZone* current, std::vector<T*>* whereto)
+{
+ for (auto const& elem : *(current->getChildren())) {
+ netzoneByTypeRecursive(elem, whereto);
+ if (elem == dynamic_cast<T*>(elem))
+ whereto->push_back(dynamic_cast<T*>(elem));
+ }
+}