X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_limit.cpp;h=c43608ff9b8237df41f365633713111cfb966d81;hb=4cd9e521c5e96e3fcc5dcec6192571b54a1351c4;hp=3158ee0146e41cf8bbb2ea6bd433f19b3a154e30;hpb=fa00fb98e9c388425c63d64c1684fcda311a5ca6;p=metaproxy-moved-to-github.git diff --git a/src/filter_limit.cpp b/src/filter_limit.cpp index 3158ee0..c43608f 100644 --- a/src/filter_limit.cpp +++ b/src/filter_limit.cpp @@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include +#include #include "package.hpp" #include "util.hpp" @@ -31,11 +32,12 @@ namespace metaproxy_1 { namespace filter { class Limit::Ses { public: - Yaz_bw bw_stat; - Yaz_bw pdu_stat; - Yaz_bw search_stat; + yazpp_1::Yaz_bw bw_stat; + yazpp_1::Yaz_bw pdu_stat; + yazpp_1::Yaz_bw search_stat; Ses() : bw_stat(60), pdu_stat(60), search_stat(60) {}; }; + class Limit::Impl { public: Impl(); @@ -43,10 +45,8 @@ namespace metaproxy_1 { void process(metaproxy_1::Package & package); void configure(const xmlNode * ptr); private: - boost::mutex m_session_mutex; std::map m_sessions; - int m_bw_max; int m_pdu_max; int m_search_max; @@ -166,9 +166,6 @@ void yf::Limit::Impl::process(mp::Package &package) } } - yaz_log(YLOG_LOG, "sz = %d . total = %d", sz, - ses->bw_stat.get_total()); - int bw_total = ses->bw_stat.get_total(); int pdu_total = ses->pdu_stat.get_total(); int search_total = ses->search_stat.get_total(); @@ -209,50 +206,6 @@ extern "C" { }; } -// bandwidth class (taken from YAZ Proxy) - -Yaz_bw::Yaz_bw(int sz) -{ - m_sec = 0; - m_size = sz; - m_bucket = new int[m_size]; - m_ptr = 0; -} - -Yaz_bw::~Yaz_bw() -{ - delete [] m_bucket; -} - -int Yaz_bw::get_total() -{ - add_bytes(0); - int bw = 0; - int i; - for (i = 0; i= m_sec) - { - int d = now - m_sec; - if (d > m_size) - d = m_size; - while (--d >= 0) - { - if (++m_ptr == m_size) - m_ptr = 0; - m_bucket[m_ptr] = 0; - } - m_bucket[m_ptr] += b; - } - m_sec = now; -} /* * Local variables: