summaryrefslogtreecommitdiff
path: root/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/custom_vehicle_data_manager.h
blob: b34a9f84b83682a3b108cbd805a6be0371732fcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_VEHICLE_INFO_PLUGIN_INCLUDE_VEHICLE_INFO_PLUGIN_CUSTOM_VEHICLE_DATA_MANAGER_H_
#define SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_VEHICLE_INFO_PLUGIN_INCLUDE_VEHICLE_INFO_PLUGIN_CUSTOM_VEHICLE_DATA_MANAGER_H_
#include <set>
#include <string>

#include "application_manager/plugin_manager/rpc_plugin.h"
#include "application_manager/rpc_handler.h"
#include "smart_objects/smart_object.h"

namespace vehicle_info_plugin {

namespace plugin_manager = application_manager::plugin_manager;

class CustomVehicleDataManager {
 public:
  /**
   * @brief Creates message params (nested if needed) to be sent to HMI
   * according to vehicle data item schema
   * @param item_names set of names of vehicle data items to be processed
   * @return smartMap with prepared message params
   */
  virtual smart_objects::SmartObject CreateHMIMessageParams(
      const std::set<std::string>& item_names) = 0;

  /**
   * @brief Gets data type of vehicle data item
   * @param vehicle_data_item_name name of vehicle data
   * @return data type of vehicle_data if one found, item name otherwise
   */
  virtual std::string GetVehicleDataItemType(
      const std::string& vehicle_data_item_name) const = 0;

  /**
   * @brief Creates message params (nested if needed) to be sent to Mobile
   * according to vehicle data item schema
   * @param input_params message params received from hmi
   */
  virtual void CreateMobileMessageParams(
      smart_objects::SmartObject& msg_params) = 0;

  virtual void OnPolicyEvent(plugin_manager::PolicyEvent policy_event) = 0;

  virtual bool IsValidCustomVehicleDataName(const std::string& name) const = 0;
};
}  // namespace vehicle_info_plugin
#endif  // SRC_COMPONENTS_APPLICATION_MANAGER_RPC_PLUGINS_VEHICLE_INFO_PLUGIN_INCLUDE_VEHICLE_INFO_PLUGIN_CUSTOM_VEHICLE_DATA_MANAGER_H_