| 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) |
| { |