result DeinitializeCoreDaemonEventReceiver(void);
// core daemon callbacks
- static int OnAppWidgetServiceConnected(struct event_arg *arg, void* data);
- static int OnAppWidgetServiceDisconnected(struct event_arg *arg, void* data);
+ static int OnCoreDaemonConnected(struct event_arg *arg, void* data);
+ static int OnCoreDaemonDisconnected(struct event_arg *arg, void* data);
static int OnAppWidgetCreate(struct event_arg *arg, int *width, int *height, double *priority, void* data);
static int OnAppWidgetDestroy(struct event_arg *arg, void* data);
static int OnAppWidgetUpdate(struct event_arg *arg, void* data);
static AppWidgetManagerService* __pTheInstance;
Tizen::Base::Collection::HashMapT<Tizen::Base::String, _AppContext*> __appContextList;
Tizen::Base::Runtime::Timer __pingTimer;
+
+ enum CoreDaemonConnectionState
+ {
+ NONE = 0,
+ CONNECTED,
+ DISCONNECTED,
+ };
+ static CoreDaemonConnectionState __coreDaemonConnectionState;
}; // class AppWidgetManagerService
class _AppWidgetHelper
}
AppWidgetManagerService* AppWidgetManagerService::__pTheInstance = null;
+AppWidgetManagerService::CoreDaemonConnectionState AppWidgetManagerService::__coreDaemonConnectionState = NONE;
AppWidgetManagerService::AppWidgetManagerService(void)
{
__pingTimer.Cancel();
- DeinitializeCoreDaemonEventReceiver();
_AppManagerImpl::GetInstance()->RemoveAppEventListener(*this);
_SettingInfoImpl::RemoveSettingEventListener(*this);
+ SysTryReturnVoidResult(NID_SHELL, __coreDaemonConnectionState == CONNECTED, E_SERVICE_DEACTIVATED, "Core daemon is already terminated.");
+
IMapEnumeratorT<String, _AppContext*>* pMapEnum = __appContextList.GetMapEnumeratorN();
if (pMapEnum != null)
{
delete pMapEnum;
}
+ DeinitializeCoreDaemonEventReceiver();
+
SysLog(NID_SHELL, "Exit");
}
}
int
-AppWidgetManagerService::OnAppWidgetServiceConnected(struct event_arg *arg, void* data)
+AppWidgetManagerService::OnCoreDaemonConnected(struct event_arg *arg, void* data)
{
int ret;
ret = provider_send_hello();
{
SysLog(NID_SHELL, "Success to be connected with master daemon");
AppWidgetManagerService::GetInstance()->StartPingTimer();
+ __coreDaemonConnectionState = CONNECTED;
}
else
}
int
-AppWidgetManagerService::OnAppWidgetServiceDisconnected(struct event_arg *arg, void* data)
+AppWidgetManagerService::OnCoreDaemonDisconnected(struct event_arg *arg, void* data)
{
SysLog(NID_SHELL, "Disconnected with master daemon");
+ __coreDaemonConnectionState = DISCONNECTED;
return 0;
}
struct event_handler cbs;
memset(&cbs, 0, sizeof(event_handler));
- cbs.connected = OnAppWidgetServiceConnected,
- cbs.disconnected = OnAppWidgetServiceDisconnected,
+ cbs.connected = OnCoreDaemonConnected,
+ cbs.disconnected = OnCoreDaemonDisconnected,
cbs.pause = OnAppWidgetBackgroundAll,
cbs.resume = OnAppWidgetForegroundAll,
cbs.lb_pause = OnAppWidgetBackground,