Template Class Chain
Defined in File chain.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Types
public message_filters::ChainBase
(Class ChainBase)public message_filters::SimpleFilter< M >
(Template Class SimpleFilter)
Class Documentation
-
template<typename M>
class Chain : public message_filters::ChainBase, public message_filters::SimpleFilter<M> Chains a dynamic number of simple filters together. Allows retrieval of filters by index after they are added.
The Chain filter provides a container for simple filters. It allows you to store an N-long set of filters inside a single structure, making it much easier to manage them.
Adding filters to the chain is done by adding shared_ptrs of them to the filter. They are automatically connected to each other and the output of the last filter in the chain is forwarded to the callback you’ve registered with Chain::registerCallback
Example:
void myCallback(const MsgConstPtr& msg) { } Chain<Msg> c; c.addFilter(std::make_shared<PassThrough<Msg> >()); c.addFilter(std::make_shared<PassThrough<Msg> >()); c.registerCallback(myCallback);
It is also possible to pass bare pointers in, which will not be automatically deleted when Chain is destructed:
Chain<Msg> c; PassThrough<Msg> p; c.addFilter(&p); c.registerCallback(myCallback);
Public Functions
-
inline Chain()
Default constructor.
-
template<class F>
inline size_t addFilter(F *filter) Add a filter to this chain, by bare pointer. Returns the index of that filter in the chain.
Add a filter to this chain, by shared_ptr. Returns the index of that filter in the chain.
Retrieve a filter from this chain by index. Returns an empty shared_ptr if the index is greater than the size of the chain. NOT type-safe.
- Parameters:
F – [template] The type of the filter
index – The index of the filter (returned by addFilter())
Protected Functions
-
inline virtual std::shared_ptr<void> getFilterForIndex(size_t index) const
-
inline Chain()