geopm  3.1.1.dev214+gba4f9f6d
GEOPM - Global Extensible Open Power Manager
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
geopm::PowerBalancerAgent::Role Class Reference

#include <PowerBalancerAgent.hpp>

Inheritance diagram for geopm::PowerBalancerAgent::Role:
Inheritance graph
[legend]

Public Member Functions

virtual bool descend (const std::vector< double > &in_policy, std::vector< std::vector< double > > &out_policy)
 
virtual bool ascend (const std::vector< std::vector< double > > &in_sample, std::vector< double > &out_sample)
 
virtual bool adjust_platform (const std::vector< double > &in_policy)
 
virtual bool sample_platform (std::vector< double > &out_sample)
 
virtual void trace_values (std::vector< double > &values)
 

Public Attributes

std::vector< double > m_policy
 
const int M_NUM_NODE
 

Protected Member Functions

int step (size_t step_count) const
 
int step (void) const
 
const Stepstep_imp ()
 
 Role (int num_node)
 
virtual ~Role ()=default
 

Protected Attributes

const std::vector< std::shared_ptr< const Step > > M_STEP_IMP
 
int m_step_count
 

Constructor & Destructor Documentation

◆ Role()

geopm::PowerBalancerAgent::Role::Role ( int  num_node)
protected

◆ ~Role()

virtual geopm::PowerBalancerAgent::Role::~Role ( )
protectedvirtualdefault

Member Function Documentation

◆ adjust_platform()

bool geopm::PowerBalancerAgent::Role::adjust_platform ( const std::vector< double > &  in_policy)
virtual

Leaf role classes must implement this method, tree roles do not.

Reimplemented in geopm::PowerBalancerAgent::LeafRole.

◆ ascend()

bool geopm::PowerBalancerAgent::Role::ascend ( const std::vector< std::vector< double > > &  in_sample,
std::vector< double > &  out_sample 
)
virtual

Tree role classes must implement this method, leaf roles do not.

Reimplemented in geopm::PowerBalancerAgent::RootRole, and geopm::PowerBalancerAgent::TreeRole.

◆ descend()

bool geopm::PowerBalancerAgent::Role::descend ( const std::vector< double > &  in_policy,
std::vector< std::vector< double > > &  out_policy 
)
virtual

Tree role classes must implement this method, leaf roles do not.

Reimplemented in geopm::PowerBalancerAgent::RootRole, and geopm::PowerBalancerAgent::TreeRole.

◆ sample_platform()

bool geopm::PowerBalancerAgent::Role::sample_platform ( std::vector< double > &  out_sample)
virtual

Leaf role classes must implement this method, tree roles do not.

Reimplemented in geopm::PowerBalancerAgent::LeafRole.

◆ step() [1/2]

int geopm::PowerBalancerAgent::Role::step ( size_t  step_count) const
protected

◆ step() [2/2]

int geopm::PowerBalancerAgent::Role::step ( void  ) const
protected

◆ step_imp()

const PowerBalancerAgent::Step & geopm::PowerBalancerAgent::Role::step_imp ( )
protected

◆ trace_values()

void geopm::PowerBalancerAgent::Role::trace_values ( std::vector< double > &  values)
virtual

Leaf role classes must implement this method, tree roles do not.

Reimplemented in geopm::PowerBalancerAgent::LeafRole.

Member Data Documentation

◆ M_NUM_NODE

const int geopm::PowerBalancerAgent::Role::M_NUM_NODE

◆ m_policy

std::vector<double> geopm::PowerBalancerAgent::Role::m_policy

◆ m_step_count

int geopm::PowerBalancerAgent::Role::m_step_count
protected

◆ M_STEP_IMP

const std::vector<std::shared_ptr<const Step> > geopm::PowerBalancerAgent::Role::M_STEP_IMP
protected

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