diff options
author | sangwan.kwon <sangwan.kwon@samsung.com> | 2016-05-12 15:01:46 +0900 |
---|---|---|
committer | sangwan kwon <sangwan.kwon@samsung.com> | 2016-05-12 00:29:53 -0700 |
commit | 07c9adaa508885cd3d325e295469466386f62a69 (patch) | |
tree | 8b38b206c615cee7d881f6099343af6314c8c121 | |
parent | a409298a53d37fe189ec44896b0dd181edd56c12 (diff) | |
download | cert-checker-07c9adaa508885cd3d325e295469466386f62a69.tar.gz cert-checker-07c9adaa508885cd3d325e295469466386f62a69.tar.bz2 cert-checker-07c9adaa508885cd3d325e295469466386f62a69.zip |
Detach looping logic from setup
[AS-IS]
* running g_main_loop is in setup
* so, it can hard to test
[TO-BE]
* seperate setup and looping
Change-Id: I591da58b93895e46adbd1262b11e0d7dd545c7c6
-rw-r--r-- | src/common/command-id.h | 4 | ||||
-rw-r--r-- | src/service/logic.cpp | 7 | ||||
-rw-r--r-- | src/service/logic.h | 2 | ||||
-rw-r--r-- | src/service/ocsp-service.cpp | 11 |
4 files changed, 17 insertions, 7 deletions
diff --git a/src/common/command-id.h b/src/common/command-id.h index e154e1a..1657e27 100644 --- a/src/common/command-id.h +++ b/src/common/command-id.h @@ -25,7 +25,9 @@ namespace CCHECKER { enum class CommandId : int { CC_OCSP_SYN = 0x01, - CC_OCSP_ACK = 0x02 + CC_OCSP_ACK = 0x02, + + CC_OCSP_ERR = -0x01 }; } // namespace CCHECKER diff --git a/src/service/logic.cpp b/src/service/logic.cpp index 538c2e7..a7d8fdf 100644 --- a/src/service/logic.cpp +++ b/src/service/logic.cpp @@ -233,10 +233,13 @@ error_t Logic::setup() LogDebug("Register package event handler success"); + return NO_ERROR; +} + +void Logic::run() +{ LogDebug("Running the main loop"); g_main_loop_run(m_loop); - - return NO_ERROR; } int Logic::pkgmgrinfo_event_handler_static( diff --git a/src/service/logic.h b/src/service/logic.h index 7d48124..834e172 100644 --- a/src/service/logic.h +++ b/src/service/logic.h @@ -66,6 +66,7 @@ class Logic { Logic(void); virtual ~Logic(void); error_t setup(void); + void run(void); virtual void clean(void); static void connman_callback(GDBusProxy *proxy, @@ -133,7 +134,6 @@ class Logic { bool call_ui(const app_t &app); - // main event loop data type GMainLoop *m_loop; diff --git a/src/service/ocsp-service.cpp b/src/service/ocsp-service.cpp index 63a3c0a..a028048 100644 --- a/src/service/ocsp-service.cpp +++ b/src/service/ocsp-service.cpp @@ -42,8 +42,8 @@ void OcspService::onMessageProcess(const ConnShPtr &connection) auto in = connection->receive(); connection->send(this->process(connection, in)); - if (m_logic.setup() != NO_ERROR) - throw std::logic_error("Cannot setup logic."); + // Run gmainloop for event listening. + m_logic.run(); LogDebug("Finish processing message on ocsp service."); } @@ -59,7 +59,12 @@ RawBuffer OcspService::process(const ConnShPtr &, RawBuffer &data) LogInfo("Request dispatch on ocsp-service."); switch (cid) { case CommandId::CC_OCSP_SYN: { - LogDebug("Success to get SYN cmd. reply ACK cmd."); + if (m_logic.setup() != NO_ERROR) { + BinaryQueue::Serialize(CommandId::CC_OCSP_ERR).pop(); + throw std::logic_error("Cannot setup logic."); + } + + LogDebug("Success to receive SYN and setup. reply ACK cmd."); return BinaryQueue::Serialize(CommandId::CC_OCSP_ACK).pop(); } case CommandId::CC_OCSP_ACK: |