1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <Eris/Log.h>
#include <cassert>
#include <stdio.h>
#include <algorithm>
#include <Atlas/Codecs/Bach.h>
#include <Atlas/Message/MEncoder.h>
#include <Atlas/Objects/Operation.h>
#include <Atlas/Objects/Root.h>
#include <Atlas/Objects/Encoder.h>
#include <iostream>
namespace Eris
{
static LogLevel _logLevel = DEFAULT_LOG;
SigC::Signal2<void, LogLevel, const std::string&> Logged;
void setLogLevel(LogLevel lvl)
{
_logLevel = lvl;
}
LogLevel getLogLevel()
{
return _logLevel;
}
void doLog(LogLevel lvl, const std::string& msg)
{
if (lvl <= _logLevel)
Logged.emit(lvl, msg);
}
std::ostream& operator<<(std::ostream& os, const Atlas::Objects::Root& obj)
{
std::stringstream s;
Atlas::Codecs::Bach debugCodec(s, *(Atlas::Bridge*)0);
Atlas::Objects::ObjectsEncoder debugEncoder(debugCodec);
debugEncoder.streamObjectsMessage(obj);
return os << s.str();
}
std::ostream& operator<<(std::ostream& os, const Atlas::Message::Element& msg)
{
std::stringstream s;
Atlas::Codecs::Bach debugCodec(s, *(Atlas::Bridge*)0);
Atlas::Message::Encoder debugEncoder(debugCodec);
debugEncoder.streamMessageElement(msg.asMap());
return os << s.str();
}
} // of namespace
|