GreenCloud Simulator
Public Member Functions | Private Member Functions | List of all members
BestScoreScheduler Class Referenceabstract

#include <bestscorescheduler.h>

Inheritance diagram for BestScoreScheduler:
Inheritance graph
[legend]
Collaboration diagram for BestScoreScheduler:
Collaboration graph
[legend]

Public Member Functions

 BestScoreScheduler ()
 
virtual ~BestScoreScheduler ()
 
virtual TskComAgentscheduleTask (CloudTask *task, std::vector< ResourceProvider * > providers)
 
- Public Member Functions inherited from ScoreScheduler
 ScoreScheduler ()
 
virtual ~ScoreScheduler ()
 
- Public Member Functions inherited from DcScheduler
 DcScheduler ()
 
virtual ~DcScheduler ()
 

Private Member Functions

virtual double calculateScore (ResourceProvider *rp)=0
 

Detailed Description

Definition at line 14 of file bestscorescheduler.h.

Constructor & Destructor Documentation

BestScoreScheduler::BestScoreScheduler ( )

Definition at line 10 of file bestscorescheduler.cc.

10  {
11 
12 
13 }
BestScoreScheduler::~BestScoreScheduler ( )
virtual

Definition at line 15 of file bestscorescheduler.cc.

15  {
16 
17 }

Member Function Documentation

virtual double BestScoreScheduler::calculateScore ( ResourceProvider rp)
privatepure virtual

Implements ScoreScheduler.

Implemented in HerosScheduler, and BestDENS.

TskComAgent * BestScoreScheduler::scheduleTask ( CloudTask task,
std::vector< ResourceProvider * >  providers 
)
virtual

Implements DcScheduler.

Reimplemented in HerosScheduler, and BestDENS.

Definition at line 19 of file bestscorescheduler.cc.

19  {
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 }
virtual double calculateScore(ResourceProvider *rp)=0
TskComAgent * getTskComAgent()
ResourceProvider * provider_
Definition: providerscore.h:16

The documentation for this class was generated from the following files: