move provider state to state of _AppContext [Nabi 45218]
authorjungmin76.park <jungmin76.park@samsung.com>
Mon, 8 Jul 2013 11:13:26 +0000 (20:13 +0900)
committerjungmin76.park <jungmin76.park@samsung.com>
Mon, 8 Jul 2013 11:13:26 +0000 (20:13 +0900)
Change-Id: I8e9437670c074cd066358ca1d3b7bb1a279149de
Signed-off-by: jungmin76.park <jungmin76.park@samsung.com>
inc/FShell_AppWidgetContext.h
inc/FShell_AppWidgetContextBase.h
inc/FShell_AppWidgetManagerService.h
inc/FShell_AppWidgetManagerStub.h
inc/FShell_AppWidgetPopupContext.h
src/FShell_AppWidgetContext.cpp
src/FShell_AppWidgetContextBase.cpp
src/FShell_AppWidgetManagerService.cpp
src/FShell_AppWidgetManagerStub.cpp
src/FShell_AppWidgetPopupContext.cpp

index da71baf..367d9a9 100644 (file)
@@ -41,22 +41,49 @@ class _AppWidgetPopupContext;
 extern const int UPDATE_PERIOD_MSEC_MIN;
 class _AppWidgetContext;
 
-class AppContext
+
+////////////////////////////////////////////////
+// _AppContext
+////////////////////////////////////////////////
+class _AppContext
        :public Tizen::Base::Object
 {
+
+public:
+       enum ConnectionState
+       {
+               NONE = 0,
+               CONNECTING,
+               CONNECTED,
+               DISCONNECTED,
+       };
+
+public:
+               _AppContext(void):__isWaitingResult(false), __connectionState(NONE){}
+               ~_AppContext(void){}
+               ConnectionState GetConnectionState(void) const { return __connectionState; }
+               void SetConnectionState(ConnectionState state) { __connectionState = state; }
+               int GetClientId(void) const { return __ipcClientId; }
+               void SetClientId(int clientId) { __ipcClientId = clientId; }
+
 public:
-               AppContext(void):__isWaitingResult(false){}
-               ~AppContext(void){}
                bool __isWaitingResult;
-               Tizen::Base::Collection::ArrayListT<_AppWidgetContext*> __appWidetContextList;
+               //Tizen::Base::Collection::ArrayListT<_AppWidgetContext*> __appWidetContextList;
+
+private:
+               ConnectionState __connectionState;
+               int __ipcClientId;
 };
 
+////////////////////////////////////////////////
+// _AppWidgetContext
+////////////////////////////////////////////////
 class _AppWidgetContext
        : public _AppWidgetContextBase
        , public Tizen::Base::Runtime::ITimerEventListener
 {
 public:
-       _AppWidgetContext(AppContext* pAppContext, const Tizen::Base::String& name, const Tizen::Base::String& appId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority);
+       _AppWidgetContext(_AppContext* pAppContext, const Tizen::Base::String& name, const Tizen::Base::String& appId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority);
        virtual ~_AppWidgetContext(void);
 
        void OnAdded(void);
@@ -79,9 +106,8 @@ public:
 
        int GetPeriod(void) const;
        long long GetLastUpdatedTime(void) const;
-       virtual void SetIpcClientId(int clientId);
 
-       AppContext* GetAppContext(void) const;
+       _AppContext* GetAppContext(void) const;
 
 private:
        result SendAddRequest(int width, int height);
@@ -93,6 +119,7 @@ private:
        result RequestUpdate(const Tizen::Base::String& argument);
 
        virtual Tizen::Base::Collection::HashMap* CreateRequestArgsN(void);
+       int GetClientId(void) const;
        virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
 
        struct PendingTouchEvent
@@ -123,7 +150,7 @@ private:
        Tizen::Base::Collection::ArrayListT<PendingTouchEvent*>* __pPendingTouchEventList;
        Tizen::Base::String __pendingArgument;
        bool __hasPendingRequest;
-       AppContext* __pAppContext;
+       _AppContext* __pAppContext;
        Tizen::Base::Collection::ArrayListT<PendingEvent*>* __pPendingEventList;
 
 };     // class _AppWidgetContext
