diff options
Diffstat (limited to 'src/components/application_manager/include/application_manager')
7 files changed, 145 insertions, 143 deletions
diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h index 0be02d0101..66b6f38791 100644 --- a/src/components/application_manager/include/application_manager/application.h +++ b/src/components/application_manager/include/application_manager/application.h @@ -58,6 +58,9 @@ namespace application_manager { namespace mobile_api = mobile_apis; namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; + +namespace custom_str = utils::custom_string; + typedef int32_t ErrorCode; class UsageStatistics; @@ -452,7 +455,7 @@ class Application : public virtual InitialApplicationData, virtual void set_hmi_application_id(uint32_t hmi_app_id) = 0; virtual uint32_t hmi_app_id() const = 0; virtual uint32_t app_id() const = 0; - virtual const std::string& name() const = 0; + virtual const custom_str::CustomString& name() const = 0; /** * @brief Sets application folder name, which is used for storing of related * files, e.g. icons @@ -500,7 +503,7 @@ class Application : public virtual InitialApplicationData, */ virtual bool tts_properties_in_full() = 0; virtual void set_version(const Version& version) = 0; - virtual void set_name(const std::string& name) = 0; + virtual void set_name(const custom_str::CustomString& name) = 0; virtual void set_is_media_application(bool is_media) = 0; virtual void increment_put_file_in_none_count() = 0; virtual void increment_delete_file_in_none_count() = 0; diff --git a/src/components/application_manager/include/application_manager/application_impl.h b/src/components/application_manager/include/application_manager/application_impl.h index fdb4bdad1e..d63b429c09 100644 --- a/src/components/application_manager/include/application_manager/application_impl.h +++ b/src/components/application_manager/include/application_manager/application_impl.h @@ -49,6 +49,7 @@ #include "utils/timer_thread.h" #include "utils/lock.h" #include "utils/atomic_object.h" +#include "utils/custom_string.h" namespace usage_statistics { @@ -60,6 +61,7 @@ using namespace utils; using namespace timer; namespace mobile_api = mobile_apis; +namespace custom_str = custom_string; class ApplicationImpl : public virtual InitialApplicationDataImpl, public virtual DynamicApplicationDataImpl { @@ -67,7 +69,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl, ApplicationImpl( uint32_t application_id, const std::string& mobile_app_id, - const std::string& app_name, + const custom_str::CustomString& app_name, utils::SharedPtr<usage_statistics::StatisticsManager> statistics_manager); ~ApplicationImpl(); @@ -118,7 +120,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl, void set_hmi_application_id(uint32_t hmi_app_id); inline uint32_t hmi_app_id() const; inline uint32_t app_id() const; - const std::string& name() const; + const custom_str::CustomString& name() const; void set_folder_name(const std::string& folder_name) OVERRIDE; const std::string folder_name() const; bool is_media_application() const; @@ -138,7 +140,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl, void set_tts_properties_in_full(bool active); bool tts_properties_in_full(); void set_version(const Version& ver); - void set_name(const std::string& name); + void set_name(const custom_str::CustomString& name); void set_is_media_application(bool is_media); void increment_put_file_in_none_count(); void increment_delete_file_in_none_count(); @@ -303,7 +305,7 @@ class ApplicationImpl : public virtual InitialApplicationDataImpl, uint32_t grammar_id_; Version version_; - std::string app_name_; + custom_str::CustomString app_name_; uint32_t hmi_app_id_; uint32_t app_id_; smart_objects::SmartObject* active_message_; diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index b79c022a20..a2acb4a3d3 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -102,6 +102,7 @@ namespace application_manager { namespace mobile_api = mobile_apis; using namespace utils; using namespace timer; +namespace custom_str = custom_string; class ApplicationManagerImpl; diff --git a/src/components/application_manager/include/application_manager/commands/command_request_impl.h b/src/components/application_manager/include/application_manager/commands/command_request_impl.h index 0401a3bf46..164871e1af 100644 --- a/src/components/application_manager/include/application_manager/commands/command_request_impl.h +++ b/src/components/application_manager/include/application_manager/commands/command_request_impl.h @@ -50,19 +50,14 @@ namespace commands { namespace NsSmart = NsSmartDeviceLink::NsSmartObjects; class CommandRequestImpl : public CommandImpl, - public event_engine::EventObserver { + public event_engine::EventObserver { public: - - enum RequestState { - kAwaitingHMIResponse = 0, - kTimedOut, - kCompleted - }; + enum RequestState { kAwaitingHMIResponse = 0, kTimedOut, kCompleted }; explicit CommandRequestImpl(const MessageSharedPtr& message); virtual ~CommandRequestImpl(); virtual bool CheckPermissions(); - virtual bool Init(); + virtual bool Init(); virtual bool CleanUp(); virtual void Run(); @@ -99,7 +94,7 @@ class CommandRequestImpl : public CommandImpl, * @param allow_empty_string if true methods allow empty sting * @return true if success otherwise return false */ - bool CheckSyntax(std::string str, bool allow_empty_line = false); + bool CheckSyntax(const std::string& str, bool allow_empty_line = false); /* * @brief Sends HMI request @@ -110,8 +105,8 @@ class CommandRequestImpl : public CommandImpl, * @return hmi correlation id */ uint32_t SendHMIRequest(const hmi_apis::FunctionID::eType& function_id, - const smart_objects::SmartObject* msg_params = NULL, - bool use_events = false); + const smart_objects::SmartObject* msg_params = NULL, + bool use_events = false); /* * @brief Creates HMI request @@ -131,8 +126,7 @@ class CommandRequestImpl : public CommandImpl, mobile_apis::Result::eType GetMobileResultCode( const hmi_apis::Common_Result::eType& hmi_code) const; -protected: - + protected: /** * @brief Checks message permissions and parameters according to policy table * permissions @@ -161,14 +155,13 @@ protected: bool HasDisallowedParams() const; protected: - RequestState current_state_; - sync_primitives::Lock state_lock_; - CommandParametersPermissions parameters_permissions_; + RequestState current_state_; + sync_primitives::Lock state_lock_; + CommandParametersPermissions parameters_permissions_; private: DISALLOW_COPY_AND_ASSIGN(CommandRequestImpl); - /** * @brief Adds param to disallowed parameters enumeration * @param info string with disallowed params enumeration @@ -181,7 +174,8 @@ protected: * @brief Adds disallowed parameters to response info * @param response Response message, which info should be extended */ - void AddDisallowedParametersToInfo(smart_objects::SmartObject& response) const; + void AddDisallowedParametersToInfo( + smart_objects::SmartObject& response) const; }; } // namespace commands diff --git a/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h b/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h index b8ac0e7831..5e12b1f08d 100644 --- a/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h +++ b/src/components/application_manager/include/application_manager/commands/mobile/change_registration_request.h @@ -39,15 +39,18 @@ #include "application_manager/commands/command_request_impl.h" #include "application_manager/commands/pending.h" #include "utils/macro.h" +#include "utils/custom_string.h" namespace application_manager { namespace commands { +namespace custom_str = utils::custom_string; + /** * @brief ChangeRegistrationRequest command class **/ -class ChangeRegistrationRequest : public CommandRequestImpl { +class ChangeRegistrationRequest : public CommandRequestImpl { public: /** * @brief ChangeRegistrationRequest class constructor @@ -107,9 +110,9 @@ class ChangeRegistrationRequest : public CommandRequestImpl { * * @return true if all of result codes is success */ - bool AllHmiResponsesSuccess(const hmi_apis::Common_Result::eType ui, - const hmi_apis::Common_Result::eType vr, - const hmi_apis::Common_Result::eType tts); + bool AllHmiResponsesSuccess(const hmi_apis::Common_Result::eType ui, + const hmi_apis::Common_Result::eType vr, + const hmi_apis::Common_Result::eType tts); /** * @brief Checks change_registration params(ttsName, appname, @@ -118,49 +121,49 @@ class ChangeRegistrationRequest : public CommandRequestImpl { * @return true if command contains \t\n \\t \\n of whitespace otherwise * returns false. */ - bool IsWhiteSpaceExist(); - - /** - * @brief Check parameters (name, vr) for - * coincidence with already known parameters of registered applications - * - * @return SUCCESS if there is no coincidence of app.name/VR synonyms, - * otherwise appropriate error code returns - */ - mobile_apis::Result::eType CheckCoincidence(); - - /** - * @brief Checks if requested name is allowed by policy - * @param app_name Application name - * @return true, if allowed, otherwise - false - */ - bool IsNicknameAllowed(const std::string& app_name) const; - - /** - * @brief Predicate for using with CheckCoincidence method to compare with VR synonym SO - * - * @return TRUE if there is coincidence of VR, otherwise FALSE - */ - struct CoincidencePredicateVR { - explicit CoincidencePredicateVR(const std::string &newItem) - :newItem_(newItem) - {}; - - bool operator()(smart_objects::SmartObject obj) { - const std::string vr_synonym = obj.asString(); - return !(strcasecmp(vr_synonym.c_str(), newItem_.c_str())); - }; - - const std::string &newItem_; - }; - - Pending pending_requests_; - - hmi_apis::Common_Result::eType ui_result_; - hmi_apis::Common_Result::eType vr_result_; - hmi_apis::Common_Result::eType tts_result_; - - DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationRequest); + bool IsWhiteSpaceExist(); + + /** + * @brief Check parameters (name, vr) for + * coincidence with already known parameters of registered applications + * + * @return SUCCESS if there is no coincidence of app.name/VR synonyms, + * otherwise appropriate error code returns + */ + mobile_apis::Result::eType CheckCoincidence(); + + /** + * @brief Checks if requested name is allowed by policy + * @param app_name Application name + * @return true, if allowed, otherwise - false + */ + bool IsNicknameAllowed(const custom_str::CustomString& app_name) const; + + /** + * @brief Predicate for using with CheckCoincidence method to compare with VR + * synonym SO + * + * @return TRUE if there is coincidence of VR, otherwise FALSE + */ + struct CoincidencePredicateVR { + explicit CoincidencePredicateVR(const custom_str::CustomString& newItem) + : newItem_(newItem){}; + + bool operator()(const smart_objects::SmartObject& obj) const { + const custom_str::CustomString& vr_synonym = obj.asCustomString(); + return newItem_.CompareIgnoreCase(vr_synonym); + }; + + const custom_str::CustomString& newItem_; + }; + + Pending pending_requests_; + + hmi_apis::Common_Result::eType ui_result_; + hmi_apis::Common_Result::eType vr_result_; + hmi_apis::Common_Result::eType tts_result_; + + DISALLOW_COPY_AND_ASSIGN(ChangeRegistrationRequest); }; } // namespace commands diff --git a/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h b/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h index df1b5a70d9..5d1ee428cc 100644 --- a/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h +++ b/src/components/application_manager/include/application_manager/commands/mobile/register_app_interface_request.h @@ -37,6 +37,7 @@ #include <string.h> #include "application_manager/commands/command_request_impl.h" #include "utils/macro.h" +#include "utils/custom_string.h" namespace policy { struct DeviceInfo; @@ -48,6 +49,8 @@ class Application; namespace commands { +namespace custom_str = utils::custom_string; + /** * @brief Register app interface request command class **/ @@ -99,22 +102,21 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl { mobile_apis::Result::eType CheckCoincidence(); /* - * @brief Predicate for using with CheckCoincidence method to compare with VR synonym SO + * @brief Predicate for using with CheckCoincidence method to compare with VR + * synonym SO * * return TRUE if there is coincidence of VR, otherwise FALSE */ struct CoincidencePredicateVR { - explicit CoincidencePredicateVR(const std::string &newItem) - :newItem_(newItem) - {}; - - bool operator()(smart_objects::SmartObject obj) { - const std::string vr_synonym = obj.asString(); - return !(strcasecmp(vr_synonym.c_str(), newItem_.c_str())); - }; + explicit CoincidencePredicateVR(const custom_str::CustomString& newItem) + : newItem_(newItem){}; - const std::string &newItem_; + bool operator()(const smart_objects::SmartObject& obj) { + const custom_str::CustomString& vr_synonym = obj.asCustomString(); + return newItem_.CompareIgnoreCase(vr_synonym); }; + const custom_str::CustomString& newItem_; + }; /** * @brief Check request parameters against policy table data @@ -152,11 +154,10 @@ class RegisterAppInterfaceRequest : public CommandRequestImpl { */ void SendSubscribeCustomButtonNotification(); -private: + private: std::string response_info_; mobile_apis::Result::eType result_checking_app_hmi_type_; - DISALLOW_COPY_AND_ASSIGN(RegisterAppInterfaceRequest); }; diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler.h b/src/components/application_manager/include/application_manager/policies/policy_handler.h index a7f3349638..deda63c0ae 100644 --- a/src/components/application_manager/include/application_manager/policies/policy_handler.h +++ b/src/components/application_manager/include/application_manager/policies/policy_handler.h @@ -46,6 +46,7 @@ #include "utils/threads/thread_delegate.h" #include "utils/conditional_variable.h" #include "utils/rwlock.h" +#include "utils/custom_string.h" #include "usage_statistics/statistics_manager.h" #include "application_manager/policies/policy_handler_observer.h" #include "utils/threads/async_runner.h" @@ -58,11 +59,13 @@ class Value; namespace policy { typedef std::vector<uint32_t> AppIds; typedef std::vector<uint32_t> DeviceHandles; +namespace custom_str = utils::custom_string; -class PolicyHandler : - public utils::Singleton<PolicyHandler, utils::deleters::Deleter<PolicyHandler> >, - public PolicyListener, - public threads::AsyncRunner { +class PolicyHandler + : public utils::Singleton<PolicyHandler, + utils::deleters::Deleter<PolicyHandler> >, + public PolicyListener, + public threads::AsyncRunner { public: virtual ~PolicyHandler(); bool LoadPolicyLibrary(); @@ -87,18 +90,18 @@ class PolicyHandler : bool GetPriority(const std::string& policy_app_id, std::string* priority); void CheckPermissions(const PTString& app_id, - const PTString& hmi_level, - const PTString& rpc, - const RPCParams& rpc_params, - CheckPermissionResult& result); + const PTString& hmi_level, + const PTString& rpc, + const RPCParams& rpc_params, + CheckPermissionResult& result); uint32_t GetNotificationsNumber(const std::string& priority); DeviceConsent GetUserConsentForDevice(const std::string& device_id); bool GetDefaultHmi(const std::string& policy_app_id, - std::string* default_hmi); + std::string* default_hmi); bool GetInitialAppData(const std::string& application_id, - StringArray* nicknames = NULL, - StringArray* app_hmi_types = NULL); + StringArray* nicknames = NULL, + StringArray* app_hmi_types = NULL); void GetServiceUrls(const std::string& service_type, EndpointUrls& end_points); @@ -163,7 +166,8 @@ class PolicyHandler : * @param device_id Device mac address * @param connection_type Device connection type */ - void AddDevice(const std::string& device_id, const std::string& connection_type); + void AddDevice(const std::string& device_id, + const std::string& connection_type); /** * @brief Save device info for specific device to policy table @@ -179,7 +183,7 @@ class PolicyHandler : * @param permissions User-changed group permissions consent */ void OnAppPermissionConsent(const uint32_t connection_key, - const PermissionConsent &permissions); + const PermissionConsent& permissions); /** * @brief Get appropriate message parameters and send them with response @@ -219,7 +223,7 @@ class PolicyHandler : * application * @param policy_app_id Application id */ - std::string OnCurrentDeviceIdUpdateRequired(const std::string& policy_app_id); + std::string OnCurrentDeviceIdUpdateRequired(const std::string& policy_app_id); /** * @brief Set parameters from OnSystemInfoChanged to policy table @@ -277,9 +281,10 @@ class PolicyHandler : */ uint32_t GetAppIdForSending(); - std::string GetAppName(const std::string& policy_app_id); + custom_str::CustomString GetAppName(const std::string& policy_app_id); - virtual void OnUpdateHMIAppType(std::map<std::string, StringArray> app_hmi_types); + virtual void OnUpdateHMIAppType( + std::map<std::string, StringArray> app_hmi_types); virtual void OnCertificateUpdated(const std::string& certificate_data); @@ -366,7 +371,7 @@ class PolicyHandler : */ void OnAppRegisteredOnMobile(const std::string& application_id); -//TODO(AKutsan) REMOVE THIS UGLY HOTFIX + // TODO(AKutsan) REMOVE THIS UGLY HOTFIX virtual void Increment(usage_statistics::GlobalCounterId type); virtual void Increment(const std::string& app_id, usage_statistics::AppCounterId type); @@ -381,25 +386,24 @@ class PolicyHandler : void SetPolicyManager(utils::SharedPtr<PolicyManager> pm) { policy_manager_ = pm; } -#endif // BUILD_TESTS +#endif // BUILD_TESTS #ifdef ENABLE_SECURITY std::string RetrieveCertificate() const; -#endif // ENABLE_SECURITY - -protected: +#endif // ENABLE_SECURITY + protected: /** * Starts next retry exchange policy table */ void StartNextRetry(); private: - /** * Checks system action of application for permission of keep context * @param system_action system action (see mobile api) * @param policy_app_id unique application id - * @return false if system_action is KEEP_CONTEXT and it isn't allowed by policy + * @return false if system_action is KEEP_CONTEXT and it isn't allowed by + * policy * otherwise true */ bool CheckKeepContext(const std::string& policy_app_id); @@ -408,7 +412,8 @@ protected: * Checks system action of application for permission of steal focus * @param system_action system action (see mobile api) * @param policy_app_id unique application id - * @return false if system_action is STEAL_FOCUS and it isn't allowed by policy + * @return false if system_action is STEAL_FOCUS and it isn't allowed by + * policy * otherwise true */ bool CheckStealFocus(const std::string& policy_app_id); @@ -428,40 +433,33 @@ protected: */ void SetDaysAfterEpoch(); -private: - class StatisticManagerImpl: public usage_statistics::StatisticsManager { - //TODO(AKutsan) REMOVE THIS UGLY HOTFIX - virtual void Increment(usage_statistics::GlobalCounterId type) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(type)); - } - - virtual void Increment(const std::string& app_id, - usage_statistics::AppCounterId type) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id, - type)); - } - - virtual void Set(const std::string& app_id, - usage_statistics::AppInfoId type, - const std::string& value) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id, - type, - value)); - } - - virtual void Add(const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds) { - - PolicyHandler::instance()->AsyncRun(new StatisticsDelegate( - app_id, type, timespan_seconds)); - } + private: + class StatisticManagerImpl : public usage_statistics::StatisticsManager { + // TODO(AKutsan) REMOVE THIS UGLY HOTFIX + virtual void Increment(usage_statistics::GlobalCounterId type) { + PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(type)); + } + + virtual void Increment(const std::string& app_id, + usage_statistics::AppCounterId type) { + PolicyHandler::instance()->AsyncRun(new StatisticsDelegate(app_id, type)); + } + + virtual void Set(const std::string& app_id, + usage_statistics::AppInfoId type, + const std::string& value) { + PolicyHandler::instance()->AsyncRun( + new StatisticsDelegate(app_id, type, value)); + } + + virtual void Add(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds) { + PolicyHandler::instance()->AsyncRun( + new StatisticsDelegate(app_id, type, timespan_seconds)); + } }; - //TODO(AKutsan) REMOVE THIS UGLY HOTFIX - + // TODO(AKutsan) REMOVE THIS UGLY HOTFIX PolicyHandler(); bool SaveSnapshot(const BinaryMessage& pt_string, std::string& snap_path); @@ -481,7 +479,7 @@ private: inline bool CreateManager(); - typedef std::list <PolicyHandlerObserver*> HandlersCollection; + typedef std::list<PolicyHandlerObserver*> HandlersCollection; HandlersCollection listeners_; sync_primitives::Lock listeners_lock_; @@ -499,8 +497,8 @@ private: friend class AppPermissionDelegate; DISALLOW_COPY_AND_ASSIGN(PolicyHandler); - FRIEND_BASE_SINGLETON_CLASS_WITH_DELETER(PolicyHandler, - utils::deleters::Deleter<PolicyHandler>); + FRIEND_BASE_SINGLETON_CLASS_WITH_DELETER( + PolicyHandler, utils::deleters::Deleter<PolicyHandler>); FRIEND_DELETER_DESTRUCTOR(PolicyHandler); }; |