--- 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);
+}
+