index 62b73a3..d192c51 100644 (file)
@@ -40,28 +40,17 @@ namespace Tizen { namespace Shell  { namespace App
 class _AppWidgetContextBase
        : public Tizen::Base::Object
 {
-protected:
-       enum _AppWidgetProviderState
-       {
-               INVALID = 0,
-               RUNNING,
-               SUSPENDED,
-       };
-
 public:
        _AppWidgetContextBase(target_type type, const Tizen::Base::String& userInfo, const Tizen::Base::String& providerId, const Tizen::Base::String& instanceId, int width, int height, int priority);
        virtual ~_AppWidgetContextBase(void);
        virtual void OnPopupCreated(double x, double y, int width, int height) = 0;
        virtual void OnPopupDestoyed(void) = 0;
        virtual result SendTouchEvent(buffer_event event, double timestamp, double x, double y) = 0;
-       //virtual result SendPendingEvent(void) = 0;
-       virtual void SetIpcClientId(int clientId);
-       int GetClientId(void) const;
-       bool HasValidClientId(void) const;
+
        // for buffered appWidget
        int GetSharedMemId(int w, int h);
        result ReleaseSharedMem(void);
-       void Suspend(void);
+
        Tizen::Base::String GetInstanceId(void) const;
        int GetWidth(void) const;
        int GetHeight(void) const;
@@ -69,8 +58,9 @@ public:
        Tizen::Base::String GetAppId(void) const;
        int GetPriority(void) const;
        Tizen::Base::String GetProviderName(void) const;
-       bool IsRunning(void) const;
-       int GetProviderState(void) const;
+
+       void OnDisconnected(void);
+       bool IsRemoteBufferCreated(void) const;
 
 protected:
        bool IsSharedMemCreated(void) const;
@@ -83,6 +73,9 @@ protected:
        void SetWidth(int width);
        void SetHeight(int height);
 
+protected:
+       bool __isRemoteBufferCreated;
+
 private:
        target_type __type;
        Tizen::Base::String __userInfo;
@@ -97,7 +90,6 @@ private:
        Tizen::Base::String __providerName;
        struct livebox_buffer *__buffer_info;
        void *__buffer;
-       _AppWidgetProviderState __providerState;
 
 };     // class _AppWidgetContextBase
 
index 6ac4bf7..2ec25d8 100644 (file)
@@ -48,7 +48,6 @@ public:
        static AppWidgetManagerService* CreateInstance(const char* pServiceIdForCoreDaemon);
        _AppWidgetContext* AddAppWidget(const Tizen::Base::String& name, const Tizen::Base::String& appId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority);
        result RemoveAppWidget(const char* pPackageName, const char* pId, bool free);
-       int Find(const Tizen::App::AppId& appId) const;
        result RequestUpdate(_AppWidgetContext* pAppWidgetContext, const Tizen::Base::String& argument);
        int GetProviderCount(const Tizen::Base::String& appId) const;
 
@@ -97,7 +96,6 @@ private:
        virtual void OnSettingChanged(Tizen::Base::String &     key);
 
        // helpers
-       result SetIpcClientIds(const Tizen::App::AppId& appId, int clientId);
        int UpdateAllAppWidgetsByAppId(const Tizen::Base::String& appId);
 
        void StartPingTimer(void);
@@ -118,7 +116,7 @@ private:
 private:
        static AppWidgetManagerService* __pTheInstance;
        Tizen::Base::Collection::HashMapT<Tizen::Base::String, _AppWidgetContext*> __appWidgetContextList;
-       Tizen::Base::Collection::HashMapT<Tizen::Base::String, AppContext*> __appContextList;
+       Tizen::Base::Collection::HashMapT<Tizen::Base::String, _AppContext*> __appContextList;
        Tizen::Base::Runtime::Timer __pingTimer;
        _TaskHandlerThread      __handlerThread;
 
index 4d10284..f03dcc1 100644 (file)
@@ -83,8 +83,6 @@ protected:
        // _IIpcServerEventListener
        virtual void OnIpcServerStarted(const Tizen::Io::_IpcServer& server);
        virtual void OnIpcServerStopped(const Tizen::Io::_IpcServer& server);
-       virtual void OnIpcClientConnected(const Tizen::Io::_IpcServer& server, int clientId);
-       virtual void OnIpcClientDisconnected(const Tizen::Io::_IpcServer&server, int clientId);
        virtual void OnIpcRequestReceived(Tizen::Io::_IpcServer& server, const IPC::Message& message);
 
        result StartIpcServer(void);
index 02daa51..656e479 100644 (file)
@@ -50,6 +50,7 @@ public:
 
 private:
        virtual Tizen::Base::Collection::HashMap* CreateRequestArgsN(void);
+       int GetClientId(void) const;
 
 private:
        _AppWidgetContext* __pParent;
index e6c4c14..bb91d1f 100644 (file)
@@ -53,7 +53,7 @@ const String APPWIDGET_ON_TOUCH = L"http://tizen.org/appcontrol/appwidget/touch"
 
 const int UPDATE_PERIOD_MSEC_MIN = 1800000;    // 30min
 
-_AppWidgetContext::_AppWidgetContext(AppContext* pAppContext, const String& info, const String& providerId, const String& instanceId, int width, int height, int period, int priority)
+_AppWidgetContext::_AppWidgetContext(_AppContext* pAppContext, const String& info, const String& providerId, const String& instanceId, int width, int height, int period, int priority)
        :_AppWidgetContextBase(TYPE_LB, info, providerId, instanceId, width, height, priority)
        ,__pAppWidgetPopup(null)
        ,__updateMillis(period)
@@ -120,7 +120,7 @@ _AppWidgetContext::~_AppWidgetContext(void)
        }
 }
 
