Bug fix: TIVI-1996.
[profile/ivi/ico-uxf-homescreen.git] / src / syscond / CicoSysConDaemon.cpp
1 /*
2  * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9
10 /*========================================================================*/    
11 /**
12  *  @file   CicoSysConDaemon.cpp
13  *
14  *  @brief  
15  */
16 /*========================================================================*/    
17
18 #include <exception>
19 #include <iostream>
20 #include <string>
21
22 #include "CicoSysConDaemon.h"
23 #include "ico_syc_error.h"
24 #include "CicoLog.h"
25 #include "CicoSCSystemConfig.h"
26 #include "CicoSCServer.h"
27 #include "CicoSCWayland.h"
28 #include "CicoSCWindowController.h"
29 #include "CicoSCInputController.h"
30 #include "CicoSCLifeCycleController.h"
31 #include "CicoSCUserManager.h"
32 #include "CicoSCResourceManager.h"
33 #include "Cico_aul_listen_app.h"
34
35 /**
36  *  Default Constructor
37  */
38 CicoSysConDaemon::CicoSysConDaemon()
39 {
40 //    ICO_DBG("CicoSysConDaemon::CicoSysConDaemon Enter");
41 //    ICO_DBG("CicoSysConDaemon::CicoSysConDaemon Leave");
42 }
43
44 /**
45  *  Destructor
46  */
47 CicoSysConDaemon::~CicoSysConDaemon()
48 {
49 //    ICO_DBG("CicoSysConDaemon::~CicoSysConDaemon Enter");
50 //    ICO_DBG("CicoSysConDaemon::~CicoSysConDaemon Leave");
51 }
52
53 bool
54 CicoSysConDaemon::onCreate(void *user_data)
55 {
56     ICO_DBG("CicoSysConDaemon::onCreate Enter");
57
58     try {
59         int ret = ICO_SYC_EOK;
60         CicoSCSystemConfig::getInstance()->load("/usr/apps/org.tizen.ico.system-controller/res/config/system.xml");
61
62         initAulListenXSignal();
63
64         CicoSCLifeCycleController *lifecycle =
65             CicoSCLifeCycleController::getInstance();
66         CicoSCWindowController *winctrl     = new CicoSCWindowController();
67         CicoSCInputController  *inputctrl   = new CicoSCInputController();
68
69         CicoSCResourceManager  *resourcemgr = new CicoSCResourceManager();
70         resourcemgr->setWindowController(winctrl);
71         resourcemgr->setInputController(inputctrl);
72         ret = resourcemgr->initialize();
73         if (ICO_SYC_EOK != ret) {
74             return false;
75         }
76
77         winctrl->setResourceManager(resourcemgr);
78
79         CicoSCUserManager *usermgr = CicoSCUserManager::getInstance();
80         usermgr->load("/usr/apps/org.tizen.ico.system-controller/res/config/user.xml");
81
82         CicoSCServer *server = CicoSCServer::getInstance();
83         server->setWindowCtrl(winctrl);
84         server->setInputCtrl(inputctrl);
85         server->setUserMgr(usermgr);
86         server->setResourceMgr(resourcemgr);
87         server->setPolicyMgr(resourcemgr->getPolicyManager());
88
89         server->startup(18081, (const char*)"ico_syc_protocol");
90         ret = CicoSCWayland::getInstance()->intialize();
91         if (ICO_SYC_EOK != ret) {
92             return false;
93         }
94         CicoSCWayland::getInstance()->addEcoreMainWlFdHandler();
95         
96         usermgr->initialize();
97     }
98     catch (const std::exception& e) {
99         std::cerr << e.what() << std::endl;
100         ICO_ERR("catch exception %s", e.what());
101         ICO_DBG("CicoSysConDaemon::onCreate Leave(false)");
102         return false;
103     }
104     catch (const std::string& str) {
105         std::cerr << str << std::endl;
106         ICO_ERR("catch exception %s", str.c_str());
107         ICO_DBG("CicoSysConDaemon::onCreate Leave(false)");
108         return false;
109     }
110     catch (...) {
111         ICO_ERR("catch exception unknown");
112         ICO_DBG("CicoSysConDaemon::onCreate Leave(false)");
113         return false;
114     }
115
116     ICO_DBG("CicoSysConDaemon::onCreate Leave(true)");
117
118     return true;
119 }
120
121 #if 0
122 void
123 CicoSysConDaemon::onTerminate(void *user_data)
124 {
125     _DBG("CicoSysConDaemon::onTerminate entry");
126 }
127
128 void
129 CicoSysConDaemon::onPause(void *user_data)
130 {
131     _DBG("CicoSysConDaemon::onPause entry");
132 }
133
134 void
135 CicoSysConDaemon::onResume(void *user_data)
136 {
137     _DBG("CicoSysConDaemon::onResume entry");
138 }
139
140 void
141 CicoSysConDaemon::onService(service_h service, void *user_data)
142 {
143     _DBG("CicoSysConDaemon::onService entry");
144 }
145 #endif
146 /* vim: set expandtab ts=4 sw=4: */