| helics 3.6.1

Public Member Functions | Protected Attributes | Friends | List of all members
helics::Input Class Reference

`#include <Inputs.hpp>`

Inheritance diagram for helics::Input:

## Public Member Functions
| Input ()=default
| Input (ValueFederate *valueFed, InterfaceHandle id, std::string_view actName, std::string_view unitsOut={})
| Input (ValueFederate *valueFed, std::string_view key, std::string_view defaultType="def", std::string_view units={})
template<class FedPtr >
| Input (FedPtr &valueFed, std::string_view key, std::string_view defaultType="def", std::string_view units={})
| Input (InterfaceVisibility locality, ValueFederate *valueFed, std::string_view key, std::string_view defaultType="def", std::string_view units={})
template<class FedPtr >
| Input (InterfaceVisibility locality, FedPtr &valueFed, std::string_view key, std::string_view defaultType="def", std::string_view units={})
| Input (ValueFederate *valueFed, std::string_view key, DataType defType, std::string_view units={})
template<class FedPtr >
| Input (FedPtr &valueFed, std::string_view key, DataType defType, std::string_view units={})
| Input (InterfaceVisibility locality, ValueFederate *valueFed, std::string_view key, std::string_view units={})
template<class FedPtr >
| Input (InterfaceVisibility locality, FedPtr &valueFed, std::string_view key, std::string_view units={})
| Input (InterfaceVisibility locality, ValueFederate *valueFed, std::string_view key, DataType defType, std::string_view units={})
template<class FedPtr >
| Input (InterfaceVisibility locality, FedPtr &valueFed, std::string_view key, DataType defType, std::string_view units={})
Time | getLastUpdate () const
void | registerNotificationCallback (std::function< void(Time)> callback)
const std::string & | getPublicationType () const
const std::string & | getType () const
const std::string & | getUnits () const
void | addPublication (std::string_view target)
void | addTarget (std::string_view target)
bool | checkUpdate (bool assumeUpdate=false)
void | clearUpdate ()
bool | isUpdated ()
bool | isUpdated () const
virtual void | setOption (int32_t option, int32_t value=1) override
virtual int32_t | getOption (int32_t option) const override
template<class X >
void | setInputNotificationCallback (std::function< void(const X &, Time)> callback)
template<class X >
void | setDefault (X &&val)
void | setDefaultBytes (data_view val)
void | setMinimumChange (double deltaV) noexcept
void | enableChangeDetection (bool enabled=true) noexcept
int | getValue (double *data, int maxsize)
int | getComplexValue (double *data, int maxsize)
int | getValue (char *str, int maxsize)
template<class X >
void | getValue (X &out)
template<class X >
auto | getValue ()
template<class X >
const X & | getValueRef ()
double | getDouble ()
const std::string & | getString ()
data_view | getBytes ()
size_t | getByteCount ()
size_t | getStringSize ()
size_t | getVectorSize ()
DataType | getHelicsType () const
DataType | getHelicsInjectionType () const
MultiInputHandlingMethod | getMultiInputMode () const
bool | vectorDataProcess (const std::vector< std::shared_ptr< const SmallBuffer >> &dataV)
const std::string & | getTarget () const
virtual const std::string & | getDisplayName () const override
Public Member Functions inherited from helics::Interface
| Interface (Federate *federate, InterfaceHandle hid, std::string_view actName)
| Interface (Core *core, InterfaceHandle hid, std::string_view actName)
InterfaceHandle | getHandle () const
| operator InterfaceHandle () const
bool | isValid () const
bool | operator< (const Interface &inp) const
bool | operator> (const Interface &inp) const
bool | operator== (const Interface &inp) const
bool | operator!= (const Interface &inp) const
const std::string & | getLocalName () const
const std::string & | getName () const
const std::string & | getTarget () const
void | addSourceTarget (std::string_view newTarget, InterfaceType hint=InterfaceType::UNKNOWN)
void | addDestinationTarget (std::string_view newTarget, InterfaceType hint=InterfaceType::UNKNOWN)
void | removeTarget (std::string_view targetToRemove)
void | addAlias (std::string_view alias)
const std::string & | getInfo () const
void | setInfo (std::string_view info)
void | setTag (std::string_view tag, std::string_view value)
const std::string & | getTag (std::string_view tag) const
const std::string & | getInjectionType () const
const std::string & | getExtractionType () const
const std::string & | getInjectionUnits () const
const std::string & | getExtractionUnits () const
const std::string & | getSourceTargets () const
const std::string & | getDestinationTargets () const
std::size_t | getSourceTargetCount () const
std::size_t | getDestinationTargetCount () const
void | close ()
void | disconnectFromCore ()

