refactoring: make common interface for Policy classes 21/199121/6
authorAdrian Szyndela <adrian.s@samsung.com>
Mon, 4 Feb 2019 09:12:47 +0000 (10:12 +0100)
committerAdrian Szyndela <adrian.s@samsung.com>
Mon, 11 Feb 2019 11:08:47 +0000 (12:08 +0100)
Change-Id: I02efdddbafcce4bbbd8e7f7630cececaa1b362ed

src/internal/naive_policy_checker.cpp
src/internal/naive_policy_db.cpp
src/internal/naive_policy_db.hpp

index 431f88e..54d0786 100755 (executable)
@@ -79,16 +79,7 @@ DecisionItem NaivePolicyChecker::checkPolicy(const NaivePolicyDb::PolicySR& poli
 {
        tslog::log_verbose("checkpolicy for: ", item, "\n");
 
-       for (auto i : policy) {
-               tslog::log_verbose("-read: ", i->getDecision(), " ", i, "\n");
-
-               if (i->match(item)) {
-                       tslog::log_verbose("-matched: ", i->getDecision(), " ", i, "\n");
-
-                       return i->getDecision();
-               }
-       }
-       return Decision::ANY;
+       return policy.getDecisionItem(item);
 }
 
 DecisionItem NaivePolicyChecker::checkPolicy(const NaivePolicyDb::PolicyOwn& policy, const MatchItemOwn& item) const
index 46446cd..8945077 100755 (executable)
@@ -170,6 +170,36 @@ void NaivePolicyDb::PolicySet<P>::addItem(const PolicyType policy_type,
        }
 }
 
+/****************** NaivePolicyDb::PolicySR ************************/
+void NaivePolicyDb::PolicySR::addItem(ItemSendReceive* item) {
+       m_items.push_back(item);
+}
+
+size_t NaivePolicyDb::PolicySR::getSize() const {
+       size_t size = m_items.capacity() * sizeof(decltype(m_items)::value_type);
+       for (const auto& i : m_items)
+               size += i->getSize();
+       return size;
+}
+
+void NaivePolicyDb::PolicySR::printContent() const {
+       for (const auto& i : m_items)
+               std::cerr << i << std::endl;
+}
+
+DecisionItem NaivePolicyDb::PolicySR::getDecisionItem(const MatchItemSR &item) const {
+       for (auto i : *this) {
+               tslog::log_verbose("-read: ", i->getDecision(), " ", i, "\n");
+
+               if (i->match(item)) {
+                       tslog::log_verbose("-matched: ", i->getDecision(), " ", i, "\n");
+
+                       return i->getDecision();
+               }
+       }
+       return Decision::ANY;
+}
+
 void NaivePolicyDb::printMap(const std::map<gid_t, std::vector<gid_t>>& map) const
 {
        int size = sizeof(map) + map.size() * sizeof(std::remove_reference<decltype(map)>::type::value_type);
@@ -216,22 +246,6 @@ bool NaivePolicyDb::getPolicy(const ItemType item_type,
        return m_access_set.getPolicy(policy_type, policy_type_value, policy);
 }
 
-void NaivePolicyDb::PolicySR::addItem(ItemSendReceive* item) {
-       m_items.push_back(item);
-}
-
-size_t NaivePolicyDb::PolicySR::getSize() const {
-       size_t size = m_items.capacity() * sizeof(decltype(m_items)::value_type);
-       for (const auto& i : m_items)
-               size += i->getSize();
-       return size;
-}
-
-void NaivePolicyDb::PolicySR::printContent() const {
-       for (const auto& i : m_items)
-               std::cerr << i << std::endl;
-}
-
 void NaivePolicyDb::PolicyOwn::addItem(ItemOwn* item) {
        ownership_tree.addItem(item);
 }
index c5626b7..aa1c9a1 100755 (executable)
@@ -49,14 +49,17 @@ namespace ldp_xml_parser
                        /** Vector with policy items */
                        std::vector<ItemSendReceive const *> m_items;
                        typedef decltype(m_items)::const_reverse_iterator PolicyConstIterator;
-               public:
+
                        PolicyConstIterator begin() const { return m_items.rbegin(); }
                        PolicyConstIterator end() const { return m_items.rend(); }
+               public:
 
                        /** Adds given item to policy.
                         * \param[in] item Item to add to policy
                         */
                        void addItem(ItemSendReceive* item);
+
+                       DecisionItem getDecisionItem(const MatchItemSR &item) const;
                        void printContent() const;
                        size_t getSize() const;
                };