Add scoped gmainloop 58/143758/1
authorJaemin Ryu <jm77.ryu@samsung.com>
Fri, 11 Aug 2017 07:03:45 +0000 (16:03 +0900)
committerJaemin Ryu <jm77.ryu@samsung.com>
Fri, 11 Aug 2017 07:22:52 +0000 (16:22 +0900)
Change-Id: Icdc068fcb9d5d7579073bdced59c8fd45caf4ee7
Signed-off-by: Jaemin Ryu <jm77.ryu@samsung.com>
include/klay/gmainloop.h [new file with mode: 0644]
test/dbus.cpp

diff --git a/include/klay/gmainloop.h b/include/klay/gmainloop.h
new file mode 100644 (file)
index 0000000..a01bba3
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *  Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+#ifndef __GMAINLOOP_WRAPPER_H__
+#define __GMAINLOOP_WRAPPER_H__
+#include <thread>
+#include <memory>
+#include <glib.h>
+
+class ScopedGMainLoop {
+public:
+       ScopedGMainLoop() :
+               mainloop(g_main_loop_new(NULL, FALSE), g_main_loop_unref)
+       {
+               handle = std::thread(g_main_loop_run, mainloop.get());
+       }
+
+       ~ScopedGMainLoop()
+       {
+               while (!g_main_loop_is_running(mainloop.get())) {
+                       std::this_thread::yield();
+               }
+
+               g_main_loop_quit(mainloop.get());
+               handle.join();
+       }
+
+private:
+       std::unique_ptr<GMainLoop, void(*)(GMainLoop*)> mainloop;
+       std::thread handle;
+};
+#endif
index ad6a6dbe9ee7a0c3855e2af870b4b899b23e7bae..3cf2213f2e94f3b642e8b2bcb4c0d328cd7da816 100644 (file)
@@ -24,6 +24,7 @@
 #include <klay/latch.h>
 
 #include <klay/testbench.h>
+#include <klay/gmainloop.h>
 
 const std::string TESTSVC_BUS_NAME       = "org.tizen.klay";
 const std::string TESTSVC_OBJECT_PATH    = "/org/tizen/klay";
@@ -59,29 +60,6 @@ TESTCASE(DbusNegativeTest)
        }
 }
 
-class ScopedGMainLoop {
-public:
-       ScopedGMainLoop() :
-               mainloop(g_main_loop_new(NULL, FALSE), g_main_loop_unref)
-       {
-               handle = std::thread(g_main_loop_run, mainloop.get());
-       }
-
-       ~ScopedGMainLoop()
-       {
-               while (!g_main_loop_is_running(mainloop.get())) {
-                       std::this_thread::yield();
-               }
-
-               g_main_loop_quit(mainloop.get());
-               handle.join();
-       }
-
-private:
-       std::unique_ptr<GMainLoop, void(*)(GMainLoop*)> mainloop;
-       std::thread handle;
-};
-
 void signalCallback(dbus::Variant variant)
 {
        std::cout << "Signal Received" << std::endl;