--- a/src/DAF/AE/AE.cc
+++ b/src/DAF/AE/AE.cc
@@ -1,17 +1,24 @@
+// The MIT License (MIT)
//
-// 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
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program. If not, see http://www.gnu.org/licenses/.
-//
+// Copyright (c) 2014-2016 Brno University of Technology, PRISTINE project
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
#include "AE.h"
@@ -65,17 +72,6 @@
lisAEAllResNega = new LisAEAllResNega(this);
catcher2->subscribe(SIG_FAI_AllocateResponseNegative, lisAEAllResNega);
-
- lisAEConResPosi = new LisAEConResPosi(this);
- catcher1->subscribe(SIG_CACE_ConnectionResponsePositive, lisAEConResPosi);
-
- lisAEConResNega = new LisAEConResNega(this);
- catcher1->subscribe(SIG_CACE_ConnectionResponseNegative, lisAEConResNega);
-
- lisAERelRes = new LisAERelRes(this);
- catcher1->subscribe(SIG_CACE_ReleaseResponse, lisAERelRes);
-
-
}
void AE::initialize() {
@@ -187,25 +183,27 @@
Enter_Method("receiveAllocationRequestFromFai()");
//EV << this->getFullPath() << " received AllocationRequest from FAI" << endl;
- //TODO: Vesely - More sophisticated decission
- if (QoSRequirements.countFeasibilityScore(flow->getQosParameters()) > 0) {
+ if ( QoSRequirements.compare(flow->getQosRequirements()) ) {
//Initialize flow within AE
FlowObject = flow;
insertFlow();
//EV << "======================" << endl << flow->info() << endl;
//Interconnect IRM and IPC
- Irm->receiveAllocationResponsePositiveFromIpc(flow) ?
- Irm->changeStatus(FlowObject, ConnectionTableEntry::CON_CONNECTPENDING)
- :
- Irm->changeStatus(FlowObject, ConnectionTableEntry::CON_ERROR);
+ bool status = Irm->receiveAllocationResponsePositiveFromIpc(flow);
//Change connection status
- changeConStatus(CONNECTION_PENDING);
- this->signalizeAllocateResponsePositive(FlowObject);
+ if (status) {
+ changeConStatus(CONNECTION_PENDING);
+ this->signalizeAllocateResponsePositive(FlowObject);
+ }
+ else {
+ EV << "IRM was unable to create bindings!" << endl;
+ }
}
else {
- this->signalizeAllocateResponseNegative(FlowObject);
+ EV << "QoS Requirement cannot be met, please check AE attributes!" << endl;
+ this->signalizeAllocateResponseNegative(flow);
}
}
@@ -233,9 +231,6 @@
Enter_Method("receiveAllocationResponsePositive()");
//Interconnect IRM and IPC
Irm->receiveAllocationResponsePositiveFromIpc(flow);
-
- //Change allocation status
- Irm->changeStatus(flow, ConnectionTableEntry::CON_CONNECTPENDING);
//Change connection status
changeConStatus(CONNECTION_PENDING);