Custom message_filters implementation. How?
What I tried:
After studying the message_filters documenation, message_filters
appear to me as a powerful tool for topic synchronization. I see how this is indeed realized in the elegant interfaces of the stated TimeSynchronizer
, TimeSequencer
, Cache
and Policy-Based Synchronizers.
But those listed implementations are quite limited considering that there apperar to be only two implemented policies for Policy-Based Synchronizers, one of which is ApproximateTime
and the other is ExactTime
which mimics TimeSynchronizer
.
So I see no easy way to synchronize topics in any other way than ExactTime
or ApproximateTime
. I tried eyballing approximate_time.h and exact_time.h but there is no documentation that would help me figure out how to write my own sync policy.
My question is:
Is there some documentation on the sync policy API or are there more examples of sync policy implementations? How can I avoid reverse engineering non-documented code that makes heavy use of metaprogramming?
Some context:
I'd like to have a synchronizer for multiple topics, say <A, B, C, D>
and I want my callback(A, B, C, D)
to be triggered only each new A
where for B, C
and D
just he most recent messages are passed to the callback. All of the data must be available before any callback. I see no way of doing this with the existing message_filter
implementation.
What I do now is to handle that logic in my node by heaving B, C, D
members which are updated in their own callback plus checking in the A
callback whether B, C, D
were already received. But this is such a common pattern and begs for encapsulation in a message filter!