Main.cpp 995 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "tests/framework/Framework.h"
  2. #include "anki/core/Logger.h"
  3. using namespace anki;
  4. struct LoggerMessageHandler
  5. {
  6. ANKI_HAS_SLOTS(LoggerMessageHandler)
  7. void handleLoggerMessages(const Logger::Info& info)
  8. {
  9. std::ostream* out = NULL;
  10. const char* x = NULL;
  11. switch(info.type)
  12. {
  13. case Logger::LMT_NORMAL:
  14. out = &std::cout;
  15. x = "Info";
  16. break;
  17. case Logger::LMT_ERROR:
  18. out = &std::cerr;
  19. x = "Error";
  20. break;
  21. case Logger::LMT_WARNING:
  22. out = &std::cerr;
  23. x = "Warn";
  24. break;
  25. }
  26. (*out) << "(" << info.file << ":" << info.line << " "<< info.func
  27. << ") " << x << ": " << info.msg << std::endl;
  28. }
  29. ANKI_SLOT(handleLoggerMessages, const Logger::Info&)
  30. };
  31. static LoggerMessageHandler msgh;
  32. int main(int argc, char** argv)
  33. {
  34. // Call a few singletons to avoid memory leak confusion
  35. LoggerSingleton::get();
  36. ANKI_CONNECT(&LoggerSingleton::get(), messageRecieved,
  37. &msgh, handleLoggerMessages);
  38. return TesterSingleton::get().run(argc, argv);
  39. }