GreenCloud Simulator
bestscorescheduler.cc
Go to the documentation of this file.
1 /*
2  * bestscorescheduler.cc
3  *
4  * Created on: Jan 23, 2014
5  * Author: Guzek:Mateusz
6  */
7 
8 #include "bestscorescheduler.h"
9 
11 
12 
13 }
14 
16 
17 }
18 
19 TskComAgent* BestScoreScheduler::scheduleTask(CloudTask* task, std::vector<ResourceProvider* > providers){
20  vector<ProviderScore> scored_providers_;
21  vector <ResourceProvider*>::iterator iter;
22  for (iter = providers.begin(); iter!=providers.end(); iter++)
23  {
24  if ((*iter)->testSchedulingPossibility(task)){
25  scored_providers_.push_back(ProviderScore((*iter),calculateScore((*iter))));
26  } else {
27 // std::cerr << "Provider full!\n";
28  }
29  }
30  if(scored_providers_.empty()){
31  return NULL;
32  } else {
33  ProviderScore best = (*max_element(scored_providers_.begin(),scored_providers_.end()));
34  scored_providers_.clear();
35  return best.provider_->getTskComAgent();
36  }
37 }
38 
virtual double calculateScore(ResourceProvider *rp)=0
virtual TskComAgent * scheduleTask(CloudTask *task, std::vector< ResourceProvider * > providers)
TskComAgent * getTskComAgent()
ResourceProvider * provider_
Definition: providerscore.h:16