From cf6cbafba98f2e93d351c18cde24db00dd96ef12 Mon Sep 17 00:00:00 2001 From: Jaemin Ryu Date: Fri, 11 Aug 2017 16:03:45 +0900 Subject: [PATCH] Add scoped gmainloop Change-Id: Icdc068fcb9d5d7579073bdced59c8fd45caf4ee7 Signed-off-by: Jaemin Ryu --- include/klay/gmainloop.h | 44 ++++++++++++++++++++++++++++++++++++++++ test/dbus.cpp | 24 +--------------------- 2 files changed, 45 insertions(+), 23 deletions(-) create mode 100644 include/klay/gmainloop.h diff --git a/include/klay/gmainloop.h b/include/klay/gmainloop.h new file mode 100644 index 0000000..a01bba3 --- /dev/null +++ b/include/klay/gmainloop.h @@ -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 +#include +#include + +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 mainloop; + std::thread handle; +}; +#endif diff --git a/test/dbus.cpp b/test/dbus.cpp index ad6a6db..3cf2213 100644 --- a/test/dbus.cpp +++ b/test/dbus.cpp @@ -24,6 +24,7 @@ #include #include +#include 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 mainloop; - std::thread handle; -}; - void signalCallback(dbus::Variant variant) { std::cout << "Signal Received" << std::endl; -- 2.34.1