-AppContext*
+_AppContext*
 _AppWidgetContext::GetAppContext(void) const
 {
        return __pAppContext;
@@ -262,7 +262,6 @@ void
 _AppWidgetContext::OnPopupCreated(double x, double y, int width, int height)
 {
        __pAppWidgetPopup = new (nothrow) _AppWidgetPopupContext(GetUserInfo(), GetProviderId(), GetInstanceId(), GetWidth(), GetHeight(), GetPriority(), this);
-       __pAppWidgetPopup->SetIpcClientId(GetClientId());
        __pAppWidgetPopup->OnPopupCreated(x, y, width, height);
 }
 
@@ -358,7 +357,7 @@ _AppWidgetContext::SendPendingTouchEvent(void)
 result
 _AppWidgetContext::SendTouchEvent(buffer_event eventType, double timeStamp, double x, double y)
 {
-       if (HasValidClientId() && IsRunning())
+       if (__pAppContext->GetConnectionState() == _AppContext::CONNECTED && IsRemoteBufferCreated())
        {
                SysAssert(IsSharedMemCreated() == true);
                SysLog(NID_SHELL, "%d, %f, %f", eventType, x, y);
@@ -390,14 +389,18 @@ _AppWidgetContext::SendRequestToApp(const AppId& appId, const String& operation,
 {
        result r = E_SUCCESS;
 
-       if (AppManager::GetInstance()->IsRunning(appId) == false)
+       if ( __pAppContext->GetConnectionState() == _AppContext::NONE || __pAppContext->GetConnectionState() == _AppContext::DISCONNECTED)
        {
                SysLog(NID_SHELL, "The application is not running.");
-               return _AppWidgetContextBase::SendRequestToApp(appId, operation, pArgs);
+               result r = _AppWidgetContextBase::SendRequestToApp(appId, operation, pArgs);
+               SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "[%s] Failed to SendRequestToApp", GetErrorMessage(r));
+
+               __pAppContext->__isWaitingResult = true;
+               __pAppContext->SetConnectionState(_AppContext::CONNECTING);
        }
        else
        {
-               if (!HasValidClientId() || __pAppContext->__isWaitingResult == true)
+               if ( __pAppContext->GetConnectionState() == _AppContext::CONNECTING || __pAppContext->__isWaitingResult == true)
                {
                        SysLog(NID_SHELL, "The application is running but IPC is not connected yet.");
                        __pPendingEventList->Add(new (nothrow) PendingEvent(operation, pArgs));
@@ -472,10 +475,10 @@ _AppWidgetContext::GetLastUpdatedTime(void) const
        return __lastUpdatedTime;
 }
 
-void
-_AppWidgetContext::SetIpcClientId(int clientId)
+int
+_AppWidgetContext::GetClientId(void) const
 {
-       _AppWidgetContextBase::SetIpcClientId(clientId);
+       return GetAppContext()->GetClientId();
 }
 
 void
index bfe9535..4c77a35 100644 (file)
@@ -99,10 +99,9 @@ _AppWidgetContextBase::_AppWidgetContextBase(target_type type, const String& use
        ,__height(height)
        ,__priority(priority)
        ,__isForeground(true)
-       ,__ipcClientId(-1)
        ,__buffer_info(null)
        ,__buffer(null)
-       ,__providerState(INVALID)
+       ,__isRemoteBufferCreated(false)
 {
        _AppWidgetManagerImpl::ExtractAppIdAndProviderName(providerId, __appId, __providerName);
 
@@ -115,19 +114,6 @@ _AppWidgetContextBase::~_AppWidgetContextBase(void)
        ReleaseSharedMem();
 }
 
-void
-_AppWidgetContextBase::SetIpcClientId(int clientId)
-{
-       __ipcClientId = clientId;
-}
-
-bool
-_AppWidgetContextBase::HasValidClientId(void) const
-{
-       SysLog(NID_SHELL, "%d", __ipcClientId);
-       return (__ipcClientId > -1);
-}
-
 bool
 _AppWidgetContextBase::IsSharedMemCreated(void) const
 {
@@ -160,7 +146,7 @@ _AppWidgetContextBase::GetSharedMemId(int w, int h)
     }
 
     int bufferId = __buffer_info->fb->handle;
-    __providerState = RUNNING;
+    __isRemoteBufferCreated = true;
 
     SysLog(NID_SHELL, "(%d) Exit", bufferId);
     return bufferId;
@@ -168,21 +154,15 @@ _AppWidgetContextBase::GetSharedMemId(int w, int h)
 
 
 void
-_AppWidgetContextBase::Suspend(void)
+_AppWidgetContextBase::OnDisconnected(void)
 {
-       __providerState = SUSPENDED;
+       __isRemoteBufferCreated = false;
 }
 
 bool
-_AppWidgetContextBase::IsRunning(void) const
+_AppWidgetContextBase::IsRemoteBufferCreated(void) const
 {
-       return (__providerState == RUNNING);
-}
-
-int
-_AppWidgetContextBase::GetProviderState(void) const
-{
-       return static_cast<int>(__providerState);
+       return __isRemoteBufferCreated;
 }
 
 result
@@ -253,12 +233,6 @@ _AppWidgetContextBase::IsForeground(void) const
 }
 
 int
-_AppWidgetContextBase::GetClientId(void) const
-{
-       return __ipcClientId;
-}
-
-int
 _AppWidgetContextBase::GetWidth(void) const
 {
        return __width;
index 0624d51..93b9f19 100644 (file)
@@ -160,30 +160,6 @@ AppWidgetManagerService::Find(const String& appId, const String& instanceId) con
 }
 
 int
-AppWidgetManagerService::Find(const String& appId) const
-{
-       int clientId = -1;
-
-       unique_ptr< IMapEnumeratorT<String, _AppWidgetContext*> > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN());
-       SysTryReturn(NID_SHELL, pAppWidgetContextEnum, clientId, E_SYSTEM, "[E_SYSTEM]");
-
-       while (pAppWidgetContextEnum->MoveNext() == E_SUCCESS)
-       {
-               _AppWidgetContext* pValue = null;
-               pAppWidgetContextEnum->GetValue(pValue);
-
-               if (pValue->GetAppId() == appId)
-               {
-                       clientId = pValue->GetClientId();
-                       break;
-               }
-       }
-
-       SysLog(NID_SHELL, "clientId is %d", clientId);
-       return clientId;
-}
-
-int
 AppWidgetManagerService::GetProviderCount(const String& appId) const
 {
        int providerCount = 0;
@@ -206,26 +182,52 @@ AppWidgetManagerService::GetProviderCount(const String& appId) const
        return providerCount;
 }
 
-result
-AppWidgetManagerService::SetIpcClientIds(const Tizen::App::AppId& appId, int clientId)
+
+void
+AppWidgetManagerService::OnIpcClientConnected(const _IpcServer& server, int clientId)
 {
+       String appId = server.GetClientApplicationId();
+       SysLog(NID_SHELL, "(%ls)\n", appId.GetPointer());
+
+       _AppContext* pAppContext = null;
+       __appContextList.GetValue(appId, pAppContext);
+       if (pAppContext)
+       {
+               pAppContext->SetClientId(clientId);
+               pAppContext->SetConnectionState(_AppContext::CONNECTED);
+       }
+}
+
+void
+AppWidgetManagerService::OnIpcClientDisconnected(const _IpcServer& server, int clientId)
+{
+       String appId = server.GetClientApplicationId();
+       SysLog(NID_SHELL, "(%ls)\n", appId.GetPointer());
+
+       _AppContext* pAppContext = null;
+       __appContextList.GetValue(appId, pAppContext);
+       if (pAppContext)
+       {
+               pAppContext->SetClientId(-1);
+               pAppContext->SetConnectionState(_AppContext::DISCONNECTED);
+       }
+
        unique_ptr< IMapEnumeratorT<String, _AppWidgetContext*> > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN());
-       SysTryReturnResult(NID_SHELL, pAppWidgetContextEnum, E_SYSTEM, "");
+       SysTryReturnVoidResult(NID_SHELL, pAppWidgetContextEnum, E_SYSTEM, "");
 
+       _AppWidgetContext* pValue = null;
        while (pAppWidgetContextEnum->MoveNext() == E_SUCCESS)
        {
-               _AppWidgetContext* pValue = null;
+
                pAppWidgetContextEnum->GetValue(pValue);
                SysSecureLog(NID_SHELL, "%ls, %ls, %ls", pValue->GetInstanceId().GetPointer(), pValue->GetProviderId().GetPointer(), appId.GetPointer());
 
                if (pValue->GetAppId() == appId)
                {
-                       pValue->SetIpcClientId(clientId);
-
                        if (clientId == -1)
                        {
                                SysLog(NID_SHELL, "client is unregistered.");
-                               pValue->Suspend();
+                               pValue->OnDisconnected();
 
                                if (pValue->GetAppWidgetPopup())
                                {
@@ -238,26 +240,6 @@ AppWidgetManagerService::SetIpcClientIds(const Tizen::App::AppId& appId, int cli
                        }
                }
        }
-
-       return E_SUCCESS;
-}
-
-void
-AppWidgetManagerService::OnIpcClientConnected(const _IpcServer& server, int clientId)
-{
-       String appId = server.GetClientApplicationId();
-       SysLog(NID_SHELL, "(%ls)\n", appId.GetPointer());
-
-       this->SetIpcClientIds(appId, clientId);
-}
-
-void
-AppWidgetManagerService::OnIpcClientDisconnected(const _IpcServer& server, int clientId)
-{
-       String appId = server.GetClientApplicationId();
-       SysLog(NID_SHELL, "(%ls)\n", appId.GetPointer());
-
-       this->SetIpcClientIds(appId, -1);
 }
 
 wchar_t KEY_SETTING_FONT_SIZE[] = L"http://tizen.org/setting/font.size";
@@ -285,12 +267,12 @@ AppWidgetManagerService::AddAppWidget(const Tizen::Base::String& name, const Tiz
        String providerName;
        _AppWidgetManagerImpl::ExtractAppIdAndProviderName(providerId, appId, providerName);
 
-       AppContext* pAppContext = null;
+       _AppContext* pAppContext = null;
        bool containsKey = false;
        __appContextList.ContainsKey(appId, containsKey);
        if( containsKey == false)
        {
-               pAppContext = new(std::nothrow) AppContext;
+               pAppContext = new(std::nothrow) _AppContext;
                __appContextList.Add(appId, pAppContext);
        }
        else
@@ -301,17 +283,6 @@ AppWidgetManagerService::AddAppWidget(const Tizen::Base::String& name, const Tiz
        _AppWidgetContext* pAppWidgetContext = new (std::nothrow)_AppWidgetContext(pAppContext, name, providerId, instanceId, width, height, period, priority);
        SysTryReturn(NID_SHELL, pAppWidgetContext, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY]");
 
-       int clientId = AppWidgetManagerService::GetInstance()->Find(appId);
-       if (clientId != -1)
-       {
-               SysLog(NID_SHELL, "There is same parent application.");
-               pAppWidgetContext->SetIpcClientId(clientId);
-       }
-       else
-       {
-               SysLog(NID_SHELL, "There is no same parent application.");
-       }
-
        __appWidgetContextList.Add(pAppWidgetContext->GetInstanceId(), pAppWidgetContext);
        pAppWidgetContext->OnAdded();
 
@@ -722,12 +693,6 @@ AppWidgetManagerService::RequestSharedMemoryIdForPD(const Tizen::App::AppId& app
        _AppWidgetPopupContext* pPd = pAppWidgetContext->GetAppWidgetPopup();
        SysSecureTryReturnResult(NID_SHELL, pPd , E_SYSTEM, "[E_SYSTEM] pPd is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer());
 
-       if(pPd->HasValidClientId() == false)
-       {
-               String fullAppId = __pIpcServer->GetClientApplicationId();
-               pPd->SetIpcClientId(__pIpcServer->GetClientId());
-       }
-
        shmId = pPd->GetSharedMemId(width, height);
        SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , shmId != -1, "[E_SYSTEM] failed to GetSharedMemId for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer());
 
@@ -813,7 +778,7 @@ AppWidgetManagerService::SendResult(const Tizen::App::AppId& appId, const Tizen:
                                pAppWidgetContextEnum->GetValue(pAppWidgetContext);
                                SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext, E_SYSTEM, "pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer());
 
-                               if (pAppWidgetContext->GetProviderState() == 0)
+                               if (pAppWidgetContext->GetAppContext()->GetConnectionState() == _AppContext::NONE)
                                {
                                        break;
                                }
index 28a8835..09c2d78 100644 (file)
@@ -98,7 +98,7 @@ _AppWidgetManagerStub::OnRequestUpdateInstance(const Tizen::Base::String& instan
 bool
 _AppWidgetManagerStub::OnRequestSharedMemoryId(const String& instanceId, int w, int h, int* pShmId)
 {
-       SysSecureLog(NID_SHELL, "(instanceId:%d)xxx", instanceId.GetPointer());
+       SysSecureLog(NID_SHELL, "(instanceId:%ls)", instanceId.GetPointer());
 
        RequestSharedMemoryId(__pIpcServer->GetClientPackageId(), instanceId, w, h, *pShmId);
 
@@ -108,7 +108,7 @@ _AppWidgetManagerStub::OnRequestSharedMemoryId(const String& instanceId, int w,
 bool
 _AppWidgetManagerStub::OnRequestSharedMemoryIdForPD(const String& instanceId, int w, int h, int* pShmId)
 {
-       SysSecureLog(NID_SHELL, "(instanceId:%d)", instanceId.GetPointer());
+       SysSecureLog(NID_SHELL, "(instanceId:%ls)", instanceId.GetPointer());
 
        RequestSharedMemoryIdForPD(__pIpcServer->GetClientPackageId(), instanceId, w, h, *pShmId);
 
@@ -249,17 +249,4 @@ _AppWidgetManagerStub::OnIpcServerStopped(const _IpcServer& server)
        SysLog(NID_SHELL, "\n");
 }
 
-void
-_AppWidgetManagerStub::OnIpcClientConnected(const _IpcServer& server, int clientId)
-{
-       SysLog(NID_SHELL, "(clientId:%d)\n", clientId);
-
-}
-
-void
-_AppWidgetManagerStub::OnIpcClientDisconnected(const _IpcServer& server, int clientId)
-{
-       SysLog(NID_SHELL, "(appId:%ls, clientId:%d)\n", server.GetClientApplicationId().GetPointer(), clientId);
-}
-
 }}}    // Tizen::Shell::App
index e328f39..39e2bdc 100644 (file)
@@ -125,4 +125,10 @@ _AppWidgetPopupContext::CreateRequestArgsN(void)
        return pArgs;
 }
 
+int
+_AppWidgetPopupContext::GetClientId(void) const
+{
+       return __pParent->GetAppContext()->GetClientId();
+}
+
 }}} // Tizen::Shell::App