diff options
author | Shobhit Adlakha <ShobhitAd@users.noreply.github.com> | 2019-03-07 21:43:31 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-07 21:43:31 -0500 |
commit | 3be4d6a8384f5422a040121c11b448a7dd6901fc (patch) | |
tree | eef53c493b759056158ac39b261fcd4e0519b7b3 /src/components/application_manager/rpc_plugins | |
parent | 5cc1ad073dd9a05a3bd65499acf0c6b079287a29 (diff) | |
download | sdl_core-3be4d6a8384f5422a040121c11b448a7dd6901fc.tar.gz |
RPC Passing and Handling unknown RPC parameters (#2821)
* Initial app service app extension
* Add GetAppServiceData rpc templates.
* Add request to mobile, and fix HMI GASD naming
* Add Core->Mobile Requests and Responses
* HMI GetAppService Request/Response to hmi and from hmi.
* Add mobile on event handling
* Fix GASD Response From Mobile
* Add PerformAppServiceInteraction RPC
* Fixes for GetAppServiceData subscribe, and OnAppServiceData
Fixes allow for multiple consumers on a single app service type. Consumer/provider can be any combination of an ios app(s), android app(s), or an ivi HMI app(s).
* Update AppServicetype to string and fix unit tests
* Implemented RpcPassThroughTimeout param and IncreaseForwardedRequestTimeout function
* Address review comments
* Fixed build tests
* Fix style
* Address comments
* Address comments
* Pass info from provider in GASD response
* Implemented boolean paramter to keep/remove unknown RPC paramaters
* Added plugin keys
* Implemented allowing unknown rpc params if function is handled by AS plugin or is related to SystemCapability
* Implemented handling unknown params for OSCU notifications
* Fixed build tests
* Implemented handling unknown params for RPC Passing
* Initial implementation of RPC Passing
* fixed UNSUPPORTED_REQUEST case
* Moved RPCPassing implementation into seperate class
* Implemented passthrough request timeout
* Addressed style and formatting comments
* Put RPCPassingHandler in seperate file
* Removed unused request/response file (based on review comment r263121367)
* Fixed timeout implementation
* Created functions for handling forwarding requests/responses to core and mobile
* Moved Populating request queue functionality to seperate function
* Changed implementation to use one map with the original request and a queue of app service information
* Fixed timeout implementation
* Seperated RPCPassing checks from IsAppServiceRPC checks
* Added locks for request and timeout queues
* Addressed review comments
* Fixed rpc_passing_handler_ initializer and added comments
* Reduced scope of locks for rpc_passing_queue
Diffstat (limited to 'src/components/application_manager/rpc_plugins')
4 files changed, 10 insertions, 5 deletions
diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc index 971e3cc5e0..b96e5c199d 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc @@ -35,11 +35,13 @@ #include "app_service_rpc_plugin/app_service_app_extension.h" #include "app_service_rpc_plugin/app_service_command_factory.h" #include "app_service_rpc_plugin/app_service_rpc_plugin.h" +#include "application_manager/plugin_manager/plugin_keys.h" namespace app_service_rpc_plugin { CREATE_LOGGERPTR_GLOBAL(logger_, "AppServiceRpcPlugin") namespace strings = application_manager::strings; +namespace plugins = application_manager::plugin_manager; AppServiceRpcPlugin::AppServiceRpcPlugin() : application_manager_(nullptr) {} @@ -60,7 +62,7 @@ bool AppServiceRpcPlugin::IsAbleToProcess( } std::string AppServiceRpcPlugin::PluginName() { - return "App Service RPC Plugin"; + return plugins::plugin_names::app_service_rpc_plugin; } app_mngr::CommandFactory& AppServiceRpcPlugin::GetCommandFactory() { diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc index fd6b4e86ac..3bc1106573 100644 --- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc +++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc @@ -29,7 +29,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - +#include "application_manager/plugin_manager/plugin_keys.h" #include "rc_rpc_plugin/rc_rpc_plugin.h" #include "rc_rpc_plugin/rc_command_factory.h" #include "rc_rpc_plugin/rc_app_extension.h" @@ -77,7 +77,7 @@ bool RCRPCPlugin::IsAbleToProcess( } std::string RCRPCPlugin::PluginName() { - return "RC RPC Plugin"; + return plugins::plugin_names::rc_rpc_plugin; } application_manager::CommandFactory& RCRPCPlugin::GetCommandFactory() { diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/sdl_rpc_plugin.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/sdl_rpc_plugin.cc index aa82c74098..c448b41ff1 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/sdl_rpc_plugin.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/sdl_rpc_plugin.cc @@ -30,6 +30,7 @@ POSSIBILITY OF SUCH DAMAGE. */ +#include "application_manager/plugin_manager/plugin_keys.h" #include "sdl_rpc_plugin/sdl_rpc_plugin.h" #include "sdl_rpc_plugin/sdl_command_factory.h" #include "sdl_rpc_plugin/extensions/system_capability_app_extension.h" @@ -56,7 +57,7 @@ bool SDLRPCPlugin::IsAbleToProcess( } std::string SDLRPCPlugin::PluginName() { - return "SDL RPC Plugin"; + return plugins::plugin_names::sdl_rpc_plugin; } app_mngr::CommandFactory& SDLRPCPlugin::GetCommandFactory() { diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc index d0bcc36ab4..c9e9839929 100644 --- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc +++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc @@ -33,6 +33,7 @@ #include "vehicle_info_plugin/vehicle_info_plugin.h" #include "vehicle_info_plugin/vehicle_info_command_factory.h" #include "vehicle_info_plugin/vehicle_info_app_extension.h" +#include "application_manager/plugin_manager/plugin_keys.h" #include "application_manager/smart_object_keys.h" #include "application_manager/message_helper.h" #include "application_manager/message_helper.h" @@ -41,6 +42,7 @@ namespace vehicle_info_plugin { CREATE_LOGGERPTR_GLOBAL(logger_, "VehicleInfoPlugin") namespace strings = application_manager::strings; +namespace plugins = application_manager::plugin_manager; VehicleInfoPlugin::VehicleInfoPlugin() : application_manager_(nullptr) {} @@ -61,7 +63,7 @@ bool VehicleInfoPlugin::IsAbleToProcess( } std::string VehicleInfoPlugin::PluginName() { - return "Vehicle Info Plugin"; + return plugins::plugin_names::vehicle_info_rpc_plugin; } app_mngr::CommandFactory& VehicleInfoPlugin::GetCommandFactory() { |