diff options
Diffstat (limited to 'src/components/application_manager/include/application_manager/application.h')
-rw-r--r-- | src/components/application_manager/include/application_manager/application.h | 120 |
1 files changed, 96 insertions, 24 deletions
diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h index 5f1f598851..531e1fd465 100644 --- a/src/components/application_manager/include/application_manager/application.h +++ b/src/components/application_manager/include/application_manager/application.h @@ -1,5 +1,5 @@ -/** - * Copyright (c) 2013, Ford Motor Company +/* + * Copyright (c) 2015, Ford Motor Company * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,6 +36,7 @@ #include <string> #include <map> #include "utils/shared_ptr.h" +#include "utils/data_accessor.h" #include "interfaces/MOBILE_API.h" #include "connection_handler/device.h" #include "application_manager/message.h" @@ -61,7 +62,8 @@ enum APIVersion { kAPIV0 = 0, kAPIV1 = 1, kAPIV2 = 2, - kAPIV3 = 3 + kAPIV3 = 3, + kAPIV4 = 4 }; enum TLimitSource { @@ -104,7 +106,7 @@ class InitialApplicationData { virtual const smart_objects::SmartObject* app_types() const = 0; virtual const smart_objects::SmartObject* vr_synonyms() const = 0; - virtual const smart_objects::SmartObject* mobile_app_id() const = 0; + virtual std::string mobile_app_id() const = 0; virtual const smart_objects::SmartObject* tts_name() const = 0; virtual const smart_objects::SmartObject* ngn_media_screen_name() const = 0; virtual const mobile_api::Language::eType& language() const = 0; @@ -112,8 +114,7 @@ class InitialApplicationData { virtual void set_app_types(const smart_objects::SmartObject& app_types) = 0; virtual void set_vr_synonyms( const smart_objects::SmartObject& vr_synonyms) = 0; - virtual void set_mobile_app_id( - const smart_objects::SmartObject& mobile_app_id) = 0; + virtual void set_mobile_app_id(const std::string& mobile_app_id) = 0; virtual void set_tts_name(const smart_objects::SmartObject& tts_name) = 0; virtual void set_ngn_media_screen_name( const smart_objects::SmartObject& ngn_name) = 0; @@ -164,6 +165,7 @@ class DynamicApplicationData { virtual const smart_objects::SmartObject* menu_title() const = 0; virtual const smart_objects::SmartObject* menu_icon() const = 0; + virtual void load_global_properties(const smart_objects::SmartObject& so) = 0; virtual void set_help_prompt( const smart_objects::SmartObject& help_prompt) = 0; virtual void set_timeout_prompt( @@ -268,7 +270,7 @@ class DynamicApplicationData { * * @return ChoiceSet map that is currently in use */ - virtual const PerformChoiceSetMap& + virtual DataAccessor<PerformChoiceSetMap> performinteraction_choice_set_map() const = 0; /* @@ -285,17 +287,17 @@ class DynamicApplicationData { /* * @brief Retrieve application commands */ - virtual const CommandsMap& commands_map() const = 0; + virtual DataAccessor<CommandsMap> commands_map() const = 0; /* * @brief Retrieve application sub menus */ - virtual const SubMenuMap& sub_menu_map() const = 0; + virtual DataAccessor<SubMenuMap> sub_menu_map() const = 0; /* * @brief Retrieve application choice set map */ - virtual const ChoiceSetMap& choice_set_map() const = 0; + virtual DataAccessor<ChoiceSetMap> choice_set_map() const = 0; /* * @brief Sets perform interaction state @@ -359,6 +361,12 @@ class DynamicApplicationData { class Application : public virtual InitialApplicationData, public virtual DynamicApplicationData { public: + enum ApplicationState { + kRegistered = 0, + kWaitingForRegistration + }; + + public: virtual ~Application() { } @@ -370,41 +378,41 @@ class Application : public virtual InitialApplicationData, virtual const smart_objects::SmartObject* active_message() const = 0; /** - * @brief Change Hash value and return it - * @return next Hash value + * @brief returns current hash value + * @return current hash value */ - virtual uint32_t nextHash() = 0; - - /** - * @brief returns cuurent hash value - * @return current Hash value - */ - virtual uint32_t curHash() const = 0; + virtual const std::string& curHash() const = 0; /** * @brief Change Hash for current application * and send notification to mobile * @return updated_hash */ - virtual uint32_t UpdateHash() = 0; + virtual void UpdateHash() = 0; virtual void CloseActiveMessage() = 0; virtual bool IsFullscreen() const = 0; - virtual bool MakeFullscreen() = 0; + virtual void ChangeSupportingAppHMIType() = 0; virtual bool IsAudible() const = 0; - virtual void MakeNotAudible() = 0; - virtual bool allowed_support_navigation() const = 0; - virtual void set_allowed_support_navigation(bool allow) = 0; + virtual bool is_navi() const = 0; + virtual void set_is_navi(bool allow) = 0; virtual bool hmi_supports_navi_video_streaming() const = 0; virtual void set_hmi_supports_navi_video_streaming(bool supports) = 0; virtual bool hmi_supports_navi_audio_streaming() const = 0; virtual void set_hmi_supports_navi_audio_streaming(bool supports) = 0; + bool is_streaming_allowed() const { return can_stream_;} + void set_streaming_allowed(bool can_stream) { can_stream_ = can_stream;} + bool streaming() const {return streaming_;} + void set_streaming(bool can_stream) { streaming_ = can_stream;} + + virtual bool is_voice_communication_supported() const = 0; virtual void set_voice_communication_supported( bool is_voice_communication_supported) = 0; virtual bool app_allowed() const = 0; virtual bool has_been_activated() const = 0; + virtual bool set_activated(bool is_active) = 0; virtual const Version& version() const = 0; virtual void set_hmi_application_id(uint32_t hmi_app_id) = 0; @@ -539,6 +547,62 @@ class Application : public virtual InitialApplicationData, */ virtual bool IsAudioApplication() const = 0; + /** + * @brief IsRegistered allows to distinguish if this + * application has been registered. + * + * @return true if registered, false otherwise. + */ + bool IsRegistered() const { return app_state_ == kRegistered;} + + /** + * @brief MarkRegistered allows to mark application as registered. + */ + void MarkRegistered() {app_state_ = kRegistered;} + + /** + * @brief MarkUnregistered allows to mark application as unregistered. + */ + void MarkUnregistered() {app_state_ = kWaitingForRegistration;} + + /** + * @brief schemaUrl contains application's url (for 4th protocol version) + * + * @return application's url. + */ + std::string SchemaUrl() const {return url_;} + + /** + * @brief SetShemaUrl allows to store schema url for application. + * + * @param url url to store. + */ + void SetShemaUrl(const std::string& url) {url_ = url;} + + /** + * @brief packagName allows to obtain application's package name. + * + * @return pakage name. + */ + std::string PackageName() const {return package_name_;} + + /** + * @brief SetPackageName allows to store package name for application. + * + * @param packageName package name to store. + */ + void SetPackageName(const std::string& packageName) { + package_name_ = packageName; + } + + /** + * @brief GetDeviceId allows to obtain device id which posseses + * by this application. + * + * @return device the device id. + */ + std::string GetDeviceId() const {return device_id_;} + protected: // interfaces for NAVI retry sequence @@ -548,6 +612,14 @@ class Application : public virtual InitialApplicationData, virtual void set_audio_stream_retry_active(bool active) = 0; virtual void OnVideoStreamRetry() = 0; virtual void OnAudioStreamRetry() = 0; + + protected: + ApplicationState app_state_; + std::string url_; + std::string package_name_; + std::string device_id_; + bool can_stream_; + bool streaming_; }; typedef utils::SharedPtr<Application> ApplicationSharedPtr; |