blob: ab37e0282efacb4276eafd6ce7b3e20d7faf2e66 [file] [log] [blame]
brians343bc112013-02-10 01:53:46 +00001#include <stdio.h>
2#include <stdlib.h>
3#include <errno.h>
4#include <time.h>
5#include <string.h>
6#include <string>
7#include <unistd.h>
8#include <sys/types.h>
9#include <pwd.h>
10#include <fcntl.h>
11#include <inttypes.h>
12
Brian Silverman14fd0fb2014-01-14 21:42:01 -080013#include "aos/linux_code/init.h"
14#include "aos/linux_code/ipc_lib/queue.h"
Brian Silvermancb5da1f2015-12-05 22:19:58 -050015#include "aos/common/logging/logging.h"
16#include "aos/common/logging/implementations.h"
Brian Silvermanab6615c2013-03-05 20:29:29 -080017#include "aos/common/time.h"
brians343bc112013-02-10 01:53:46 +000018
Brian Silvermanf665d692013-02-17 22:11:39 -080019namespace aos {
20namespace logging {
Brian Silverman14fd0fb2014-01-14 21:42:01 -080021namespace linux_code {
Brian Silvermanf665d692013-02-17 22:11:39 -080022namespace {
brians343bc112013-02-10 01:53:46 +000023
Brian Silvermanab6615c2013-03-05 20:29:29 -080024int LogStreamerMain() {
Brian Silvermanf665d692013-02-17 22:11:39 -080025 InitNRT();
brians343bc112013-02-10 01:53:46 +000026
Brian Silvermancb5da1f2015-12-05 22:19:58 -050027 RawQueue *queue = GetLoggingQueue();
28
Brian Silvermanab6615c2013-03-05 20:29:29 -080029 const time::Time now = time::Time::Now();
Brian Silverman8efe23e2013-07-07 23:31:37 -070030 printf("starting at %" PRId32 "s%" PRId32 "ns-----------------------------\n",
Brian Silvermanab6615c2013-03-05 20:29:29 -080031 now.sec(), now.nsec());
brians343bc112013-02-10 01:53:46 +000032
brians343bc112013-02-10 01:53:46 +000033 while (true) {
Brian Silverman18c2c362016-01-02 14:18:32 -080034 const LogMessage *const msg = static_cast<const LogMessage *>(
35 queue->ReadMessage(RawQueue::kNonBlock));
36 if (msg == NULL) {
37 ::aos::time::SleepFor(::aos::time::Time::InSeconds(0.1));
38 } else {
39 internal::PrintMessage(stdout, *msg);
brians343bc112013-02-10 01:53:46 +000040
Brian Silverman18c2c362016-01-02 14:18:32 -080041 queue->FreeMessage(msg);
42 }
brians343bc112013-02-10 01:53:46 +000043 }
44
Brian Silvermanf665d692013-02-17 22:11:39 -080045 Cleanup();
46 return 0;
47}
48
49} // namespace
Brian Silverman14fd0fb2014-01-14 21:42:01 -080050} // namespace linux_code
Brian Silvermanf665d692013-02-17 22:11:39 -080051} // namespace logging
52} // namespace aos
53
54int main() {
Brian Silverman14fd0fb2014-01-14 21:42:01 -080055 return ::aos::logging::linux_code::LogStreamerMain();
brians343bc112013-02-10 01:53:46 +000056}