## Protected Attributes
ValueFederate * | fed = nullptr
| reference to the value federate
Protected Attributes inherited from helics::Interface
Core * | mCore {nullptr}
| pointer to the core object
InterfaceHandle | handle {}
| the id as generated by the Federate
std::string | mName
| the name or key of the interface

## Friends
class | ValueFederateManager

## Detailed Description

base class for a input object

## Constructor & Destructor Documentation

## ◆ Input() [1/2]

helics::Input::Input | ( |  | ) |
| default

Default constructor

## ◆ Input() [2/2]

helics::Input::Input | ( | ValueFederate * | valueFed,
|  | InterfaceHandle | id,
|  | std::string_view | actName,
|  | std::string_view | unitsOut = `{}`
| ) |  |

construct from a federate and handle, mainly used by the valueFederateManager

## Member Function Documentation

## ◆ addPublication()

void helics::Input::addPublication | ( | std::string_view | target | ) |

add a publication for the inputs information

References helics::ValueFederate::addTarget(), and fed.

## ◆ addTarget()

void helics::Input::addTarget | ( | std::string_view | target | ) |
| inline

add a target to the input

## ◆ checkUpdate()

bool helics::Input::checkUpdate | ( | bool | assumeUpdate = `false` | ) |

check if the value has been updated

if changeDetection is Enabled this function also loads the value into the buffer

Parameters

  assumeUpdate | if set to true will assume there was a publication and not check it first, if set to false[default] it will check the federate first

Returns
  true if the value has been updated

References fed, helics::ValueFederate::getBytes(), and helics::ValueFederate::isUpdated().

Referenced by isUpdated(), and helics::ValueFederateManager::localQuery().

## ◆ clearUpdate()

void helics::Input::clearUpdate | ( |  | ) |

clear the isUpdated flag

References helics::ValueFederate::clearUpdate(), and fed.

Referenced by helics::ValueFederateManager::clearUpdates().

## ◆ enableChangeDetection()

void helics::Input::enableChangeDetection | ( | bool | enabled = `true` | ) |
| inline noexcept

enable change detection

Parameters

  enabled | (optional) set to false to disable change detection true(default) to enable it

## ◆ getByteCount()

size_t helics::Input::getByteCount | ( |  | ) |

get the size of the raw data

References fed, helics::ValueFederate::getBytes(), and isUpdated().

## ◆ getBytes()

data_view helics::Input::getBytes | ( |  | ) |

get the raw binary data

References fed, and helics::ValueFederate::getBytes().

## ◆ getComplexValue()

int helics::Input::getComplexValue | ( | double * | data,
|  | int | maxsize
| ) |  |

get a complex double vector value functions to retrieve data by a C array of doubles

## ◆ getDisplayName()

virtual const std::string& helics::Input::getDisplayName | ( |  | ) | const
| inline override virtual

get the display name for an input

the name is the given local name or if empty the name of the target

Implements helics::Interface.

Referenced by helics::ValueFederateManager::addTarget(), and helics::ValueFederateManager::localQuery().

## ◆ getDouble()

double helics::Input::getDouble | ( |  | ) |
| inline

get the current value as a Double

## ◆ getHelicsInjectionType()

DataType helics::Input::getHelicsInjectionType | ( |  | ) | const
| inline

get the HELICS data type for the publication

Referenced by helics::ValueFederateManager::localQuery().

## ◆ getHelicsType()

DataType helics::Input::getHelicsType | ( |  | ) | const
| inline

get the HELICS data type for the input

Referenced by helics::ValueFederateManager::localQuery().

## ◆ getLastUpdate()

Time helics::Input::getLastUpdate | ( |  | ) | const

get the time of the last update

Returns
  the time of the last update

