summaryrefslogtreecommitdiff
path: root/src/components/functional_module/include/functional_module/plugin_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/functional_module/include/functional_module/plugin_manager.h')
-rw-r--r--src/components/functional_module/include/functional_module/plugin_manager.h159
1 files changed, 0 insertions, 159 deletions
diff --git a/src/components/functional_module/include/functional_module/plugin_manager.h b/src/components/functional_module/include/functional_module/plugin_manager.h
deleted file mode 100644
index c573d843b2..0000000000
--- a/src/components/functional_module/include/functional_module/plugin_manager.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2017, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef SRC_COMPONENTS_FUNCTIONAL_MODULE_INCLUDE_FUNCTIONAL_MODULE_PLUGIN_MANAGER_H_
-#define SRC_COMPONENTS_FUNCTIONAL_MODULE_INCLUDE_FUNCTIONAL_MODULE_PLUGIN_MANAGER_H_
-
-#include <map>
-#include <string>
-#include "functional_module/generic_module.h"
-#include "application_manager/service.h"
-#include "application_manager/message.h"
-
-namespace functional_modules {
-
-class PluginManager : public ModuleObserver {
- public:
- PluginManager();
- ~PluginManager();
- typedef std::map<ModuleID, ModulePtr> Modules;
-
- /**
- * @brief LoadPlugins initialize loading plugins
- * @param plugin_path path to search to plugin shared libraries
- * @return count of loaded plugins
- */
- int LoadPlugins(const std::string& plugin_path);
-
- /**
- * @brief UnloadPlugins unload from memory all plugins
- */
- void UnloadPlugins();
-
- /**
- * @brief IsMessageForPlugin Verifies whether mobile message will be processed
- * by plugins
- * @param msg Mobile message
- * @return True if any of plugins will process the message, otherwise - false
- */
- bool IsMessageForPlugin(application_manager::MessagePtr msg);
-
- /**
- * @brief IsHMIMessageForPlugin Verifies whether HMI message will be processed
- * by plugins
- * @param msg HMI message
- * @return True if any of plugins will process the message, otherwise - false
- */
- bool IsHMIMessageForPlugin(application_manager::MessagePtr msg);
-
- /**
- * @brief ProcessMessage forwards mobile message to modules if any is
- * subsribed for the message.
- * @param msg Mobile message to process
- * @return Result of processing
- */
- ProcessResult ProcessMessage(application_manager::MessagePtr msg);
-
- /**
- * @brief ProcessHMIMessage forwards HMI message to modules if any is
- * subscribed for the message
- * @param msg HMI message to process
- * @return Result of processing
- */
- ProcessResult ProcessHMIMessage(application_manager::MessagePtr msg);
- void SetServiceHandler(application_manager::ServicePtr service) {
- service_ = service;
- }
- void OnServiceStateChanged(ServiceState state);
- void OnError(ModuleObserver::Errors error, ModuleID module_id) FINAL;
-
- /**
- * @brief Remove extension created for specified application
- * @param app_id application id
- */
- void RemoveAppExtension(uint32_t app_id);
-
- /**
- * @brief Check if app cooperates with one or more plugins, init it
- * inside plugin accordingly if needed.
- * @param app Application in question.
- */
- bool IsAppForPlugins(application_manager::ApplicationSharedPtr app);
-
- /**
- * Check if app cooperates with plugin
- * @param app application
- * @param module_id unique identifier of plugin
- * @return true if application cooperates with this plugin
- */
- bool IsAppForPlugin(application_manager::ApplicationSharedPtr app,
- ModuleID module_id) const;
-
- /**
- * @brief Notify plugins about change of HMILevel of app
- * if app is related to plugin
- * @param app App with new HMILevel
- * @param old_level Old HMILevel of app
- */
- void OnAppHMILevelChanged(application_manager::ApplicationSharedPtr app,
- mobile_apis::HMILevel::eType old_level);
-
- /**
- * @brief OnApplicationEvent Notifies modules on certain application events
- * @param event Event
- * @param application Pointer to application struct
- */
- void OnApplicationEvent(
- functional_modules::ApplicationEvent event,
- application_manager::ApplicationSharedPtr application);
-
- /**
- * @brief OnPolicyEvent Notifies modules on certain events from policy
- * @param event Policy event
- */
- void OnPolicyEvent(functional_modules::PolicyEvent event);
-
- Modules& plugins();
-
- private:
- Modules plugins_;
- std::map<ModuleID, void*> dlls_;
- std::map<RCFunctionID, ModulePtr> mobile_subscribers_;
- std::map<HMIFunctionID, ModulePtr> hmi_subscribers_;
- application_manager::ServicePtr service_;
-
- DISALLOW_COPY_AND_ASSIGN(PluginManager);
-};
-
-} // namespace functional_modules
-
-#endif // SRC_COMPONENTS_FUNCTIONAL_MODULE_INCLUDE_FUNCTIONAL_MODULE_PLUGIN_MANAGER_H_