]>
Commit | Line | Data |
---|---|---|
c23c8659 ML |
1 | vector<const QuantityFlag *> |
2 | QuantityFlag::flags_from_mask(unsigned int mask) | |
3 | { | |
4 | auto result = vector<const QuantityFlag *>(); | |
5 | while (mask) | |
6 | { | |
7 | unsigned int new_mask = mask & (mask - 1); | |
8 | result.push_back(QuantityFlag::get( | |
9 | static_cast<enum sr_mqflag>(mask ^ new_mask))); | |
10 | mask = new_mask; | |
11 | } | |
12 | return result; | |
13 | } | |
b2db9f3b ML |
14 | |
15 | unsigned int QuantityFlag::mask_from_flags(vector<const QuantityFlag *> flags) | |
16 | { | |
17 | unsigned int result = 0; | |
18 | for (auto flag : flags) | |
19 | result |= flag->id(); | |
20 | return result; | |
21 | } |