Switch to side-by-side view

--- a/src/DAF/AE/AEListeners.cc
+++ b/src/DAF/AE/AEListeners.cc
@@ -13,15 +13,81 @@
 // along with this program.  If not, see http://www.gnu.org/licenses/.
 // 
 
+#include "AE.h"
 #include "AEListeners.h"
-#include "AE.h"
 
-AEListeners::AEListeners() {
-    // TODO Auto-generated constructor stub
-
+AEListeners::AEListeners(AE* nae) : ae(nae)
+{
 }
 
 AEListeners::~AEListeners() {
-    // TODO Auto-generated destructor stub
+    ae = NULL;
 }
 
+void LisAEReceiveData::receiveSignal(cComponent* src, simsignal_t id,
+        cObject* obj) {
+    EV << "ReceiveData initiated by " << src->getFullPath()
+       << " and processed by " << ae->getFullPath() << endl;
+    CDAPMessage* msg = dynamic_cast<CDAPMessage*>(obj);
+    if (msg) {
+        ae->receiveData(msg);
+    }
+    else
+        EV << "AEListener received unknown object!" << endl;
+}
+
+void LisAEAllReqFromFai::receiveSignal(cComponent* src, simsignal_t id,
+        cObject* obj) {
+    EV << "AllocationRequest{fromFAI} initiated by " << src->getFullPath()
+       << " and processed by " << ae->getFullPath() << endl;
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow) {
+        //Check whether dstApp is local...
+        const APN dstApn = flow->getSrcApni().getApn();
+        if (ae->getApni().getApn() == dstApn)
+            ae->receiveAllocationRequestFromFAI(flow);
+    }
+    else
+        EV << "AEListener received unknown object!" << endl;
+}
+
+void LisAEAllResPosi::receiveSignal(cComponent* src, simsignal_t id,
+        cObject* obj) {
+    EV << "AllocateResponsePositive initiated by " << src->getFullPath()
+       << " and processed by " << ae->getFullPath() << endl;
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow) {
+        if (ae->hasFlow(flow))
+            ae->receiveAllocationResponsePositive(flow);
+    }
+    else
+        EV << "AEListener received unknown object!" << endl;
+}
+
+void LisAEAllResNega::receiveSignal(cComponent* src, simsignal_t id,
+        cObject* obj) {
+    EV << "AllocateResponseNegative initiated by " << src->getFullPath()
+       << " and processed by " << ae->getFullPath() << endl;
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow) {
+        if (ae->hasFlow(flow))
+            ae->receiveAllocationResponsePositive(flow);
+    }
+    else
+        EV << "AEListener received unknown object!" << endl;
+}
+
+void LisAEDeallReqFromFai::receiveSignal(cComponent* src, simsignal_t id,
+        cObject* obj) {
+    EV << "DeallocationRequest{fromFAI} initiated by " << src->getFullPath()
+       << " and processed by " << ae->getFullPath() << endl;
+    Flow* flow = dynamic_cast<Flow*>(obj);
+    if (flow) {
+        //Check whether dstApp is local...
+        const APN dstApn = flow->getSrcApni().getApn();
+        if (ae->getApni().getApn() == dstApn && ae->hasFlow(flow))
+            ae->receiveDeallocationRequestFromFAI(flow);
+    }
+    else
+        EV << "AEListener received unknown object!" << endl;
+}