Rename yp2::FilterFactory to yp2::FactoryFilter
[metaproxy-moved-to-github.git] / src / router_chain.cpp
index 346028c..c9a85fd 100644 (file)
@@ -1,39 +1,54 @@
-/* $Id: router_chain.cpp,v 1.1 2005-10-26 10:55:26 marc Exp $
+/* $Id: router_chain.cpp,v 1.2 2005-11-10 23:10:42 adam Exp $
    Copyright (c) 2005, Index Data.
-
-%LICENSE%
- */
-
+   
+   %LICENSE%
+*/
 
 #include "router_chain.hpp"
 
+#include <list>
 
-const yp2::filter::Base * yp2::RouterChain::move(const filter::Base *filter,                                   const Package *package) const {
-            std::list<const filter::Base *>::const_iterator it;
-            it = m_filter_list.begin();
-            if (filter)
-                {
-                    for (; it != m_filter_list.end(); it++)
-                        if (*it == filter)
-                            {
-                                it++;
-                                break;
-                            }
-                }
-            if (it == m_filter_list.end())
-                {
-                    //throw RouterException("no routing rules known");
-                    return 0;
-                }
-            return *it;
-        };
-
-        yp2::RouterChain & yp2::RouterChain::append(const filter::Base &filter){
-            m_filter_list.push_back(&filter);
-            return *this;
-        };
+namespace yp2 
+{
+    class RouterChain::Rep {
+        friend class RouterChain;
+        std::list<const filter::Base *> m_filter_list;
+    };
+};
+
+yp2::RouterChain::RouterChain() : m_p(new yp2::RouterChain::Rep)
+{
+}
 
+yp2::RouterChain::~RouterChain()
+{
+}
 
+const yp2::filter::Base * yp2::RouterChain::move(const filter::Base *filter,                                   const Package *package) const {
+    std::list<const filter::Base *>::const_iterator it;
+    it = m_p->m_filter_list.begin();
+    if (filter)
+    {
+        for (; it != m_p->m_filter_list.end(); it++)
+            if (*it == filter)
+            {
+                it++;
+                break;
+            }
+    }
+    if (it == m_p->m_filter_list.end())
+    {
+        //throw RouterException("no routing rules known");
+        return 0;
+    }
+    return *it;
+}
+
+yp2::RouterChain & yp2::RouterChain::append(const filter::Base &filter)
+{
+    m_p->m_filter_list.push_back(&filter);
+    return *this;
+}
 
 
 /*