Skip to content
Snippets Groups Projects
Commit 13fcd5f8 authored by g0dil's avatar g0dil
Browse files

Utils/Logger: Extend Target routing API

parent 863db753
No related branches found
No related tags found
No related merge requests found
......@@ -85,6 +85,8 @@ prefix_ void senf::log::Target::unroute(std::string const & stream, std::string
prefix_ void senf::log::Target::unroute(int index)
{
if (rib_.empty())
return;
RIB::iterator i;
if (index < 0) {
if (RIB::size_type(-index) >= rib_.size())
......@@ -110,6 +112,17 @@ prefix_ void senf::log::Target::unroute(int index)
updateRoutingCache(entry.stream_, entry.area_);
}
prefix_ void senf::log::Target::clear()
{
RIB old;
rib_.swap(old);
RIB::const_iterator i (old.begin());
RIB::const_iterator const i_end (old.end());
for (; i != i_end; ++i)
if (i->action_ == ACCEPT)
updateRoutingCache(i->stream_, i->area_)
}
////////////////////////////////////////
// private members
......
......@@ -56,6 +56,24 @@ prefix_ senf::log::Target::iterator senf::log::Target::end()
return rib_.end();
}
prefix_ RoutingEntry const & senf::log::Target::operator[](size_type i)
size_type size() const
{
return rib_[i];
}
prefix_ RoutingEntry const & senf::log::Target::operator[](size_type i)
size_type size() const
{
return rib_.size();
}
prefix_ bool senf::log::Target::empty()
const
{
return rib_.empty();
}
///////////////////////////////////////////////////////////////////////////
// senf::log::Target::RoutingEntry
......
......@@ -179,6 +179,7 @@ namespace log {
public:
typedef RIB::const_iterator iterator; ///< Routing table iterator
typedef RIB::size_type size_type;
///////////////////////////////////////////////////////////////////////////
///\name Structors and default members
......@@ -332,6 +333,13 @@ namespace log {
iterator begin() const; ///< Iterator to beginning of routing table
iterator end() const; ///< Iterator past the end of routing table
RoutingEntry const & operator[](size_type i) ///< Access routing entry
size_type size() const; ///< Number of routing table entries
bool empty() const; ///< \c true, if routing table empty, \c false otherwise
void clear(); ///< Clear routing table
private:
void route(detail::StreamBase const * stream, detail::AreaBase const * area,
unsigned level, action_t action, int index);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment