blob: d067038a6e15f84b792ff04a72f77a394225381f [file] [log] [blame] [edit]
From 663fdb41cb3c44053fa71dfeeb960d93255c0947 Mon Sep 17 00:00:00 2001
From: binbar366 <Binu_Inbaraj@comcast.com>
Date: Thu, 14 Mar 2024 19:58:37 +0000
Subject: [PATCH] Performance Metrics Compilation fix
Signed-off-: Binu Inbaraj Binu_Inbaraj@comcast.com>
---
diff --git a/RDKShell/RDKShell.cpp b/RDKShell/RDKShell.cpp
index 81f90535..d5fbf61d 100755
--- a/RDKShell/RDKShell.cpp
+++ b/RDKShell/RDKShell.cpp
@@ -417,29 +417,6 @@ namespace WPEFramework {
private:
std::function<void()> _work;
};
- uint32_t cloneService(PluginHost::IShell* shell, const string& basecallsign, const string& newcallsign)
- {
- uint32_t result = Core::ERROR_ASYNC_FAILED;
- Core::Event event(false, true);
-#ifndef USE_THUNDER_R4
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatchType<void>>(Core::ProxyType<Job>::Create([&]() {
-#else
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatch>(Core::ProxyType<Job>::Create([&]() {
-#endif /* USE_THUNDER_R4 */
- auto interface = shell->QueryInterfaceByCallsign<PluginHost::IController>("");
- if (interface == nullptr) {
- result = Core::ERROR_UNAVAILABLE;
- std::cout << "no IController" << std::endl;
- } else {
- result = interface->Clone(basecallsign, newcallsign);
- std::cout << "IController clone status " << result << std::endl;
- interface->Release();
- }
- event.SetEvent();
- })));
- event.Lock();
- return result;
- }
uint32_t getValue(PluginHost::IShell* shell, const string& ns, const string& key, string& value)
{
uint32_t result;
@@ -516,52 +493,6 @@ namespace WPEFramework {
}
return result;
}
- uint32_t activate(PluginHost::IShell* shell, const string& callsign)
- {
- uint32_t result = Core::ERROR_ASYNC_FAILED;
- Core::Event event(false, true);
-#ifndef USE_THUNDER_R4
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatchType<void>>(Core::ProxyType<Job>::Create([&]() {
-#else
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatch>(Core::ProxyType<Job>::Create([&]() {
-#endif /* USE_THUNDER_R4 */
- auto interface = shell->QueryInterfaceByCallsign<PluginHost::IShell>(callsign);
- if (interface == nullptr) {
- result = Core::ERROR_UNAVAILABLE;
- std::cout << "no IShell for " << callsign << std::endl;
- } else {
- result = interface->Activate(PluginHost::IShell::reason::REQUESTED);
- std::cout << "IShell activate status " << result << " for " << callsign << std::endl;
- interface->Release();
- }
- event.SetEvent();
- })));
- event.Lock();
- return result;
- }
- uint32_t deactivate(PluginHost::IShell* shell, const string& callsign)
- {
- uint32_t result = Core::ERROR_ASYNC_FAILED;
- Core::Event event(false, true);
-#ifndef USE_THUNDER_R4
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatchType<void>>(Core::ProxyType<Job>::Create([&]() {
-#else
- Core::IWorkerPool::Instance().Submit(Core::ProxyType<Core::IDispatch>(Core::ProxyType<Job>::Create([&]() {
-#endif /* USE_THUNDER_R4 */
- auto interface = shell->QueryInterfaceByCallsign<PluginHost::IShell>(callsign);
- if (interface == nullptr) {
- result = Core::ERROR_UNAVAILABLE;
- std::cout << "no IShell for " << callsign << std::endl;
- } else {
- result = interface->Deactivate(PluginHost::IShell::reason::REQUESTED);
- std::cout << "IShell deactivate status " << result << " for " << callsign << std::endl;
- interface->Release();
- }
- event.SetEvent();
- })));
- event.Lock();
- return result;
- }
}
struct JSONRPCDirectLink
@@ -873,7 +804,12 @@ namespace WPEFramework {
}
else if (requestName.compare("deactivateresidentapp") == 0)
{
- auto deactivateStatus = deactivate(mCurrentService, "ResidentApp");
+ auto thunderController = std::unique_ptr<JSONRPCDirectLink>(new JSONRPCDirectLink(mCurrentService));
+ JsonObject deactivateParams;
+ deactivateParams.Set("callsign", "ResidentApp");
+ JsonObject deactivateResult;
+ int32_t deactivateStatus = thunderController->Invoke(0, "deactivate", deactivateParams, deactivateResult);
+ // auto deactivateStatus = deactivate(mCurrentService, "ResidentApp");
std::cout << "deactivating resident app status " << deactivateStatus << std::endl;
}
else if (requestName.compare("susbscribeSystemEvent") == 0)
@@ -2286,7 +2222,12 @@ namespace WPEFramework {
std::cout << "callsign will be " << callsign << std::endl;
if (callsign.compare("org.rdk.RDKShell.1") != 0)
{
- activate(mShell.mCurrentService, callsign);
+ //get callsign
+ JsonObject activateParams;
+ activateParams.Set("callsign",callsign.c_str());
+ JsonObject activateResult;
+ thunderController->Invoke<JsonObject, JsonObject>(3500, "activate", activateParams, activateResult);
+ //activate(mShell.mCurrentService, callsign);
}
else
{
@@ -3990,6 +3931,7 @@ namespace WPEFramework {
originalPluginFound = true;
}
}
+ auto thunderController = std::unique_ptr<JSONRPCDirectLink>(new JSONRPCDirectLink(mCurrentService));
if ((false == newPluginFound) && (false == originalPluginFound)) {
PluginHost::IShell::state state;
if (getServiceState(mCurrentService, callsign, state) == Core::ERROR_NONE) {
@@ -4014,13 +3956,23 @@ namespace WPEFramework {
else if (!newPluginFound)
{
std::cout << "attempting to clone type: " << type << " into " << callsign << std::endl;
- uint32_t status = cloneService(mCurrentService, type, callsign);
+ JsonObject joParams;
+ joParams.Set("callsign", type);
+ joParams.Set("newcallsign",callsign.c_str());
+ JsonObject joResult;
+ // setting wait Time to 2 seconds
+ uint32_t status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "clone", joParams, joResult, true);
+ //uint32_t status = cloneService(mCurrentService, type, callsign);
std::cout << "clone status: " << status << std::endl;
if (status > 0)
{
std::cout << "trying status one more time...\n";
- status = cloneService(mCurrentService, type, callsign);
+ JsonObject joParams2;
+ joParams2.Set("callsign", type);
+ joParams2.Set("newcallsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "clone", joParams2, joResult, true);
+ //status = cloneService(mCurrentService, type, callsign);
std::cout << "clone status: " << status << std::endl;
}
@@ -4059,6 +4011,7 @@ namespace WPEFramework {
string configString;
uint32_t status = 0;
+ Core::JSON::ArrayType<PluginHost::MetaData::Service> joResult;
status = getConfig(mCurrentService, callsign, configString);
std::cout << "config status: " << status << std::endl;
@@ -4254,13 +4207,19 @@ namespace WPEFramework {
state == PluginHost::IShell::state::PRECONDITION)
{
launchType = RDKShellLaunchType::ACTIVATE;
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams;
+ activateParams.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 1 status: " << status << std::endl;
if (status > 0)
{
std::cout << "trying status one more time...\n";
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams2;
+ activateParams2.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams2, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 1 status: " << status << std::endl;
}
}
@@ -4268,25 +4227,37 @@ namespace WPEFramework {
else
{
launchType = RDKShellLaunchType::ACTIVATE;
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams;
+ activateParams.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 2 status: " << status << std::endl;
if (status > 0)
{
std::cout << "trying status one more time...\n";
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams2;
+ activateParams2.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams2, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 2 status: " << status << std::endl;
}
}
}
else
{
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams;
+ activateParams.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 3 status: " << status << std::endl;
if (status > 0)
{
std::cout << "trying status one more time...\n";
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams2;
+ activateParams2.Set("callsign",callsign.c_str());
+ status = thunderController->Invoke(RDKSHELL_THUNDER_TIMEOUT, "activate", activateParams2, joResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate 3 status: " << status << std::endl;
}
}
@@ -4645,8 +4616,13 @@ namespace WPEFramework {
returnResponse(false);
}
std::cout << "destroying " << callsign << std::endl;
+ JsonObject joParams;
+ joParams.Set("callsign",callsign.c_str());
+ JsonObject joResult;
+ auto thunderController = getThunderControllerClient();
gDestroyMutex.lock();
- uint32_t status = deactivate(mCurrentService, callsign);
+ uint32_t status = thunderController->Invoke<JsonObject, JsonObject>(RDKSHELL_THUNDER_TIMEOUT, "deactivate", joParams, joResult);
+ //uint32_t status = deactivate(mCurrentService, callsign);
gDestroyMutex.unlock();
if (status > 0)
{
@@ -5622,6 +5598,7 @@ namespace WPEFramework {
std::cout << "stopHdmiStatus status: " << stopHdmiStatus << std::endl;
sForceResidentAppLaunch = true;
+ auto thunderController = getThunderControllerClient();
string configString;
int32_t status = 0;
@@ -5652,12 +5629,17 @@ namespace WPEFramework {
bool ret = true;
std::string callsign("ResidentApp");
- status = activate(mCurrentService, callsign);
+ JsonObject activateParams;
+ activateParams.Set("callsign",callsign.c_str());
+ JsonObject activateResult;
+ status = thunderController->Invoke<JsonObject, JsonObject>(3500, "activate", activateParams, activateResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate resident app status: " << status << std::endl;
if (status > 0)
{
std::cout << "trying status one more time...\n";
- status = activate(mCurrentService, callsign);
+ status = thunderController->Invoke<JsonObject, JsonObject>(3500, "activate", activateParams, activateResult);
+ //status = activate(mCurrentService, callsign);
std::cout << "activate resident app status: " << status << std::endl;
if (status > 0)
{