17 #ifndef HH_SENF_Utils_Logger_Target_ 18 #define HH_SENF_Utils_Logger_Target_ 1 22 #include <boost/noncopyable.hpp> 44 namespace detail {
class TargetRegistry; }
45 namespace detail {
struct AreaBase; }
46 namespace detail {
struct LogParameters; }
47 namespace detail {
struct StreamBase; }
133 class Target :
private boost::noncopyable
158 std::string stream()
const;
159 std::string area()
const;
160 unsigned level()
const;
171 RoutingEntry(detail::StreamBase
const * stream, detail::AreaBase
const * area,
174 detail::StreamBase
const * stream_;
175 detail::AreaBase
const * area_;
183 typedef std::vector<RoutingEntry> RIB;
193 explicit Target(std::string
const & name);
203 template <
class Stream,
class Area,
class Level>
void route(
204 action_t action = ACCEPT,
int index = -1);
233 void route(std::string
const & stream, std::string
const & area =
"",
260 template <
class Stream,
class Area,
class Level>
261 void unroute(
action_t action = ACCEPT);
280 void unroute(std::string
const & stream, std::string
const & area =
"",
298 void unroute(
int index=-1);
308 void route(
action_t action = ACCEPT,
int index = -1);
310 void route(
action_t action = ACCEPT,
int index = -1);
311 template <
class A1,
class A2>
312 void route(
action_t action = ACCEPT,
int index = -1);
313 template <
class A1,
class A2,
class A3>
314 void route(
action_t action = ACCEPT,
int index = -1);
316 void unroute(
action_t action = ACCEPT);
318 void unroute(
action_t action = ACCEPT);
319 template <
class A1,
class A2>
320 void unroute(
action_t action = ACCEPT);
321 template <
class A1,
class A2,
class A3>
322 void unroute(
action_t action = ACCEPT);
338 iterator begin()
const;
339 iterator end()
const;
343 size_type size()
const;
351 void route(detail::StreamBase
const * stream, detail::AreaBase
const * area,
352 unsigned level,
action_t action,
int index);
353 void unroute(detail::StreamBase
const * stream, detail::AreaBase
const * area,
356 void updateRoutingCache(detail::StreamBase
const * stream, detail::AreaBase
const * area);
358 void write(
time_type timestamp, detail::StreamBase
const & stream,
359 detail::AreaBase
const & area,
unsigned level, std::string
const & message);
361 void consoleList(std::ostream & os);
362 void consoleRoute(
int index, detail::LogParameters
const & pm,
action_t action);
363 void consoleUnroute(detail::LogParameters
const & pm,
action_t action);
369 virtual void v_write(
time_type timestamp, std::string
const & stream,
370 std::string
const & area,
unsigned level,
371 std::string
const & message) = 0;
398 friend struct detail::AreaBase;
399 friend class detail::TargetRegistry;
static unsigned const value
std::ostream & operator<<(std::ostream &os, Packet const &packet)
bool operator==(ArrayValueParserBase< Parser, ValueType > const &parser, ValueType const &value)
Exception: Invalid stream.
console::ScopedDirectory & consoleDir()
TimeSource public header.
RIB::const_iterator iterator
Routing table iterator.
config::time_type time_type
Logging target base class.