: DSObjectPrivate(p_ptr),
__p_ptr(p_ptr),
__displayDevice(nullptr),
- __canvas(nullptr)
+ __canvas(nullptr),
+ __dsAppinfoMgr(nullptr)
{
__eventLoop = DSEventLoop::getInstance();
DSWaylandCompositor::releaseInstance();
DSBufferManager::releaseInstance();
DSEventLoop::releaseInstance();
+ DSTizenAppinfoMgr::releaseInstance();
}
bool DSCompositorPrivate::run()
__initializeWlDisplay();
__initializeOutputs();
__initializeBufferManager();
+ __initializeTizenAppinfoMgr();
__canvas = pub->_onInitialized();
if (!__canvas) {
DSLOG_ERR("Compositor", "_onInitialized() fails.");
__dsBufferManager = DSBufferManager::getInstance();
}
+void DSCompositorPrivate::__initializeTizenAppinfoMgr()
+{
+ __dsAppinfoMgr = DSTizenAppinfoMgr::getInstance();
+}
+
} // namespace display_server
#include "DSEventLoop.h"
#include "IDSDisplayDevice.h"
#include "DSBufferManager.h"
+#include "DSTizenAppinfoMgr.h"
namespace display_server
{
class DSSeat;
class DSInput;
class DSWaylandCompositor;
+class DSTizenAppinfoMgr;
class DSCompositorPrivate : public DSObjectPrivate
{
std::list<std::shared_ptr<IDSOutput>> __outputList;
std::shared_ptr<DSCanvas> __canvas;
DSBufferManager *__dsBufferManager;
+ DSTizenAppinfoMgr * __dsAppinfoMgr;
void __initializeWlDisplay();
void __initializeOutputs();
void __initializeBufferManager();
+ void __initializeTizenAppinfoMgr();
};
}
namespace display_server
{
-DSTizenAppinfo::DSTizenAppinfo()
- : __pid(-1),
- __base_output_available(false),
- __base_output_width(0),
- __base_output_height(0)
-{
-}
-
DSTizenAppinfo::DSTizenAppinfo(std::string appid)
: __pid(-1),
__base_output_available(false),
class DSTizenAppinfo : public DSObject
{
public:
- DSTizenAppinfo();
+ DSTizenAppinfo() = delete;
DSTizenAppinfo(std::string appid);
virtual ~DSTizenAppinfo();
--- /dev/null
+/*
+* Copyright © 2020 Samsung Electronics co., Ltd. All Rights Reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice (including the next
+* paragraph) shall be included in all copies or substantial portions of the
+* Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*/
+
+#include "DSTizenAppinfoMgr.h"
+#include "DSTizenAppinfoMgrPrivate.h"
+#include "DSWaylandTizenAppinfo.h"
+#include "DSDebugLog.h"
+
+namespace display_server
+{
+
+int DSTizenAppinfoMgr::__refCount { 0 };
+std::mutex DSTizenAppinfoMgr::__mutex;
+DSTizenAppinfoMgr* DSTizenAppinfoMgr::__appinfoMgr { nullptr };
+
+DSTizenAppinfoMgrPrivate::DSTizenAppinfoMgrPrivate(DSTizenAppinfoMgr *p_ptr)
+ : DSObjectPrivate(p_ptr),
+ __p_ptr(p_ptr)
+{
+}
+
+DSTizenAppinfoMgrPrivate::~DSTizenAppinfoMgrPrivate()
+{
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgrPrivate::getTizenAppinfo(std::string appId)
+{
+ auto it = __appIdMap.find(appId);
+ if (it != __appIdMap.end()) {
+ return it->second;
+ }
+ return nullptr;
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgrPrivate::getTizenAppinfo(pid_t pid)
+{
+ std::shared_ptr<DSTizenAppinfo> ptr_appinfo;
+ DSTizenAppinfo * appinfo;
+
+ for (auto it = __appIdMap.begin(); it != __appIdMap.end(); it++) {
+ ptr_appinfo = it->second;
+ if (ptr_appinfo == nullptr)
+ continue;
+
+ appinfo = ptr_appinfo.get() ;
+ if ((appinfo) && (appinfo->pid() == pid)) {
+ return ptr_appinfo;
+ }
+ }
+ return nullptr;
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgrPrivate::addTizenAppinfo(std::string appId)
+{
+ std::shared_ptr<DSTizenAppinfo> appinfo = nullptr;
+
+ appinfo = std::make_shared<DSTizenAppinfo>(appId);
+ if (appinfo != nullptr) {
+ __appIdMap.emplace(appId, appinfo);
+ }
+ return appinfo;
+}
+
+bool DSTizenAppinfoMgrPrivate::removeTizenAppinfo(std::string appId)
+{
+ auto it = __appIdMap.find(appId);
+ if (it != __appIdMap.end()) {
+ __appIdMap.erase(it);
+ return true;
+ }
+ return false;
+}
+
+DSTizenAppinfoMgr::DSTizenAppinfoMgr(DSObject *parent)
+ : DS_INIT_PRIVATE_PTR(DSTizenAppinfoMgr)
+{
+}
+
+DSTizenAppinfoMgr::~DSTizenAppinfoMgr()
+{
+}
+
+DSTizenAppinfoMgr *DSTizenAppinfoMgr::getInstance()
+{
+ std::lock_guard<std::mutex> tLock(__mutex);
+
+ if (!__appinfoMgr && (__refCount == 0))
+ {
+ __appinfoMgr = new DSTizenAppinfoMgr(new DSObject);
+ DSLOG_INF("DSTizenAppinfoMgr",
+ "DSTizenAppinfoMgr instance has been created !");
+ }
+
+ ++__refCount;
+ return __appinfoMgr;
+}
+
+void DSTizenAppinfoMgr::releaseInstance()
+{
+ std::lock_guard<std::mutex> tLock(__mutex);
+
+ --__refCount;
+ if (__refCount < 0)
+ __refCount = 0;
+
+ if ((0 == __refCount) && __appinfoMgr)
+ {
+ delete __appinfoMgr;
+ __appinfoMgr = nullptr;
+ DSLOG_INF("DSTizenAppinfoMgr",
+ "DSTizenAppinfoMgr instance has been removed !");
+ }
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::getTizenAppinfo(std::string appId)
+{
+ DS_GET_PRIV(DSTizenAppinfoMgr);
+
+ return priv->getTizenAppinfo(appId);
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::getTizenAppinfo(pid_t pid)
+{
+ DS_GET_PRIV(DSTizenAppinfoMgr);
+
+ return priv->getTizenAppinfo(pid);
+}
+
+std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::addTizenAppinfo(std::string appId)
+{
+ DS_GET_PRIV(DSTizenAppinfoMgr);
+
+ std::shared_ptr<DSTizenAppinfo> appinfo = getTizenAppinfo(appId);
+ if (appinfo == nullptr) {
+ appinfo = priv->addTizenAppinfo(appId);
+ DSLOG_INF("DSTizenAppinfoMgr", "New TizenAppinfo(apppId:%s) added", appId.c_str());
+ }
+ else
+ DSLOG_INF("DSTizenAppinfoMgr", "Adding TizenAppinfo(apppId:%s) failed..", appId.c_str());
+ return appinfo;
+}
+
+bool DSTizenAppinfoMgr::removeTizenAppinfo(std::string appId)
+{
+ DS_GET_PRIV(DSTizenAppinfoMgr);
+ bool ret = false;
+
+ ret = priv->removeTizenAppinfo(appId);
+ if (ret)
+ DSLOG_INF("DSTizenAppinfoMgr", "Removing TizenAppinfo(appId:%s) failedd..", appId.c_str());
+ else
+ DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo(appId:%s) removed", appId.c_str());
+ return ret;
+}
+
+void DSTizenAppinfoMgr::updateTizenAppinfo(std::string appId, pid_t pid)
+{
+ std::shared_ptr<DSTizenAppinfo> ptr_appinfo;
+ DSTizenAppinfo * appinfo;
+
+ ptr_appinfo = getTizenAppinfo(appId);
+ if (ptr_appinfo == nullptr)
+ return;
+
+ appinfo = ptr_appinfo.get();
+ if (appinfo != nullptr)
+ {
+ appinfo->setPid(pid);
+ DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo(appId:%s) set to pid:%d", appId.c_str(), pid);
+ }
+}
+
+bool DSTizenAppinfoMgr::getBaseOutputResolution(pid_t pid, int *res_w, int *res_h)
+{
+ std::shared_ptr<DSTizenAppinfo> ptr_appinfo;
+ DSTizenAppinfo * appinfo;
+
+ ptr_appinfo = getTizenAppinfo(pid);
+ if (ptr_appinfo = nullptr)
+ return false;
+
+ appinfo = ptr_appinfo.get();
+ if (appinfo == nullptr)
+ return false;
+
+ if (!appinfo->base_output_available())
+ return false;
+
+ if (res_w) *res_w = appinfo->base_output_width();
+ if (res_h) *res_h = appinfo->base_output_height();
+ return true;
+}
+
+}
namespace display_server
{
+class DSTizenAppinfoMgrPrivate;
+
class DSTizenAppinfoMgr : public DSObject
{
+DS_PIMPL_USE_PRIVATE(DSTizenAppinfoMgr);
public:
- DSTizenAppinfoMgr();
- virtual ~DSTizenAppinfoMgr();
+ static DSTizenAppinfoMgr *getInstance();
+ static void releaseInstance();
std::shared_ptr<DSTizenAppinfo> getTizenAppinfo(std::string appId);
std::shared_ptr<DSTizenAppinfo> getTizenAppinfo(pid_t pid);
std::shared_ptr<DSTizenAppinfo> addTizenAppinfo(std::string appId);
- void removeTizenAppinfo(std::string appId);
+ bool removeTizenAppinfo(std::string appId);
void updateTizenAppinfo(std::string appId, pid_t pid);
- int numAppinfo()
- {
- return __numAppinfo;
- };
+ bool getBaseOutputResolution(pid_t pid, int *res_w, int *res_h);
private:
- DSWaylandCompositor *__wlCompositor;
- DSWaylandTizenAppinfo *__wlAppinfo;
- std::unordered_map <std::string, std::shared_ptr<DSTizenAppinfo>> __appIdMap;
- int __numAppinfo;
+ static std::mutex __mutex;
+ static DSTizenAppinfoMgr *__appinfoMgr;
+ static int __refCount;
+
+ DSTizenAppinfoMgr() = delete;
+ ~DSTizenAppinfoMgr();
+ DSTizenAppinfoMgr(DSObject *parent);
};
}
--- /dev/null
+/*
+* Copyright © 2020 Samsung Electronics co., Ltd. All Rights Reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice (including the next
+* paragraph) shall be included in all copies or substantial portions of the
+* Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*/
+
+#ifndef _DS_TIZENAPPINFO_MGR_PRIVATE_H_
+#define _DS_TIZENAPPINFO_MGR_PRIVATE_H_
+
+#include "DSTizenAppinfoMgr.h"
+
+namespace display_server
+{
+
+class DSTizenAppinfoMgrPrivate : public DSObjectPrivate
+{
+ DS_PIMPL_USE_PUBLIC(DSTizenAppinfoMgr);
+public:
+ DSTizenAppinfoMgrPrivate() = delete;
+ DSTizenAppinfoMgrPrivate(DSTizenAppinfoMgr *p_ptr);
+ ~DSTizenAppinfoMgrPrivate();
+
+ std::shared_ptr<DSTizenAppinfo> getTizenAppinfo(std::string appId);
+ std::shared_ptr<DSTizenAppinfo> getTizenAppinfo(pid_t pid);
+
+ std::shared_ptr<DSTizenAppinfo> addTizenAppinfo(std::string appId);
+ bool removeTizenAppinfo(std::string appId);
+
+private:
+ std::unordered_map <std::string, std::shared_ptr<DSTizenAppinfo>> __appIdMap;
+
+};
+
+}
+
+#endif
\ No newline at end of file
+++ /dev/null
-/*
-* Copyright © 2020 Samsung Electronics co., Ltd. All Rights Reserved.
-*
-* Permission is hereby granted, free of charge, to any person obtaining a
-* copy of this software and associated documentation files (the "Software"),
-* to deal in the Software without restriction, including without limitation
-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
-* and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice (including the next
-* paragraph) shall be included in all copies or substantial portions of the
-* Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-* DEALINGS IN THE SOFTWARE.
-*/
-
-#include "DSTizenAppinfoMgr.h"
-#include "DSWaylandTizenAppinfo.h"
-#include "DSDebugLog.h"
-
-namespace display_server
-{
-
-DSTizenAppinfoMgr::DSTizenAppinfoMgr()
- :__numAppinfo(0)
-{
- __wlCompositor = DSWaylandCompositor::getInstance();
- __wlAppinfo = new DSWaylandTizenAppinfo(__wlCompositor, this);
-}
-
-DSTizenAppinfoMgr::~DSTizenAppinfoMgr()
-{
-}
-
-std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::getTizenAppinfo(std::string appId)
-{
- auto it = __appIdMap.find(appId);
- if (it != __appIdMap.end())
- {
- DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo returned by appId:%s", appId.c_str());
- return it->second;
- }
- return nullptr;
-}
-
-std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::getTizenAppinfo(pid_t pid)
-{
- std::unordered_map <std::string, std::shared_ptr<DSTizenAppinfo>>::iterator it;
- for (it = __appIdMap.begin(); it != __appIdMap.end(); it++) {
- std::shared_ptr<DSTizenAppinfo> ptr_appinfo = it->second;
- DSTizenAppinfo * appinfo;
- appinfo = ptr_appinfo.get() ;
- if (appinfo->pid() == pid) {
- DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo returned by pid:%d", pid);
- return ptr_appinfo;
- }
- }
- return nullptr;
-}
-
-std::shared_ptr<DSTizenAppinfo> DSTizenAppinfoMgr::addTizenAppinfo(std::string appId)
-{
- std::shared_ptr<DSTizenAppinfo> appinfo = getTizenAppinfo(appId);
- if (appinfo == nullptr) {
- appinfo = std::make_shared<DSTizenAppinfo>(appId);
- if (appinfo != nullptr)
- {
- __appIdMap.emplace(appId, appinfo);
- __numAppinfo++;
- DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo(appId:%s) added", appId.c_str());
- return appinfo;
- }
- }
- DSLOG_INF("DSTizenAppinfoMgr", "No TizenAppinfo added by apppId:%s", appId.c_str());
- return appinfo;
-}
-
-void DSTizenAppinfoMgr::removeTizenAppinfo(std::string appId)
-{
- auto it = __appIdMap.find(appId);
- if (it != __appIdMap.end()) {
- DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo(appId:%s) removed", appId.c_str());
- __appIdMap.erase(it);
- --__numAppinfo;
- }
- return;
-}
-
-void DSTizenAppinfoMgr::updateTizenAppinfo(std::string appId, pid_t pid)
-{
- std::shared_ptr<DSTizenAppinfo> ptr_appinfo = getTizenAppinfo(appId);
- DSTizenAppinfo * appinfo;
- appinfo = ptr_appinfo.get();
- if (appinfo != nullptr)
- {
- appinfo->setPid(pid);
- DSLOG_INF("DSTizenAppinfoMgr", "TizenAppinfo(appId:%s) set to pid:%d", appId.c_str(), pid);
- }
-}
-}
#include "DSWaylandCompositor.h"
#include "DSWaylandZxdgShellV6.h"
#include "DSWaylandTizenPolicy.h"
-#include "DSTizenAppinfoMgr.h"
+#include "DSWaylandTizenAppinfo.h"
namespace display_server
{
__initShell();
__initTizenPolicy();
- __initTizenAppinfoMgr();
+ __initTizenAppinfo();
}
catch(const std::runtime_error& e)
{
return true;
}
-bool DSWaylandExtensionPrivate::__initTizenAppinfoMgr(void)
+bool DSWaylandExtensionPrivate::__initTizenAppinfo(void)
{
- __tzAppinfoMgr = std::make_shared<DSTizenAppinfoMgr>();
- if (__tzAppinfoMgr == nullptr)
+ __tzAppinfo = std::make_shared<DSWaylandTizenAppinfo>(__compositor);
+ if (__tzAppinfo == nullptr)
{
throw std::runtime_error(__func__);
return false;
class DSWaylandZxdgShellV6;
class DSWaylandTizenPolicy;
-class DSTizenAppinfoMgr;
+class DSWaylandTizenAppinfo;
class DSWaylandExtensionPrivate : public DSObjectPrivate
{
private:
bool __initShell(void);
bool __initTizenPolicy(void);
- bool __initTizenAppinfoMgr(void);
+ bool __initTizenAppinfo(void);
private:
DSWaylandCompositor *__compositor;
std::shared_ptr<DSWaylandZxdgShellV6> __zxdgShell;
std::shared_ptr<DSWaylandTizenPolicy> __tzPolicy;
- std::shared_ptr<DSTizenAppinfoMgr> __tzAppinfoMgr;
+ std::shared_ptr<DSWaylandTizenAppinfo> __tzAppinfo;
};
{
DSLOG_DBG("TizenAppinfoPriv", "");
DS_GET_PUB(DSWaylandTizenAppinfo);
+ bool result;
+ int res_w, res_h;
if (pub->__dsAppinfoMgr == nullptr)
return;
- std::shared_ptr<DSTizenAppinfo> ptr_appinfo = pub->__dsAppinfoMgr->getTizenAppinfo(pid);
- DSTizenAppinfo *appinfo = ptr_appinfo.get();
- send_base_output_resolution_done(pid, appinfo->base_output_width(), appinfo->base_output_height());
- DSLOG_DBG("TizenAppinfoPriv", "SEND base_output_resolution_done event with width(%d), height(%d)", appinfo->base_output_width(), appinfo->base_output_height());
+ result = pub->__dsAppinfoMgr->getBaseOutputResolution(pid, &res_w, &res_h);
+ if (!result) {
+ /* TODO: Read configured resolution values */
+ }
+ send_base_output_resolution_done(pid, res_w, res_h);
+ DSLOG_DBG("TizenAppinfoPriv", "SEND base_output_resolution_done event with width(%d), height(%d)", res_w, res_h);
}
void DSWaylandTizenAppinfoPrivate::tizen_launch_appinfo_register_appid(Resource *resource, const std::string &appid)
{
DSWaylandTizenAppinfo::DSWaylandTizenAppinfo(DSWaylandCompositor *wlCompositor)
: DS_INIT_PRIVATE_PTR(DSWaylandTizenAppinfo),
__wlCompositor(wlCompositor),
- __isCreated(false),
- __dsAppinfoMgr(nullptr)
+ __isCreated(false)
{
this->initialize(__wlCompositor);
+ __dsAppinfoMgr = DSTizenAppinfoMgr::getInstance();
}
DSWaylandTizenAppinfo::DSWaylandTizenAppinfo(DSWaylandCompositor *wlCompositor, DSTizenAppinfoMgr *dsAppinfoMgr)
'DSCore/DSStruct.h',
'DSCore/DSCore.h',
'DSWaylandExtension/DSWaylandExtension.cpp',
- 'DSWaylandExtension/DSTizenAppinfo.h',
- 'DSWaylandExtension/DSTizenAppinfo.cpp',
- 'DSWaylandExtension/DSTizenAppinfoMgr.h',
- 'DSWaylandExtension/DSTizenAppinfoMgr.cpp',
+ 'DSTizenAppinfo/DSTizenAppinfo.h',
+ 'DSTizenAppinfo/DSTizenAppinfo.cpp',
+ 'DSTizenAppinfo/DSTizenAppinfoMgr.h',
+ 'DSTizenAppinfo/DSTizenAppinfoMgrPrivate.h',
+ 'DSTizenAppinfo/DSTizenAppinfoMgr.cpp',
'DSWindow/DSWindow.h',
'DSWindow/DSWindowPrivate.h',
'DSWindow/DSWindow.cpp',
'./DSClient',
'./DSXkb',
'./DSTextInput',
+ './DSTizenAppinfo',
)
libds_lib = shared_library(
TEST_F(DSTizenAppinfoTest, NewTizenAppinfo)
{
- DSTizenAppinfo *appinfo = new DSTizenAppinfo();
+ std::string appId1{"com.appinfo.first"};
+ DSTizenAppinfo *appinfo = new DSTizenAppinfo(appId1);
EXPECT_TRUE(appinfo != nullptr);
if (appinfo)
TEST_F(DSTizenAppinfoTest, NewTizenAppinfoMgr)
{
- DSTizenAppinfoMgr *appinfoMgr = new DSTizenAppinfoMgr();
+ DSTizenAppinfoMgr *appinfoMgr = DSTizenAppinfoMgr::getInstance();
EXPECT_TRUE(appinfoMgr != nullptr);
if (appinfoMgr)
{
std::string appId1{"com.appinfo.first"};
- std::string appId2{"com.appinfo.econd"};
+ std::string appId2{"com.appinfo.second"};
std::shared_ptr<DSTizenAppinfo> app1 = appinfoMgr->addTizenAppinfo(appId1);
EXPECT_TRUE(app1 != nullptr);
std::shared_ptr<DSTizenAppinfo> app2 = appinfoMgr->addTizenAppinfo(appId2);
EXPECT_TRUE(app2 != nullptr);
- EXPECT_TRUE(appinfoMgr->numAppinfo() == 2);
std::shared_ptr<DSTizenAppinfo> temp = appinfoMgr->getTizenAppinfo(appId2);
EXPECT_TRUE(temp != nullptr);
temp = appinfoMgr->getTizenAppinfo(pid);
appinfoMgr->removeTizenAppinfo(temp->appId());
- EXPECT_TRUE(appinfoMgr->numAppinfo() == 0);
-
- delete appinfoMgr;
+ DSTizenAppinfoMgr::releaseInstance();
}
}