Using WaitSets and Conditions.
More...
Using WaitSets and Conditions.
The following #includes are needed for the examples on this page
#include <iostream>
#include <dds/core/ddscore.hpp>
#include <dds/sub/ddssub.hpp>
Setting up a WaitSet
- Create a WaitSet and attach Conditions
waitset += guard_cond;
waitset += status_cond;
Waiting for Condition(s) to trigger
You have two ways to wait for Conditions to trigger: wait or dispatch.
- Wait example
for (uint32_t i = 0; i < active_conditions.size(); i++) {
if (active_conditions[i] == guard_cond) {
std::cout << "guard_cond was triggered\n";
} else if (active_conditions[i] == status_cond) {
std::cout << "status_cond was triggered\n";
}
}
- Dispatch example
reader1,
[]()
{
std::cout << "read_cond1 was triggered\n";
}
);
reader2,
[]()
{
std::cout << "read_cond2 was triggered\n";
}
);
waitset += read_cond1;
waitset += read_cond2;