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