bootstrap: main loop integration
authorWonki Kim <wonki_.kim@samsung.com>
Thu, 13 Feb 2020 07:23:03 +0000 (16:23 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Tue, 3 Mar 2020 06:59:56 +0000 (15:59 +0900)
Change-Id: Ifad598eeabbe37d802c819e7c5d2de1944e3220c

bootstrap/server/src/BootstrapServer.cc

index ca344e4..ae6c63c 100644 (file)
@@ -1,4 +1,5 @@
 #include <iostream>
+#include <glib.h>
 
 #include <gio/gio.h>
 #include <grpcpp/grpcpp.h>
 
 using namespace grpc;
 
-int main(int argc, char **argv)
+static gpointer
+_grpc_thread_func (gpointer data)
 {
-    const char *logPath = "/tmp/ua.log";
-    loguru::init(argc, argv);
-    loguru::g_preamble = false;
-    loguru::add_file(logPath, loguru::Append, loguru::Verbosity_MAX);
-    LOG_SCOPE_F(INFO, "Log : %s", logPath);
+    GMainLoop *loop = (GMainLoop*)data;
 
     std::string binding("0.0.0.0:50051");
     aurumServiceImpl service;
     ServerBuilder builder;
 
-    LOG_F(INFO, "Server Listening on %s", binding.c_str());
+    LOG_F(INFO, "[T] Server Listening on %s", binding.c_str());
     builder.AddListeningPort(binding, grpc::InsecureServerCredentials());
     builder.RegisterService(&service);
     std::unique_ptr<Server> server(builder.BuildAndStart());
     server->Wait();
 
+    return NULL;
+}
+
+int main(int argc, char **argv)
+{
+    const char *logPath = "/tmp/ua.log";
+    GMainLoop *loop;
+
+    loguru::init(argc, argv);
+    loguru::g_preamble = false;
+    loguru::add_file(logPath, loguru::Append, loguru::Verbosity_MAX);
+    LOG_SCOPE_F(INFO, "Log : %s", logPath);
+
+    loop = g_main_loop_new ( NULL , FALSE );
+    g_thread_new("grpc_thread", _grpc_thread_func, loop); //, TRUE, NULL);
+    g_main_loop_run (loop);
+    g_main_loop_unref(loop);
+
     return 0;
 }