helics  2.8.1
Public Member Functions | List of all members
helics::PublicationOnChange< X > Class Template Reference

#include <Publications.hpp>

+ Inheritance diagram for helics::PublicationOnChange< X >:

Public Member Functions

 PublicationOnChange (ValueFederate *valueFed, const std::string &key, const X &minChange, const std::string &units=std::string())
 
template<class FedPtr >
 PublicationOnChange (FedPtr &valueFed, const std::string &key, const X &minChange, const std::string &units=std::string())
 
virtual void publish (const X &val) const override
 
- Public Member Functions inherited from helics::PublicationT< X >
 PublicationT (ValueFederate *valueFed, const std::string &key, const std::string &units=std::string())
 
template<class FedPtr >
 PublicationT (FedPtr &valueFed, const std::string &key, const std::string &units=std::string())
 
 PublicationT (interface_visibility locality, ValueFederate *valueFed, const std::string &key, const std::string &units=std::string())
 
template<class FedPtr >
 PublicationT (interface_visibility locality, FedPtr &valueFed, const std::string &key, const std::string &units=std::string())
 
void publish (const X &val)
 
void publish (const X &val, const std::string &units)
 
- Public Member Functions inherited from helics::Publication
 Publication (ValueFederate *valueFed, interface_handle id, const std::string &key, const std::string &type, const std::string &units)
 
 Publication (ValueFederate *valueFed, const std::string &key, const std::string &type, const std::string &units=std::string())
 
template<class FedPtr >
 Publication (FedPtr valueFed, const std::string &key, const std::string &type=std::string(), const std::string &units=std::string())
 
 Publication (interface_visibility locality, ValueFederate *valueFed, const std::string &key, const std::string &type, const std::string &units=std::string())
 
template<class FedPtr >
 Publication (interface_visibility locality, FedPtr &valueFed, const std::string &key, const std::string &type, const std::string &units=std::string())
 
 Publication (ValueFederate *valueFed, const std::string &key, data_type type, const std::string &units=std::string())
 
template<class FedPtr >
 Publication (FedPtr &valueFed, const std::string &key, data_type type, const std::string &units=std::string())
 
 Publication (interface_visibility locality, ValueFederate *valueFed, const std::string &key, data_type type, const std::string &units=std::string())
 
template<class FedPtr >
 Publication (interface_visibility locality, FedPtr &valueFed, const std::string &key, data_type type, const std::string &units=std::string())
 
interface_handle getHandle () const
 
 operator interface_handle () const
 
bool isValid () const
 
bool operator== (const Publication &pub) const
 
bool operator!= (const Publication &pub) const
 
bool operator< (const Publication &pub) const
 
const std::string & getKey () const
 
const std::string & getName () const
 
const std::string & getType () const
 
const std::string & getUnits () const
 
const std::string & getInfo () const
 
void setInfo (const std::string &info)
 
void setOption (int32_t option, int32_t value=1)
 
int32_t getOption (int32_t option) const
 
void addTarget (const std::string &target)
 
void removeTarget (const std::string &targetToRemove)
 
void close ()
 
void publish (double val)
 
void publish (const char *val)
 
void publish (const std::string &val)
 
void publish (const std::vector< double > &val)
 
void publish (const std::vector< std::complex< double >> &val)
 
void publish (const double *vals, int size)
 
void publish (std::complex< double > val)
 
void publish (const defV &val)
 
void publish (bool val)
 
void publish (Time val)
 
void publish (char val)
 
void publish (const NamedPoint &np)
 
void publish (const std::string &name, double val)
 
void publish (const char *name, double val)
 
void publish (double val, const std::string &units)
 
void publish (double val, const units::precise_unit &units)
 
template<class X >
std::enable_if_t<(std::is_integral< X >::value &&!std::is_same< remove_cv_ref< X >, char >::value), void > publish (X val)
 
template<class X >
std::enable_if_t<((typeCategory< X >::value==nonConvertibleType) &&(!std::is_convertible< X, std::string >::value) &&(!std::is_same< X, defV >::value) &&(!std::is_convertible< X, Time >::value)), void > publish (const X &val)
 
void setMinimumChange (double deltaV) noexcept
 
void enableChangeDetection (bool enabled=true) noexcept
 

Additional Inherited Members

- Protected Attributes inherited from helics::Publication
ValueFederatefed {nullptr}
 the federate construct to interact with
 
interface_handle handle
 the internal id of the publication
 
data_type pubType {data_type::helics_any}
 the type of publication
 
bool changeDetectionEnabled {false}
 the change detection is enabled
 
bool disableAssign {false}
 disable assignment for the object
 

Detailed Description

template<class X>
class helics::PublicationOnChange< X >

class to handle a publication on change for an arbitrary type but the value is only published in the change is greater than a certain level

Constructor & Destructor Documentation

◆ PublicationOnChange() [1/2]

template<class X >
helics::PublicationOnChange< X >::PublicationOnChange ( ValueFederate valueFed,
const std::string &  key,
const X &  minChange,
const std::string &  units = std::string() 
)
inline

constructor to build a publishOnChange object

Parameters
valueFedthe ValueFederate to use
keythe identifier for the publication
minChangethe minimum change required to actually publish the value
unitsthe units associated with a Federate

◆ PublicationOnChange() [2/2]

template<class X >
template<class FedPtr >
helics::PublicationOnChange< X >::PublicationOnChange ( FedPtr &  valueFed,
const std::string &  key,
const X &  minChange,
const std::string &  units = std::string() 
)
inline

constructor to build a publishOnChange object

Parameters
valueFedthe ValueFederate to use
keythe identifier for the publication
minChangethe minimum change required to actually publish the value
unitsthe units associated with a Federate

Member Function Documentation

◆ publish()

template<class X >
virtual void helics::PublicationOnChange< X >::publish ( const X &  val) const
inlineoverridevirtual

send a value for publication

the value is only published if it exceeds the specified level

Parameters
valthe value to publish

References helics::PublicationT< X >::publish().


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