X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffilter_limit.cpp;h=a3b3add40ffad654991d3ad04d60253bb70090ea;hb=586d78659d671683f33ec55f4a7d32b28e345ccd;hp=a649564e45399bd41d3d9e63b7b33a0c857b4554;hpb=c7899004b7d362a60e6c89d48a8bd33e051aad23;p=metaproxy-moved-to-github.git diff --git a/src/filter_limit.cpp b/src/filter_limit.cpp index a649564..a3b3add 100644 --- a/src/filter_limit.cpp +++ b/src/filter_limit.cpp @@ -1,5 +1,5 @@ /* This file is part of Metaproxy. - Copyright (C) 2005-2010 Index Data + Copyright (C) Index Data Metaproxy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -59,7 +59,7 @@ namespace metaproxy_1 { } // define Pimpl wrapper forwarding to Impl - + yf::Limit::Limit() : m_p(new Impl) { } @@ -68,7 +68,8 @@ yf::Limit::~Limit() { // must have a destructor because of boost::scoped_ptr } -void yf::Limit::configure(const xmlNode *xmlnode, bool test_only) +void yf::Limit::configure(const xmlNode *xmlnode, bool test_only, + const char *path) { m_p->configure(xmlnode); } @@ -87,7 +88,7 @@ yf::Limit::Impl::Impl() : m_bw_max(0), m_pdu_max(0), m_search_max(0), } yf::Limit::Impl::~Impl() -{ +{ } void yf::Limit::Impl::configure(const xmlNode *ptr) @@ -118,7 +119,7 @@ void yf::Limit::Impl::configure(const xmlNode *ptr) } else { - throw mp::filter::FilterException("Bad element " + throw mp::filter::FilterException("Bad element " + std::string((const char *) ptr->name)); } @@ -133,7 +134,7 @@ void yf::Limit::Impl::process(mp::Package &package) yf::Limit::Ses *ses = 0; - std::map::iterator it = + std::map::iterator it = m_sessions.find(package.session()); if (it != m_sessions.end()) ses = it->second; @@ -171,7 +172,7 @@ void yf::Limit::Impl::process(mp::Package &package) yf::Limit::Ses *ses = 0; - std::map::iterator it = + std::map::iterator it = m_sessions.find(package.session()); if (it != m_sessions.end()) ses = it->second; @@ -182,14 +183,14 @@ void yf::Limit::Impl::process(mp::Package &package) } sz += package.response().get_size(); - + ses->bw_stat.add_bytes(sz); ses->pdu_stat.add_bytes(1); - + int bw_total = ses->bw_stat.get_total(); int pdu_total = ses->pdu_stat.get_total(); int search_total = ses->search_stat.get_total(); - + if (m_search_max) reduce += search_total / m_search_max; if (m_bw_max)