geopm::ProfileIOGroup(3) – IOGroup providing application signals

Namespaces

The ProfileIOGroup class and the IOGroup class are members of the namespace geopm, but the full names, geopm::ProfileIOGroup and geopm::IOGroup, have been abbreviated in this manual. Similarly, the std:: namespace specifier has been omitted from the interface definitions for the following standard types: std::vector, std::string, std::set, std::unique_ptr, and std::function, to enable better rendering of this manual.

Synopsis

#include <geopm/ProfileIOGroup.hpp>

Link with -lgeopmd

set<string> ProfileIOGroup::signal_names(void) const override;

set<string> ProfileIOGroup::control_names(void) const override;

bool ProfileIOGroup::is_valid_signal(const string &signal_name) const override;

bool ProfileIOGroup::is_valid_control(const string &control_name) const override;

int ProfileIOGroup::signal_domain_type(const string &signal_name) const override;

int ProfileIOGroup::control_domain_type(const string &control_name) const override;

int ProfileIOGroup::push_signal(const string &signal_name,
                                int domain_type,
                                int domain_idx) override;

int ProfileIOGroup::push_control(const string &control_name,
                                 int domain_type,
                                 int domain_idx) override;

void ProfileIOGroup::read_batch(void) override;

void ProfileIOGroup::write_batch(void) override;

double ProfileIOGroup::sample(int signal_idx) override;

void ProfileIOGroup::adjust(int control_idx,
                            double setting) override;

double ProfileIOGroup::read_signal(const string &signal_name,
                                   int domain_type,
                                   int domain_idx) override;

void ProfileIOGroup::write_control(const string &control_name,
                                   int domain_type,
                                   int domain_idx,
                                   double setting) override;

void ProfileIOGroup::save_control(void) override;

void ProfileIOGroup::restore_control(void) override;

function<double(const vector<double> &)> ProfileIOGroup::agg_function(const string &signal_name) const override;

function<string(double)> ProfileIOGroup::format_function(const string &signal_name) const override;

string ProfileIOGroup::signal_description(const string &signal_name) const override;

string ProfileIOGroup::control_description(const string &control_name) const override;

int ProfileIOGroup::signal_behavior(const string &signal_name) const override;

void ProfileIOGroup::save_control(const string &save_path) override;

void ProfileIOGroup::restore_control(const string &save_path) override;

static string ProfileIOGroup::plugin_name(void);

static unique_ptr<IOGroup> ProfileIOGroup::make_plugin(void);

void ProfileIOGroup::connect(void);

Description

The ProfileIOGroup class is a derived implementation of geopm::IOGroup(3) that provides signals from the application. Consequently, it inherits and overrides many of the methods of the IOGroup class. These overridden methods are described in the IOGroup man page. Only the methods unique to the ProfileIOGroup class are described here.

For more details, see the doxygen page at https://geopm.github.io/geopm-runtime-dox/classgeopm_1_1_profile_i_o_group.html.

Class Methods

plugin_name()

Returns the name of the plugin; for ProfileIOGroup it is GEOPM_PROFILE_IO_GROUP_PLUGIN_NAME, which expands to "PROFILE".

make_plugin()

Creates a new unique_ptr<ProfileIOGroup> and returns it.

connect()

Connect to the application via shared memory.

See Also

geopm(7), geopm::IOGroup(3)