--- a/src/DIF/RMT/RMTModuleAllocator.cc
+++ b/src/DIF/RMT/RMTModuleAllocator.cc
@@ -175,6 +175,7 @@
port->getParentModule()->deleteGate(queue->getFullName());
qMonPolicy->preQueueRemoval(queue);
+ queue->callFinish();
queue->deleteModule();
}
@@ -205,6 +206,7 @@
removeQueues(port->getOutputQueues());
removeQueues(port->getInputQueues());
+ port->callFinish();
port->getParentModule()->deleteModule();
}
@@ -217,3 +219,17 @@
{
return interfacePort;
}
+
+RMTPort* RMTModuleAllocator::getPort(const char* name)
+{
+ cModule* portWrapper = getParentModule()->getSubmodule(name);
+ if (portWrapper)
+ {
+ return dynamic_cast<RMTPort*>(portWrapper->getSubmodule("port"));
+ }
+ else
+ {
+ return NULL;
+ }
+
+}