MIRA
Public Member Functions | List of all members
ChannelInterval< T > Class Template Reference

Class that can be registered as a filter when subscribing to channels to only get a callback in a specified interval. More...

#include <filter/ChannelInterval.h>

Public Member Functions

 ChannelInterval ()
 
 ChannelInterval (Duration iv)
 
Channel< T > subscribe (Authority &authority, const std::string &channelID, boost::function< void(ChannelRead< T >)> fn)
 Call this instead of Authority::subscribe() More...
 
template<typename Class >
Channel< T > subscribe (Authority &authority, const std::string &channelID, void(Class::*f)(ChannelRead< T >), Class *obj)
 Same as above but with a function and object pointer. More...
 
void setInterval (Duration iv)
 
Duration interval () const
 
Time last () const
 
void callback (ChannelRead< T > value)
 Called when channel has new data. More...
 

Detailed Description

template<typename T>
class mira::ChannelInterval< T >

Class that can be registered as a filter when subscribing to channels to only get a callback in a specified interval.

The constructor takes the function pointer to the proper callback and the class' callback method is registered instead.

class MyUnit : public MicroUnit
{
MyUnit() :
myFilter(Duration::seconds(2)) {}
void initialize()
{
myFilter.subscribe(*this, "IntChannel", &MyUnit::callback, this);
}
void onCallback(ChannelRead<int> channel)
{}
ChannelInterval<int> myFilter;
}

Constructor & Destructor Documentation

◆ ChannelInterval() [1/2]

ChannelInterval ( )
inline

◆ ChannelInterval() [2/2]

ChannelInterval ( Duration  iv)
inline

Member Function Documentation

◆ subscribe() [1/2]

Channel<T> subscribe ( Authority authority,
const std::string &  channelID,
boost::function< void(ChannelRead< T >)>  fn 
)
inline

Call this instead of Authority::subscribe()

Parameters
authorityThe authority that does the basic subscription
channelIDThe ID of the channel we are subscribing on
fnThe function that should be called when the filter matches
Returns
The channel subscribed on

◆ subscribe() [2/2]

Channel<T> subscribe ( Authority authority,
const std::string &  channelID,
void(Class::*)(ChannelRead< T >)  f,
Class obj 
)
inline

Same as above but with a function and object pointer.

Provided for convenience.

◆ setInterval()

void setInterval ( Duration  iv)
inline

◆ interval()

Duration interval ( ) const
inline

◆ last()

Time last ( ) const
inline

◆ callback()

void callback ( ChannelRead< T >  value)
inline

Called when channel has new data.


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