Switch to side-by-side view

--- a/src/DIF/RA/RAListeners.cc
+++ b/src/DIF/RA/RAListeners.cc
@@ -1,3 +1,5 @@
+//
+// Copyright Š 2014 - 2015 PRISTINE Consortium (http://ict-pristine.eu)
 //
 // This program is free software: you can redistribute it and/or modify
 // it under the terms of the GNU Lesser General Public License as published by
@@ -14,6 +16,8 @@
 // 
 
 #include <RAListeners.h>
+
+#include "RMTQueue.h"
 
 RAListeners::RAListeners(RABase* nra) : ra(nra)
 {
@@ -76,3 +80,58 @@
         EV << "RAListener received unknown object!" << endl;
     }
 }
+
+void LisEFCPStopSending::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow)
+    {
+        ra->blockNM1PortOutput(flow);
+    }
+    else
+    {
+        EV << "RAListener received unknown object!" << endl;
+    }
+}
+
+void LisEFCPStartSending::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow)
+    {
+        ra->unblockNM1PortOutput(flow);
+    }
+    else
+    {
+        EV << "RAListener received unknown object!" << endl;
+    }
+}
+
+void LisRMTPortDrainDisable::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    ra->blockNM1PortInput(obj);
+}
+
+void LisRMTPortDrainEnable::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    ra->unblockNM1PortInput(obj);
+}
+
+void LisRMTSlowdownRequest::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    cPacket* pdu = dynamic_cast<cPacket*>(obj);
+    if (pdu)
+    {
+        ra->signalizeSlowdownRequestToRIBd(pdu);
+    }
+    else
+    {
+        EV << "RAListener received unknown object!" << endl;
+    }
+}
+
+void LisRIBCongNotif::receiveSignal(cComponent* src, simsignal_t id, cObject* obj)
+{
+    ra->signalizeSlowdownRequestToEFCP(obj);
+}
+