return this->getPolicy<PolicyAccess>(m_access_set, policy_type, policy_type_value, policy);
}
-
-NaivePolicyDb::PolicySR::PolicyConstIterator::PolicyConstIterator(const std::vector< ItemSendReceive const *> & items, int position)
- : m_items(items), m_index(position) {
-}
-
-ItemSendReceive const *const& NaivePolicyDb::PolicySR::PolicyConstIterator::operator*() const {
- return m_items[m_index];
-}
-
-
-typename NaivePolicyDb::PolicySR::PolicyConstIterator& NaivePolicyDb::PolicySR::PolicyConstIterator::operator++() {
- if (m_index >= 0)
- --m_index;
- return *this;
-}
-
-
-bool NaivePolicyDb::PolicySR::PolicyConstIterator::operator!=(const PolicyConstIterator& it) const {
- return m_index != it.m_index;
-}
-
-
-NaivePolicyDb::PolicySR::PolicyConstIterator NaivePolicyDb::PolicySR::begin() const {
- int s = m_items.size() - 1;
- return NaivePolicyDb::PolicySR::PolicyConstIterator(m_items, s);
-}
-
-
-NaivePolicyDb::PolicySR::PolicyConstIterator NaivePolicyDb::PolicySR::end() const {
- return NaivePolicyDb::PolicySR::PolicyConstIterator(m_items, -1);
-}
-
-
void NaivePolicyDb::PolicySR::addItem(ItemSendReceive* item) {
m_items.push_back(item);
}
private:
/** Vector with policy items */
std::vector<ItemSendReceive const *> m_items;
- /** Iterator used to get access to policy items */
- class PolicyConstIterator {
- private:
- /** Vector with policy items */
- const std::vector<ItemSendReceive const *>& m_items;
- /** Assistant iterator */
- int m_index;
- public:
- /** Public method allowing access to policy items */
- PolicyConstIterator(const std::vector<ItemSendReceive const*>& items, int position);
- ItemSendReceive const *const& operator*() const;
- PolicyConstIterator& operator++();
- bool operator!=(const PolicyConstIterator& it) const;
- };
+ typedef decltype(m_items)::const_reverse_iterator PolicyConstIterator;
public:
- PolicyConstIterator begin() const;
- PolicyConstIterator end() const;
+ PolicyConstIterator begin() const { return m_items.rbegin(); }
+ PolicyConstIterator end() const { return m_items.rend(); }
/** Adds given item to policy.
* \param[in] item Item to add to policy