References fed, and helics::ValueFederate::getLastUpdateTime().

## ◆ getOption()

int32_t helics::Input::getOption | ( | int32_t | option | ) | const
| override virtual

get the current value of a flag for the handle

Reimplemented from helics::Interface.

References helics::Interface::getOption(), and HELICS_HANDLE_OPTION_MULTI_INPUT_HANDLING_METHOD.

## ◆ getPublicationType()

const std::string& helics::Input::getPublicationType | ( |  | ) | const
| inline

get the type of the data coming from the publication

## ◆ getString()

const std::string& helics::Input::getString | ( |  | ) |
| inline

get the current value as a string

## ◆ getStringSize()

size_t helics::Input::getStringSize | ( |  | ) |

get the size of the data if it were a string

References isUpdated().

## ◆ getType()

const std::string& helics::Input::getType | ( |  | ) | const
| inline

get the type of the input

## ◆ getUnits()

const std::string& helics::Input::getUnits | ( |  | ) | const
| inline

get the units associated with a input

## ◆ getValue() [1/4]

template<class X >

auto helics::Input::getValue | ( |  | ) |
| inline

get the most recent value

Returns
  the value

## ◆ getValue() [2/4]

int helics::Input::getValue | ( | char * | str,
|  | int | maxsize
| ) |  |

get string value functions to retrieve data by a C string

## ◆ getValue() [3/4]

int helics::Input::getValue | ( | double * | data,
|  | int | maxsize
| ) |  |

get double vector value functions to retrieve data by a C array of doubles

## ◆ getValue() [4/4]

template<class X >

void helics::Input::getValue | ( | X & | out | ) |
| inline

get the latest value for the input

Parameters

  [out] | out | the location to store the value

## ◆ getVectorSize()

size_t helics::Input::getVectorSize | ( |  | ) |

get the number of elements in the data if it were a vector

References isUpdated().

## ◆ isUpdated() [1/2]

bool helics::Input::isUpdated | ( |  | ) |

check if the value has been updated including interpretation of the change detection

References checkUpdate().

Referenced by getByteCount(), getStringSize(), getVectorSize(), helics::ValueFederateManager::localQuery(), and registerNotificationCallback().

## ◆ isUpdated() [2/2]

bool helics::Input::isUpdated | ( |  | ) | const

check if the value has been updated,

the const version can in some circumstances return true even if the value would not be updated the circumstances in which this is true are a minimum change has been set, checkUpdate has not been call(meaning it is a standalone copy, not the one stored with the federate, and the value has been published but would not trigger the change detection. If this is to be avoided use the non-const version or call checkUpdate before calling this function.

References fed, and helics::ValueFederate::isUpdated().

## ◆ registerNotificationCallback()

void helics::Input::registerNotificationCallback | ( | std::function< void(Time)> | callback | ) |

register a callback for an update notification

the callback is called in the just before the time request function returns

Parameters

  callback | a function with signature void(Time time) where time is the time the value was updated. This callback is a notification callback and doesn't return the value

References fed, isUpdated(), and helics::ValueFederate::setInputNotificationCallback().

## ◆ setDefault()

template<class X >

void helics::Input::setDefault | ( | X && | val | ) |
| inline

set the default value to use before any update has been published

## ◆ setInputNotificationCallback()

template<class X >

void helics::Input::setInputNotificationCallback | ( | std::function< void(const X &, Time)> | callback | ) |
| inline

register a callback for the update

the callback is called in the just before the time request function returns

Parameters

  callback | a function with signature void(X val, Time time) val is the new value and time is the time the value was updated

## ◆ setMinimumChange()

void helics::Input::setMinimumChange | ( | double | deltaV | ) |
| inline noexcept

set the minimum delta for change detection

Parameters

  deltaV | a double with the change in a value in order to register a different value

## ◆ setOption()

void helics::Input::setOption | ( | int32_t | option,
|  | int32_t | value = `1`
| ) |  |
| override virtual

set a handle flag for the input

Reimplemented from helics::Interface.

References HELICS_HANDLE_OPTION_MULTI_INPUT_HANDLING_METHOD, and helics::Interface::setOption().

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

- Inputs.hpp
- Inputs.cpp