diff options
471 files changed, 17415 insertions, 15699 deletions
diff --git a/src/components/application_manager/include/application_manager/message.h b/src/components/application_manager/include/application_manager/message.h index 5a2c8bdc18..521e0baca5 100644 --- a/src/components/application_manager/include/application_manager/message.h +++ b/src/components/application_manager/include/application_manager/message.h @@ -53,7 +53,7 @@ enum MessageType { kRequest = 0, kResponse = 1, kNotification = 2, - kErrorResponse = 3 // Error Response HMI ONLY + kErrorResponse = 3 // Error Response HMI ONLY }; // Map PrcType to corresponding MessageType @@ -103,12 +103,14 @@ class Message { void set_data_size(size_t data_size); void set_payload_size(size_t payload_size); - protocol_handler::MessagePriority Priority() const { return priority_; } + protocol_handler::MessagePriority Priority() const { + return priority_; + } private: - int32_t function_id_; // @remark protocol V2. + int32_t function_id_; // @remark protocol V2. int32_t correlation_id_; // @remark protocol V2. - MessageType type_; // @remark protocol V2. + MessageType type_; // @remark protocol V2. // Pre-calculated message priority, higher priority messages are // Processed first diff --git a/src/components/application_manager/include/application_manager/mobile_message_handler.h b/src/components/application_manager/include/application_manager/mobile_message_handler.h index 5e8d551aee..6b62258b23 100644 --- a/src/components/application_manager/include/application_manager/mobile_message_handler.h +++ b/src/components/application_manager/include/application_manager/mobile_message_handler.h @@ -40,29 +40,29 @@ namespace application_manager { typedef utils::SharedPtr<application_manager::Message> MobileMessage; class MobileMessageHandler { - public: - static application_manager::Message* HandleIncomingMessageProtocol( + public: + static application_manager::Message* HandleIncomingMessageProtocol( const protocol_handler::RawMessagePtr message); - static protocol_handler::RawMessage* HandleOutgoingMessageProtocol( + static protocol_handler::RawMessage* HandleOutgoingMessageProtocol( const MobileMessage& message); - //! ------------------------------------------------------------- - private: - static application_manager::Message* HandleIncomingMessageProtocolV1( + //! ------------------------------------------------------------- + private: + static application_manager::Message* HandleIncomingMessageProtocolV1( const protocol_handler::RawMessagePtr message); - static application_manager::Message* HandleIncomingMessageProtocolV2( + static application_manager::Message* HandleIncomingMessageProtocolV2( const protocol_handler::RawMessagePtr message); - //! ------------------------------------------------------------- + //! ------------------------------------------------------------- - static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1( + static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV1( const MobileMessage& message); - static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2( + static protocol_handler::RawMessage* HandleOutgoingMessageProtocolV2( const MobileMessage& message); - DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler); + DISALLOW_COPY_AND_ASSIGN(MobileMessageHandler); }; } // namespace application_manager diff --git a/src/components/application_manager/include/application_manager/policies/delegates/statistics_delegate.h b/src/components/application_manager/include/application_manager/policies/delegates/statistics_delegate.h index 526c6aa585..3dc9ad925c 100644 --- a/src/components/application_manager/include/application_manager/policies/delegates/statistics_delegate.h +++ b/src/components/application_manager/include/application_manager/policies/delegates/statistics_delegate.h @@ -44,45 +44,43 @@ namespace policy { class PolicyHandler; - class StatisticsDelegate: public threads::ThreadDelegate { - enum StatisticType{ - INCREMENT_GLOBAL, - INCREMENT_APP, - SET, - ADD - }; - public: - StatisticsDelegate(PolicyHandler& policy_handler, - usage_statistics::GlobalCounterId type); - - StatisticsDelegate(PolicyHandler& policy_handler, - const std::string& app_id, - usage_statistics::AppCounterId type); - - StatisticsDelegate(PolicyHandler &policy_handler, const std::string& app_id, - usage_statistics::AppInfoId type, - const std::string& value); - - StatisticsDelegate(PolicyHandler& policy_handler, - const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds); - - virtual void threadMain(); - - virtual void exitThreadMain(); - private: - StatisticType type_; - usage_statistics::GlobalCounterId global_counter_; - usage_statistics::AppCounterId app_counter_; - usage_statistics::AppInfoId app_info_; - usage_statistics::AppStopwatchId stop_watch_; - - std::string app_id_; - std::string value_; - int32_t timespan_seconds_; - PolicyHandler& policy_handler_; - }; -} // namespace policy - -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_DELEGATES_STATISTICS_DELEGATE_H_ +class StatisticsDelegate : public threads::ThreadDelegate { + enum StatisticType { INCREMENT_GLOBAL, INCREMENT_APP, SET, ADD }; + + public: + StatisticsDelegate(PolicyHandler& policy_handler, + usage_statistics::GlobalCounterId type); + + StatisticsDelegate(PolicyHandler& policy_handler, + const std::string& app_id, + usage_statistics::AppCounterId type); + + StatisticsDelegate(PolicyHandler& policy_handler, + const std::string& app_id, + usage_statistics::AppInfoId type, + const std::string& value); + + StatisticsDelegate(PolicyHandler& policy_handler, + const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds); + + virtual void threadMain(); + + virtual void exitThreadMain(); + + private: + StatisticType type_; + usage_statistics::GlobalCounterId global_counter_; + usage_statistics::AppCounterId app_counter_; + usage_statistics::AppInfoId app_info_; + usage_statistics::AppStopwatchId stop_watch_; + + std::string app_id_; + std::string value_; + int32_t timespan_seconds_; + PolicyHandler& policy_handler_; +}; +} // namespace policy + +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_DELEGATES_STATISTICS_DELEGATE_H_ diff --git a/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h b/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h index 485fbea45c..794da0cdfb 100644 --- a/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h +++ b/src/components/application_manager/include/application_manager/policies/policy_handler_observer.h @@ -39,10 +39,13 @@ namespace policy { -class PolicyHandlerObserver{ - public: - virtual void OnUpdateHMIAppType(std::map<std::string, std::vector<std::string> > app_hmi_types) {} - virtual bool OnCertificateUpdated(const std::string& certificate_data) { return false;} +class PolicyHandlerObserver { + public: + virtual void OnUpdateHMIAppType( + std::map<std::string, std::vector<std::string> > app_hmi_types) {} + virtual bool OnCertificateUpdated(const std::string& certificate_data) { + return false; + } virtual ~PolicyHandlerObserver() {} }; } // namespace policy diff --git a/src/components/application_manager/include/application_manager/policies/pt_exchange_handler.h b/src/components/application_manager/include/application_manager/policies/pt_exchange_handler.h index 31f7ded507..4e543eae96 100644 --- a/src/components/application_manager/include/application_manager/policies/pt_exchange_handler.h +++ b/src/components/application_manager/include/application_manager/policies/pt_exchange_handler.h @@ -37,10 +37,10 @@ namespace policy { class PTExchangeHandler { - public: - virtual ~PTExchangeHandler() {}; - virtual void Start() = 0; - virtual void Stop() = 0; + public: + virtual ~PTExchangeHandler(){}; + virtual void Start() = 0; + virtual void Stop() = 0; }; } // namespace policy diff --git a/src/components/application_manager/include/application_manager/request_info.h b/src/components/application_manager/include/application_manager/request_info.h index 71ce7fb0ac..b6b754ba5c 100644 --- a/src/components/application_manager/include/application_manager/request_info.h +++ b/src/components/application_manager/include/application_manager/request_info.h @@ -48,330 +48,325 @@ namespace application_manager { namespace request_controller { +/* + * @brief Typedef for active mobile request + * + */ +typedef utils::SharedPtr<commands::Command> RequestPtr; + +struct RequestInfo { + enum RequestType { MobileRequest, HMIRequest }; + + RequestInfo() {} + virtual ~RequestInfo() {} + + RequestInfo(RequestPtr request, + const RequestType requst_type, + const uint64_t timeout_msec) + : request_(request), timeout_msec_(timeout_msec) { + start_time_ = date_time::DateTime::getCurrentTime(); + updateEndTime(); + requst_type_ = requst_type; + } + + RequestInfo(RequestPtr request, + const RequestType requst_type, + const TimevalStruct& start_time, + const uint64_t timeout_msec); + + void updateEndTime(); + + void updateTimeOut(const uint64_t& timeout_msec); + + bool isExpired(); + + TimevalStruct start_time() { + return start_time_; + } + + void update_start_time(TimevalStruct start_time) { + start_time_ = start_time; + } + + uint64_t timeout_msec() { + return timeout_msec_; + } + + void set_timeout_msec(uint64_t timeout) { + timeout_msec_ = timeout; + } + + TimevalStruct end_time() { + return end_time_; + } + + uint32_t app_id() { + return app_id_; + } + + mobile_apis::HMILevel::eType hmi_level() { + return hmi_level_; + } + + void set_hmi_level(const mobile_apis::HMILevel::eType& level) { + hmi_level_ = level; + } + + RequestType requst_type() const { + return requst_type_; + } + + uint32_t requestId() { + return correlation_id_; + } + + commands::Command* request() { + return request_.get(); + } + uint64_t hash(); + static uint64_t GenerateHash(uint32_t var1, uint32_t var2); + static uint32_t HmiConnectoinKey; + + protected: + RequestPtr request_; + TimevalStruct start_time_; + uint64_t timeout_msec_; + TimevalStruct end_time_; + uint32_t app_id_; + mobile_apis::HMILevel::eType hmi_level_; + RequestType requst_type_; + uint32_t correlation_id_; +}; + +typedef utils::SharedPtr<RequestInfo> RequestInfoPtr; + +struct MobileRequestInfo : public RequestInfo { + MobileRequestInfo(RequestPtr request, const uint64_t timeout_msec); + MobileRequestInfo(RequestPtr request, + const TimevalStruct& start_time, + const uint64_t timeout_msec); +}; + +struct HMIRequestInfo : public RequestInfo { + HMIRequestInfo(RequestPtr request, const uint64_t timeout_msec); + HMIRequestInfo(RequestPtr request, + const TimevalStruct& start_time, + const uint64_t timeout_msec); +}; + +// Request info, for searching in request info set by log_n time +// Returns correct hash by app_id and corr_id +struct FakeRequestInfo : public RequestInfo { + FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id); +}; + +struct RequestInfoTimeComparator { + bool operator()(const RequestInfoPtr lhs, const RequestInfoPtr rhs) const; +}; + +struct RequestInfoHashComparator { + bool operator()(const RequestInfoPtr lhs, const RequestInfoPtr rhs) const; +}; + +typedef std::set<RequestInfoPtr, RequestInfoTimeComparator> + TimeSortedRequestInfoSet; +typedef std::set<RequestInfoPtr, RequestInfoHashComparator> + HashSortedRequestInfoSet; + +/* + * @brief RequestInfoSet provides uniue requests bu corralation_id and app_id + * + */ +class RequestInfoSet { + public: /* - * @brief Typedef for active mobile request - * + * @brief Add requests into colletion by log(n) time + * @param request_info - request to add + * @return false is request with the same app_id and correlation_id exist */ - typedef utils::SharedPtr<commands::Command> RequestPtr; + bool Add(RequestInfoPtr request_info); - struct RequestInfo { - enum RequestType {MobileRequest, HMIRequest}; + /* + * @brief Find requests int colletion by log(n) time + * @param connection_key - connection_key of request + * @param correlation_id - correlation_id of request + * @return founded request or shared_ptr with NULL + */ + RequestInfoPtr Find(const uint32_t connection_key, + const uint32_t correlation_id); - RequestInfo() {} - virtual ~RequestInfo() {} + /* + * @brief Get request with smalest end_time_ + * @return founded request or shared_ptr with NULL + */ + RequestInfoPtr Front(); - RequestInfo(RequestPtr request, - const RequestType requst_type, - const uint64_t timeout_msec) - : request_(request), - timeout_msec_(timeout_msec) { - start_time_ = date_time::DateTime::getCurrentTime(); - updateEndTime(); - requst_type_ = requst_type; - } + /* + * @brief Get request with smalest end_time_ != 0 + * @return founded request or shared_ptr with NULL + */ + RequestInfoPtr FrontWithNotNullTimeout(); - RequestInfo(RequestPtr request, const RequestType requst_type, - const TimevalStruct& start_time, const uint64_t timeout_msec); + /* + * @brief Erase request from colletion by log(n) time + * @param request_info - request to erase + * @return true if Erase succes, otherwise return false + */ + bool RemoveRequest(const RequestInfoPtr request_info); - void updateEndTime(); + /* + * @brief Erase request from colletion by connection_key + * @param connection_key - connection_key of requests to erase + * @return count of erased requests + */ + uint32_t RemoveByConnectionKey(uint32_t connection_key); - void updateTimeOut(const uint64_t& timeout_msec); + /* + * @brief Erase all mobile requests from controller + * @return count of erased requests + */ + uint32_t RemoveMobileRequests(); - bool isExpired(); + /* + * @return count of requestd in collections + */ + const size_t Size(); - TimevalStruct start_time() { - return start_time_; - } + /** + * @brief Check if this app is able to add new requests, + * or limits was exceeded + * @param app_id - application id + * @param app_time_scale - time scale (seconds) + * @param max_request_per_time_scale - maximum count of request + * that should be allowed for app_time_scale seconds + * @return True if new request could be added, false otherwise + */ + bool CheckTimeScaleMaxRequest(uint32_t app_id, + uint32_t app_time_scale, + uint32_t max_request_per_time_scale); - void update_start_time(TimevalStruct start_time) { - start_time_ = start_time; - } + /** + * @brief Check if this app is able to add new requests + * in current hmi_level, or limits was exceeded + * @param hmi_level - hmi level + * @param app_id - application id + * @param app_time_scale - time scale (seconds) + * @param max_request_per_time_scale - maximum count of request + * that should be allowed for app_time_scale seconds + * @return True if new request could be added, false otherwise + */ + bool CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level, + uint32_t app_id, + uint32_t app_time_scale, + uint32_t max_request_per_time_scale); - uint64_t timeout_msec() { - return timeout_msec_; - } + private: + /* + * @brief Comparator of connection key for std::find_if function + */ + struct AppIdCompararator { + enum CompareType { Equal, NotEqual }; + AppIdCompararator(CompareType compare_type, uint32_t app_id) + : app_id_(app_id), compare_type_(compare_type) {} + bool operator()(const RequestInfoPtr value_compare) const; + + private: + uint32_t app_id_; + CompareType compare_type_; + }; - void set_timeout_msec(uint64_t timeout) { - timeout_msec_ = timeout; - } + bool Erase(const RequestInfoPtr request_info); - TimevalStruct end_time() { - return end_time_; - } + /* + * @brief Erase requests from collection if filter allows + * @param filter - filtering predicate + * @return count of erased requests + */ + uint32_t RemoveRequests(const RequestInfoSet::AppIdCompararator& filter); - uint32_t app_id() { - return app_id_; - } + /* + * @brief Debug function, will raise assert if set sizes are noit equal + */ + inline void CheckSetSizes(); + TimeSortedRequestInfoSet time_sorted_pending_requests_; + HashSortedRequestInfoSet hash_sorted_pending_requests_; - mobile_apis::HMILevel::eType hmi_level() { - return hmi_level_; - } + // the lock caled this_lock_, since the class represent collection by itself. + sync_primitives::Lock this_lock_; +}; - void set_hmi_level(const mobile_apis::HMILevel::eType& level) { - hmi_level_ = level; +/** +* @brief Structure used in std algorithms to determine amount of request +* during time scale +*/ +struct TimeScale { + TimeScale(const TimevalStruct& start, + const TimevalStruct& end, + const uint32_t& app_id) + : start_(start), end_(end), app_id_(app_id) {} + + bool operator()(RequestInfoPtr setEntry) { + if (!setEntry.valid()) { + return false; } - RequestType requst_type() const { - return requst_type_; - } - - uint32_t requestId() { - return correlation_id_; + if (setEntry->app_id() != app_id_) { + return false; } - commands::Command* request() { - return request_.get(); + if ((setEntry->start_time() < start_) || (end_ < setEntry->start_time())) { + return false; } - uint64_t hash(); - static uint64_t GenerateHash(uint32_t var1, uint32_t var2); - static uint32_t HmiConnectoinKey; - protected: - RequestPtr request_; - TimevalStruct start_time_; - uint64_t timeout_msec_; - TimevalStruct end_time_; - uint32_t app_id_; - mobile_apis::HMILevel::eType hmi_level_; - RequestType requst_type_; - uint32_t correlation_id_; - }; - typedef utils::SharedPtr<RequestInfo> RequestInfoPtr; + return true; + } - struct MobileRequestInfo: public RequestInfo { - MobileRequestInfo(RequestPtr request, - const uint64_t timeout_msec); - MobileRequestInfo(RequestPtr request, - const TimevalStruct& start_time, - const uint64_t timeout_msec); - }; - - struct HMIRequestInfo: public RequestInfo { - HMIRequestInfo(RequestPtr request, const uint64_t timeout_msec); - HMIRequestInfo(RequestPtr request, const TimevalStruct& start_time, - const uint64_t timeout_msec); - }; - - // Request info, for searching in request info set by log_n time - // Returns correct hash by app_id and corr_id - struct FakeRequestInfo :public RequestInfo { - FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id); - }; - - struct RequestInfoTimeComparator { - bool operator() (const RequestInfoPtr lhs, - const RequestInfoPtr rhs) const; - }; - - struct RequestInfoHashComparator { - bool operator() (const RequestInfoPtr lhs, - const RequestInfoPtr rhs) const; - }; - - - typedef std::set<RequestInfoPtr, RequestInfoTimeComparator> TimeSortedRequestInfoSet; - typedef std::set<RequestInfoPtr, RequestInfoHashComparator> HashSortedRequestInfoSet; - - /* - * @brief RequestInfoSet provides uniue requests bu corralation_id and app_id - * - */ - class RequestInfoSet { - public: - /* - * @brief Add requests into colletion by log(n) time - * @param request_info - request to add - * @return false is request with the same app_id and correlation_id exist - */ - bool Add(RequestInfoPtr request_info); - - /* - * @brief Find requests int colletion by log(n) time - * @param connection_key - connection_key of request - * @param correlation_id - correlation_id of request - * @return founded request or shared_ptr with NULL - */ - RequestInfoPtr Find(const uint32_t connection_key, - const uint32_t correlation_id); - - /* - * @brief Get request with smalest end_time_ - * @return founded request or shared_ptr with NULL - */ - RequestInfoPtr Front(); - - /* - * @brief Get request with smalest end_time_ != 0 - * @return founded request or shared_ptr with NULL - */ - RequestInfoPtr FrontWithNotNullTimeout(); - - /* - * @brief Erase request from colletion by log(n) time - * @param request_info - request to erase - * @return true if Erase succes, otherwise return false - */ - bool RemoveRequest(const RequestInfoPtr request_info); - - /* - * @brief Erase request from colletion by connection_key - * @param connection_key - connection_key of requests to erase - * @return count of erased requests - */ - uint32_t RemoveByConnectionKey(uint32_t connection_key); - - /* - * @brief Erase all mobile requests from controller - * @return count of erased requests - */ - uint32_t RemoveMobileRequests(); - - /* - * @return count of requestd in collections - */ - const size_t Size(); - - /** - * @brief Check if this app is able to add new requests, - * or limits was exceeded - * @param app_id - application id - * @param app_time_scale - time scale (seconds) - * @param max_request_per_time_scale - maximum count of request - * that should be allowed for app_time_scale seconds - * @return True if new request could be added, false otherwise - */ - bool CheckTimeScaleMaxRequest(uint32_t app_id, - uint32_t app_time_scale, - uint32_t max_request_per_time_scale); - - /** - * @brief Check if this app is able to add new requests - * in current hmi_level, or limits was exceeded - * @param hmi_level - hmi level - * @param app_id - application id - * @param app_time_scale - time scale (seconds) - * @param max_request_per_time_scale - maximum count of request - * that should be allowed for app_time_scale seconds - * @return True if new request could be added, false otherwise - */ - bool CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level, - uint32_t app_id, - uint32_t app_time_scale, - uint32_t max_request_per_time_scale); - private: - /* - * @brief Comparator of connection key for std::find_if function - */ - struct AppIdCompararator { - enum CompareType {Equal, NotEqual}; - AppIdCompararator(CompareType compare_type, uint32_t app_id): - app_id_(app_id), - compare_type_(compare_type) {} - bool operator()(const RequestInfoPtr value_compare) const; - - private: - uint32_t app_id_; - CompareType compare_type_; - }; - - bool Erase(const RequestInfoPtr request_info); - - /* - * @brief Erase requests from collection if filter allows - * @param filter - filtering predicate - * @return count of erased requests - */ - uint32_t RemoveRequests(const RequestInfoSet::AppIdCompararator& filter); - - /* - * @brief Debug function, will raise assert if set sizes are noit equal - */ - inline void CheckSetSizes(); - TimeSortedRequestInfoSet time_sorted_pending_requests_; - HashSortedRequestInfoSet hash_sorted_pending_requests_; - - // the lock caled this_lock_, since the class represent collection by itself. - sync_primitives::Lock this_lock_; - }; + private: + TimevalStruct start_; + TimevalStruct end_; + uint32_t app_id_; +}; +/** +* @brief Structure used in std algorithms to determine amount of request +* during time scale for application in defined hmi level +*/ +struct HMILevelTimeScale { + HMILevelTimeScale(const TimevalStruct& start, + const TimevalStruct& end, + const uint32_t& app_id, + const mobile_apis::HMILevel::eType& hmi_level) + : start_(start), end_(end), app_id_(app_id), hmi_level_(hmi_level) {} + + bool operator()(RequestInfoPtr setEntry) { + if (!setEntry.valid()) { + return false; + } - /** - * @brief Structure used in std algorithms to determine amount of request - * during time scale - */ - struct TimeScale { - TimeScale(const TimevalStruct& start, - const TimevalStruct& end, - const uint32_t& app_id) - : start_(start), - end_(end), - app_id_(app_id) {} - - bool operator()(RequestInfoPtr setEntry) { - if (!setEntry.valid()) { - return false; - } - - if (setEntry->app_id() != app_id_) { - return false; - } - - if ((setEntry->start_time() < start_) || (end_ < setEntry->start_time() )) { - return false; - } - - return true; + if (setEntry->app_id() != app_id_) { + return false; } - private: - TimevalStruct start_; - TimevalStruct end_; - uint32_t app_id_; - }; + if (setEntry->hmi_level() != hmi_level_) { + return false; + } - /** - * @brief Structure used in std algorithms to determine amount of request - * during time scale for application in defined hmi level - */ - struct HMILevelTimeScale { - HMILevelTimeScale(const TimevalStruct& start, - const TimevalStruct& end, - const uint32_t& app_id, - const mobile_apis::HMILevel::eType& hmi_level) - : start_(start), - end_(end), - app_id_(app_id), - hmi_level_(hmi_level) {} - - bool operator()(RequestInfoPtr setEntry) { - if (!setEntry.valid()) { - return false; - } - - if (setEntry->app_id() != app_id_) { - return false; - } - - if (setEntry->hmi_level() != hmi_level_) { - return false; - } - - if (date_time::DateTime::getSecs(setEntry->start_time()) - < date_time::DateTime::getSecs(start_) || - date_time::DateTime::getSecs(setEntry->start_time()) - > date_time::DateTime::getSecs(end_)) { - return false; - } - - return true; + if (date_time::DateTime::getSecs(setEntry->start_time()) < + date_time::DateTime::getSecs(start_) || + date_time::DateTime::getSecs(setEntry->start_time()) > + date_time::DateTime::getSecs(end_)) { + return false; } - private: - TimevalStruct start_; - TimevalStruct end_; - uint32_t app_id_; - mobile_apis::HMILevel::eType hmi_level_; - }; + return true; + } + + private: + TimevalStruct start_; + TimevalStruct end_; + uint32_t app_id_; + mobile_apis::HMILevel::eType hmi_level_; +}; } // namespace request_controller diff --git a/src/components/application_manager/include/application_manager/smart_object_keys.h b/src/components/application_manager/include/application_manager/smart_object_keys.h index 60ddd38cd0..8a8f5f70ac 100644 --- a/src/components/application_manager/include/application_manager/smart_object_keys.h +++ b/src/components/application_manager/include/application_manager/smart_object_keys.h @@ -147,7 +147,7 @@ extern const char* start_time; extern const char* end_time; extern const char* hours; extern const char* minutes; -extern const char* seconds ; +extern const char* seconds; extern const char* update_mode; extern const char* trigger_source; extern const char* hmi_level; @@ -251,7 +251,7 @@ extern const char* sdl_version; extern const char* system_software_version; extern const char* priority; -//resuming +// resuming extern const char* application_commands; extern const char* application_submenus; extern const char* application_choice_sets; @@ -314,7 +314,7 @@ extern const char* default_; extern const char* languages; extern const char* ttsName; extern const char* vrSynonyms; -} // namespace json +} // namespace json namespace http_request { extern const char* httpRequest; @@ -330,7 +330,7 @@ extern const char* instance_follow_redirect; extern const char* charset; extern const char* content_lenght; extern const char* GET; -} // http_request +} // http_request namespace mobile_notification { extern const char* state; diff --git a/src/components/application_manager/include/application_manager/telemetry_observer.h b/src/components/application_manager/include/application_manager/telemetry_observer.h index 052e9c9fee..ab995fcf91 100644 --- a/src/components/application_manager/include/application_manager/telemetry_observer.h +++ b/src/components/application_manager/include/application_manager/telemetry_observer.h @@ -33,7 +33,6 @@ #ifndef SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_TIME_METRIC_OBSERVER_H_ #define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_TIME_METRIC_OBSERVER_H_ - #include "smart_objects/smart_object.h" #include "application_manager/smart_object_keys.h" #include "json/json.h" @@ -53,7 +52,7 @@ class AMTelemetryObserver { typedef utils::SharedPtr<MessageMetric> MessageMetricSharedPtr; virtual void OnMessage(MessageMetricSharedPtr) = 0; - virtual ~AMTelemetryObserver(){} + virtual ~AMTelemetryObserver() {} }; } // application_manager #endif // SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_USAGE_STATISTICS_H_ diff --git a/src/components/application_manager/include/application_manager/vehicle_info_data.h b/src/components/application_manager/include/application_manager/vehicle_info_data.h index 0cac4fd8f9..390a1707c8 100644 --- a/src/components/application_manager/include/application_manager/vehicle_info_data.h +++ b/src/components/application_manager/include/application_manager/vehicle_info_data.h @@ -34,10 +34,10 @@ #define SRC_COMPONENTS_APPLICATION_MANAGER_INCLUDE_APPLICATION_MANAGER_VEHICLE_INFO_DATA_H_ namespace application_manager { - /* - * @brief Typedef for the vehicle data types that can - * be published and subscribed to - */ +/* +*@brief Typedef for the vehicle data types that can +*be published and subscribed to +*/ enum VehicleDataType { GPS = 0, SPEED, diff --git a/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc b/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc index 19612470b7..c98b7ec028 100644 --- a/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc +++ b/src/components/application_manager/src/commands/hmi/ui_set_icon_request.cc @@ -37,11 +37,9 @@ namespace application_manager { namespace commands { UISetIconRequest::UISetIconRequest(const MessageSharedPtr& message) - : RequestToHMI(message) { -} + : RequestToHMI(message) {} -UISetIconRequest::~UISetIconRequest() { -} +UISetIconRequest::~UISetIconRequest() {} void UISetIconRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); @@ -52,4 +50,3 @@ void UISetIconRequest::Run() { } // namespace commands } // namespace application_manager - diff --git a/src/components/application_manager/src/commands/pending.cc b/src/components/application_manager/src/commands/pending.cc index 0c04464af3..c410a84fa5 100644 --- a/src/components/application_manager/src/commands/pending.cc +++ b/src/components/application_manager/src/commands/pending.cc @@ -37,13 +37,9 @@ namespace application_manager { namespace commands { +Pending::Pending() : last_(hmi_apis::FunctionID::INVALID_ENUM) {} -Pending::Pending() -: last_(hmi_apis::FunctionID::INVALID_ENUM) { -} - -Pending::~Pending() { -} +Pending::~Pending() {} void Pending::Add(hmi_apis::FunctionID::eType id) { sync_primitives::AutoLock L(lock_); diff --git a/src/components/application_manager/src/message.cc b/src/components/application_manager/src/message.cc index bb500687dd..a7c887d348 100644 --- a/src/components/application_manager/src/message.cc +++ b/src/components/application_manager/src/message.cc @@ -56,19 +56,17 @@ MessageType MessageTypeFromRpcType(protocol_handler::RpcType rpc_type) { } Message::Message(protocol_handler::MessagePriority priority) - : function_id_(0), - correlation_id_(0), - type_(kUnknownType), - priority_(priority), - connection_key_(0), - binary_data_(NULL), - data_size_(0), - payload_size_(0), - version_(kUnknownProtocol) { -} - -Message::Message(const Message& message) - : priority_(message.priority_) { + : function_id_(0) + , correlation_id_(0) + , type_(kUnknownType) + , priority_(priority) + , connection_key_(0) + , binary_data_(NULL) + , data_size_(0) + , payload_size_(0) + , version_(kUnknownProtocol) {} + +Message::Message(const Message& message) : priority_(message.priority_) { *this = message; } @@ -99,13 +97,13 @@ bool Message::operator==(const Message& message) { bool data_size = data_size_ == message.data_size_; bool payload_size = payload_size_ == message.payload_size_; - - bool binary_data = std::equal(binary_data_->begin(), binary_data_->end(), + bool binary_data = std::equal(binary_data_->begin(), + binary_data_->end(), message.binary_data_->begin(), BinaryDataPredicate); - return function_id && correlation_id && connection_key && type && binary_data - && json_message && version && data_size && payload_size; + return function_id && correlation_id && connection_key && type && + binary_data && json_message && version && data_size && payload_size; } Message::~Message() { @@ -191,7 +189,7 @@ void Message::set_protocol_version(ProtocolVersion version) { version_ = version; } -const smart_objects::SmartObject &Message::smart_object() const { +const smart_objects::SmartObject& Message::smart_object() const { return smart_object_; } diff --git a/src/components/application_manager/src/mobile_message_handler.cc b/src/components/application_manager/src/mobile_message_handler.cc index 226ff0da3f..09d9512b19 100644 --- a/src/components/application_manager/src/mobile_message_handler.cc +++ b/src/components/application_manager/src/mobile_message_handler.cc @@ -54,63 +54,67 @@ namespace application_manager { using protocol_handler::Extract; namespace { - typedef std::map<MessageType, std::string> MessageTypeMap; - MessageTypeMap messageTypes = { - std::make_pair(kRequest, "Request"), - std::make_pair(kResponse, "Response"), - std::make_pair(kNotification, "Notification") - }; +typedef std::map<MessageType, std::string> MessageTypeMap; +MessageTypeMap messageTypes = {std::make_pair(kRequest, "Request"), + std::make_pair(kResponse, "Response"), + std::make_pair(kNotification, "Notification")}; } CREATE_LOGGERPTR_GLOBAL(logger_, "ApplicationManager") -application_manager::Message* MobileMessageHandler::HandleIncomingMessageProtocol( - const protocol_handler::RawMessagePtr message) { +application_manager::Message* +MobileMessageHandler::HandleIncomingMessageProtocol( + const protocol_handler::RawMessagePtr message) { DCHECK_OR_RETURN(message, NULL); application_manager::Message* out_message = NULL; switch (message->protocol_version()) { - case ProtocolVersion::kV1: - LOG4CXX_DEBUG(logger_, "Protocol version - V1"); - out_message = MobileMessageHandler::HandleIncomingMessageProtocolV1(message); - break; - case ProtocolVersion::kV2: - LOG4CXX_DEBUG(logger_, "Protocol version - V2"); - out_message = MobileMessageHandler::HandleIncomingMessageProtocolV2(message); - break; - case ProtocolVersion::kV3: - LOG4CXX_DEBUG(logger_, "Protocol version - V3"); - out_message = MobileMessageHandler::HandleIncomingMessageProtocolV2(message); - break; - case ProtocolVersion::kV4: - LOG4CXX_DEBUG(logger_, "Protocol version - V4"); - out_message = MobileMessageHandler::HandleIncomingMessageProtocolV2(message); - break; - default: - LOG4CXX_WARN(logger_, "Can't recognise protocol version"); - out_message = NULL; - break; + case ProtocolVersion::kV1: + LOG4CXX_DEBUG(logger_, "Protocol version - V1"); + out_message = + MobileMessageHandler::HandleIncomingMessageProtocolV1(message); + break; + case ProtocolVersion::kV2: + LOG4CXX_DEBUG(logger_, "Protocol version - V2"); + out_message = + MobileMessageHandler::HandleIncomingMessageProtocolV2(message); + break; + case ProtocolVersion::kV3: + LOG4CXX_DEBUG(logger_, "Protocol version - V3"); + out_message = + MobileMessageHandler::HandleIncomingMessageProtocolV2(message); + break; + case ProtocolVersion::kV4: + LOG4CXX_DEBUG(logger_, "Protocol version - V4"); + out_message = + MobileMessageHandler::HandleIncomingMessageProtocolV2(message); + break; + default: + LOG4CXX_WARN(logger_, "Can't recognise protocol version"); + out_message = NULL; + break; } if (out_message == NULL) { - LOG4CXX_WARN(logger_, "Message is NULL"); - return NULL; + LOG4CXX_WARN(logger_, "Message is NULL"); + return NULL; } - LOG4CXX_DEBUG(logger_, "Incoming RPC_INFO: " << - (out_message->connection_key() >> 16) <<", "<< - messageTypes[out_message->type()] <<", "<< - out_message->function_id() << ", " << - out_message->correlation_id() << ", " << - out_message->json_message()); + LOG4CXX_DEBUG(logger_, + "Incoming RPC_INFO: " << (out_message->connection_key() >> 16) + << ", " + << messageTypes[out_message->type()] + << ", " << out_message->function_id() + << ", " << out_message->correlation_id() + << ", " << out_message->json_message()); return out_message; } -protocol_handler::RawMessage* MobileMessageHandler::HandleOutgoingMessageProtocol( - const MobileMessage& message) { - - LOG4CXX_DEBUG(logger_, "Outgoing RPC_INFO: " << - (message->connection_key() >> 16) <<", "<< - messageTypes[message->type()]<<", "<< - message->function_id() << ", " << - message->correlation_id() << ", " << - message->json_message()); +protocol_handler::RawMessage* +MobileMessageHandler::HandleOutgoingMessageProtocol( + const MobileMessage& message) { + LOG4CXX_DEBUG(logger_, + "Outgoing RPC_INFO: " << (message->connection_key() >> 16) + << ", " << messageTypes[message->type()] + << ", " << message->function_id() << ", " + << message->correlation_id() << ", " + << message->json_message()); if (message->protocol_version() == application_manager::kV1) { return MobileMessageHandler::HandleOutgoingMessageProtocolV1(message); @@ -123,16 +127,14 @@ protocol_handler::RawMessage* MobileMessageHandler::HandleOutgoingMessageProtoco return NULL; } - application_manager::Message* MobileMessageHandler::HandleIncomingMessageProtocolV1( - const ::protocol_handler::RawMessagePtr message) { + const ::protocol_handler::RawMessagePtr message) { LOG4CXX_AUTO_TRACE(logger_); application_manager::Message* outgoing_message = - new application_manager::Message( - protocol_handler::MessagePriority::FromServiceType( - message->service_type()) - ); + new application_manager::Message( + protocol_handler::MessagePriority::FromServiceType( + message->service_type())); if (!message) { NOTREACHED(); return NULL; @@ -140,11 +142,10 @@ MobileMessageHandler::HandleIncomingMessageProtocolV1( outgoing_message->set_connection_key(message->connection_key()); outgoing_message->set_protocol_version( - static_cast<application_manager::ProtocolVersion>(message - ->protocol_version())); - outgoing_message->set_json_message( - std::string(reinterpret_cast<const char*>(message->data()), - message->data_size())); + static_cast<application_manager::ProtocolVersion>( + message->protocol_version())); + outgoing_message->set_json_message(std::string( + reinterpret_cast<const char*>(message->data()), message->data_size())); if (outgoing_message->json_message().empty()) { delete outgoing_message; @@ -156,18 +157,18 @@ MobileMessageHandler::HandleIncomingMessageProtocolV1( application_manager::Message* MobileMessageHandler::HandleIncomingMessageProtocolV2( - const ::protocol_handler::RawMessagePtr message) { + const ::protocol_handler::RawMessagePtr message) { LOG4CXX_AUTO_TRACE(logger_); utils::BitStream message_bytestream(message->data(), message->data_size()); protocol_handler::ProtocolPayloadV2 payload; - protocol_handler::Extract(&message_bytestream, &payload, - message->data_size()); + protocol_handler::Extract( + &message_bytestream, &payload, message->data_size()); // Silently drop message if it wasn't parsed correctly if (message_bytestream.IsBad()) { - LOG4CXX_WARN(logger_, - "Drop ill-formed message from mobile, partially parsed: " - << payload); + LOG4CXX_WARN( + logger_, + "Drop ill-formed message from mobile, partially parsed: " << payload); return NULL; } @@ -183,8 +184,8 @@ MobileMessageHandler::HandleIncomingMessageProtocolV2( outgoing_message->set_correlation_id(int32_t(payload.header.correlation_id)); outgoing_message->set_connection_key(message->connection_key()); outgoing_message->set_protocol_version( - static_cast<application_manager::ProtocolVersion>(message - ->protocol_version())); + static_cast<application_manager::ProtocolVersion>( + message->protocol_version())); outgoing_message->set_data_size(message->data_size()); outgoing_message->set_payload_size(message->payload_size()); @@ -197,12 +198,11 @@ MobileMessageHandler::HandleIncomingMessageProtocolV2( protocol_handler::RawMessage* MobileMessageHandler::HandleOutgoingMessageProtocolV1( - const MobileMessage& message) { + const MobileMessage& message) { LOG4CXX_AUTO_TRACE(logger_); std::string messageString = message->json_message(); if (messageString.length() == 0) { - LOG4CXX_WARN(logger_, - "Drop ill-formed message from mobile"); + LOG4CXX_WARN(logger_, "Drop ill-formed message from mobile"); return NULL; } @@ -210,16 +210,16 @@ MobileMessageHandler::HandleOutgoingMessageProtocolV1( memcpy(rawMessage, messageString.c_str(), messageString.length() + 1); protocol_handler::RawMessage* result = new protocol_handler::RawMessage( - message->connection_key(), 1, rawMessage, messageString.length() + 1); + message->connection_key(), 1, rawMessage, messageString.length() + 1); - delete [] rawMessage; + delete[] rawMessage; return result; } protocol_handler::RawMessage* MobileMessageHandler::HandleOutgoingMessageProtocolV2( - const MobileMessage& message) { + const MobileMessage& message) { LOG4CXX_AUTO_TRACE(logger_); if (message->json_message().length() == 0) { LOG4CXX_ERROR(logger_, "json string is empty."); @@ -269,10 +269,10 @@ MobileMessageHandler::HandleOutgoingMessageProtocolV2( dataForSending[offset++] = jsonSize; memcpy(dataForSending + offset, message->json_message().c_str(), jsonSize); - + // Default the service type to RPC Service - uint8_t type = 0x07; - + uint8_t type = 0x07; + if (message->has_binary_data()) { // Change the service type to Hybrid Service type = 0x0F; @@ -284,13 +284,13 @@ MobileMessageHandler::HandleOutgoingMessageProtocolV2( } protocol_handler::RawMessage* msgToProtocolHandler = - new protocol_handler::RawMessage(message->connection_key(), - message->protocol_version(), - dataForSending, - dataForSendingSize, - type); + new protocol_handler::RawMessage(message->connection_key(), + message->protocol_version(), + dataForSending, + dataForSendingSize, + type); - delete [] dataForSending; + delete[] dataForSending; return msgToProtocolHandler; } diff --git a/src/components/application_manager/src/policies/delegates/statistics_delegate.cc b/src/components/application_manager/src/policies/delegates/statistics_delegate.cc index 4fe765688f..11c1dc9a91 100644 --- a/src/components/application_manager/src/policies/delegates/statistics_delegate.cc +++ b/src/components/application_manager/src/policies/delegates/statistics_delegate.cc @@ -76,28 +76,28 @@ StatisticsDelegate::StatisticsDelegate(PolicyHandler& policy_handler, , timespan_seconds_(timespan_seconds) , policy_handler_(policy_handler) {} - void StatisticsDelegate::threadMain() { - LOG4CXX_AUTO_TRACE(logger_); - switch (type_) { - case INCREMENT_GLOBAL: - policy_handler_.Increment(global_counter_); - break; - case INCREMENT_APP: - policy_handler_.Increment(app_id_, app_counter_); - break; - case SET: - policy_handler_.Set(app_id_, app_info_, value_); - break; - case ADD: - policy_handler_.Add(app_id_, stop_watch_, timespan_seconds_); - break; - default: - LOG4CXX_ERROR(logger_,"Unknown statistics operator"); - break; - } +void StatisticsDelegate::threadMain() { + LOG4CXX_AUTO_TRACE(logger_); + switch (type_) { + case INCREMENT_GLOBAL: + policy_handler_.Increment(global_counter_); + break; + case INCREMENT_APP: + policy_handler_.Increment(app_id_, app_counter_); + break; + case SET: + policy_handler_.Set(app_id_, app_info_, value_); + break; + case ADD: + policy_handler_.Add(app_id_, stop_watch_, timespan_seconds_); + break; + default: + LOG4CXX_ERROR(logger_, "Unknown statistics operator"); + break; } +} - void StatisticsDelegate::exitThreadMain() { - // Do nothing - } -} // namespace policy +void StatisticsDelegate::exitThreadMain() { + // Do nothing +} +} // namespace policy diff --git a/src/components/application_manager/src/policies/policy_retry_sequence.cc b/src/components/application_manager/src/policies/policy_retry_sequence.cc index e1b47a0d96..a88aef0cc1 100644 --- a/src/components/application_manager/src/policies/policy_retry_sequence.cc +++ b/src/components/application_manager/src/policies/policy_retry_sequence.cc @@ -42,8 +42,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "PolicyHandler") RetrySequence::RetrySequence(PolicyHandler* const policy_handler) // TODO (Risk copy of PolicyHandler Pointer) - : policy_handler_(policy_handler) { -} + : policy_handler_(policy_handler) {} void RetrySequence::threadMain() { StartNextRetry(); @@ -54,8 +53,7 @@ void RetrySequence::StartNextRetry() { DCHECK(policy_handler_); // TODO(Ezamakhov): inverstigate StartNextRetry on unload policy lib - BinaryMessageSptr pt_snapshot = policy_handler_ - ->RequestPTUpdate(); + BinaryMessageSptr pt_snapshot = policy_handler_->RequestPTUpdate(); if (pt_snapshot) { policy_handler_->SendMessageToSDK(*pt_snapshot); @@ -77,4 +75,3 @@ void RetrySequence::StartNextRetry() { } } // namespace policy - diff --git a/src/components/application_manager/src/policies/pt_exchange_handler_impl.cc b/src/components/application_manager/src/policies/pt_exchange_handler_impl.cc index 5a01e28d6d..d1c6fafb07 100644 --- a/src/components/application_manager/src/policies/pt_exchange_handler_impl.cc +++ b/src/components/application_manager/src/policies/pt_exchange_handler_impl.cc @@ -42,8 +42,9 @@ namespace policy { CREATE_LOGGERPTR_GLOBAL(logger_, "PolicyHandler") PTExchangeHandlerImpl::PTExchangeHandlerImpl(PolicyHandler* handler) - : policy_handler_(handler), - retry_sequence_(threads::CreateThread("RetrySequence", new RetrySequence(handler))) { + : policy_handler_(handler) + , retry_sequence_( + threads::CreateThread("RetrySequence", new RetrySequence(handler))) { DCHECK(policy_handler_); LOG4CXX_INFO(logger_, "Exchan created"); } @@ -59,7 +60,8 @@ void PTExchangeHandlerImpl::Start() { retry_sequence_->stop(); threads::DeleteThread(retry_sequence_); - retry_sequence_ = threads::CreateThread("RetrySequence", new RetrySequence(policy_handler_)); + retry_sequence_ = threads::CreateThread("RetrySequence", + new RetrySequence(policy_handler_)); if (policy_handler_) { policy_handler_->ResetRetrySequence(); diff --git a/src/components/application_manager/src/request_info.cc b/src/components/application_manager/src/request_info.cc index 2eb412559f..80b18a53c6 100644 --- a/src/components/application_manager/src/request_info.cc +++ b/src/components/application_manager/src/request_info.cc @@ -44,47 +44,40 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "RequestController") uint32_t RequestInfo::HmiConnectoinKey = 0; -HMIRequestInfo::HMIRequestInfo( - RequestPtr request, - const uint64_t timeout_msec): - RequestInfo(request, HMIRequest, timeout_msec) { - correlation_id_ = request_->correlation_id(); - app_id_ = RequestInfo::HmiConnectoinKey; +HMIRequestInfo::HMIRequestInfo(RequestPtr request, const uint64_t timeout_msec) + : RequestInfo(request, HMIRequest, timeout_msec) { + correlation_id_ = request_->correlation_id(); + app_id_ = RequestInfo::HmiConnectoinKey; } -HMIRequestInfo::HMIRequestInfo( - RequestPtr request, - const TimevalStruct &start_time, - const uint64_t timeout_msec): - RequestInfo(request, HMIRequest, start_time, timeout_msec) { - correlation_id_ = request_->correlation_id(); - app_id_ = RequestInfo::HmiConnectoinKey; +HMIRequestInfo::HMIRequestInfo(RequestPtr request, + const TimevalStruct& start_time, + const uint64_t timeout_msec) + : RequestInfo(request, HMIRequest, start_time, timeout_msec) { + correlation_id_ = request_->correlation_id(); + app_id_ = RequestInfo::HmiConnectoinKey; } -MobileRequestInfo::MobileRequestInfo( - RequestPtr request, - const uint64_t timeout_msec): - RequestInfo(request, MobileRequest, timeout_msec) { - correlation_id_ = request_.get()->correlation_id(); - app_id_ = request_.get()->connection_key(); +MobileRequestInfo::MobileRequestInfo(RequestPtr request, + const uint64_t timeout_msec) + : RequestInfo(request, MobileRequest, timeout_msec) { + correlation_id_ = request_.get()->correlation_id(); + app_id_ = request_.get()->connection_key(); } -MobileRequestInfo::MobileRequestInfo( - RequestPtr request, - const TimevalStruct &start_time, - const uint64_t timeout_msec): - RequestInfo(request, MobileRequest, start_time, timeout_msec) { - correlation_id_ = request_.get()->correlation_id(); - app_id_ = request_.get()->connection_key(); +MobileRequestInfo::MobileRequestInfo(RequestPtr request, + const TimevalStruct& start_time, + const uint64_t timeout_msec) + : RequestInfo(request, MobileRequest, start_time, timeout_msec) { + correlation_id_ = request_.get()->correlation_id(); + app_id_ = request_.get()->connection_key(); } RequestInfo::RequestInfo(RequestPtr request, const RequestInfo::RequestType requst_type, const TimevalStruct& start_time, - const uint64_t timeout_msec): - request_(request), - start_time_(start_time), - timeout_msec_(timeout_msec) { + const uint64_t timeout_msec) + : request_(request), start_time_(start_time), timeout_msec_(timeout_msec) { updateEndTime(); requst_type_ = requst_type; correlation_id_ = request_->correlation_id(); @@ -93,17 +86,18 @@ RequestInfo::RequestInfo(RequestPtr request, void application_manager::request_controller::RequestInfo::updateEndTime() { end_time_ = date_time::DateTime::getCurrentTime(); - date_time::DateTime::AddMilliseconds( end_time_, timeout_msec_ ); + date_time::DateTime::AddMilliseconds(end_time_, timeout_msec_); } -void RequestInfo::updateTimeOut(const uint64_t& timeout_msec) { +void RequestInfo::updateTimeOut(const uint64_t& timeout_msec) { timeout_msec_ = timeout_msec; updateEndTime(); } bool RequestInfo::isExpired() { TimevalStruct curr_time = date_time::DateTime::getCurrentTime(); - return date_time::DateTime::getmSecs(end_time_) <= date_time::DateTime::getmSecs(curr_time); + return date_time::DateTime::getmSecs(end_time_) <= + date_time::DateTime::getmSecs(curr_time); } uint64_t RequestInfo::hash() { @@ -114,7 +108,7 @@ uint64_t RequestInfo::GenerateHash(uint32_t var1, uint32_t var2) { uint64_t hash_result = 0; hash_result = var1; hash_result = hash_result << 32; - hash_result = hash_result | var2; + hash_result = hash_result | var2; return hash_result; } @@ -125,8 +119,10 @@ FakeRequestInfo::FakeRequestInfo(uint32_t app_id, uint32_t correaltion_id) { bool RequestInfoSet::Add(RequestInfoPtr request_info) { DCHECK_OR_RETURN(request_info, false); - LOG4CXX_DEBUG(logger_, "Add request app_id = " << request_info->app_id() - << "; corr_id = " << request_info->requestId()); + LOG4CXX_DEBUG( + logger_, + "Add request app_id = " << request_info->app_id() + << "; corr_id = " << request_info->requestId()); sync_primitives::AutoLock lock(this_lock_); CheckSetSizes(); const std::pair<HashSortedRequestInfoSet::iterator, bool>& insert_resilt = @@ -141,8 +137,10 @@ bool RequestInfoSet::Add(RequestInfoPtr request_info) { CheckSetSizes(); return true; } else { - LOG4CXX_ERROR(logger_, "Request with app_id = " << request_info->app_id() - << "; corr_id " << request_info->requestId() << " Already exist "); + LOG4CXX_ERROR(logger_, + "Request with app_id = " + << request_info->app_id() << "; corr_id " + << request_info->requestId() << " Already exist "); } CheckSetSizes(); return false; @@ -160,7 +158,7 @@ RequestInfoPtr RequestInfoSet::Find(const uint32_t connection_key, HashSortedRequestInfoSet::iterator it = hash_sorted_pending_requests_.find(request_info_for_search); if (it != hash_sorted_pending_requests_.end()) { - result = *it; + result = *it; } return result; } @@ -183,7 +181,7 @@ RequestInfoPtr RequestInfoSet::FrontWithNotNullTimeout() { TimeSortedRequestInfoSet::iterator it = time_sorted_pending_requests_.begin(); while (it != time_sorted_pending_requests_.end()) { RequestInfoPtr tmp = *it; - if (0 == tmp ->timeout_msec()) { + if (0 == tmp->timeout_msec()) { ++it; } else { result = tmp; @@ -201,8 +199,7 @@ bool RequestInfoSet::Erase(const RequestInfoPtr request_info) { } CheckSetSizes(); - size_t erased_count = - hash_sorted_pending_requests_.erase(request_info); + size_t erased_count = hash_sorted_pending_requests_.erase(request_info); DCHECK((erased_count <= 1)); if (1 == erased_count) { TimeSortedRequestInfoSet::iterator it = @@ -227,17 +224,17 @@ bool RequestInfoSet::RemoveRequest(const RequestInfoPtr request_info) { return Erase(request_info); } - -uint32_t RequestInfoSet::RemoveRequests(const RequestInfoSet::AppIdCompararator& filter) { +uint32_t RequestInfoSet::RemoveRequests( + const RequestInfoSet::AppIdCompararator& filter) { LOG4CXX_AUTO_TRACE(logger_); uint32_t erased = 0; sync_primitives::AutoLock lock(this_lock_); - HashSortedRequestInfoSet::iterator it = std::find_if( - hash_sorted_pending_requests_.begin(), - hash_sorted_pending_requests_.end(), - filter); - while (it != hash_sorted_pending_requests_.end()) { + HashSortedRequestInfoSet::iterator it = + std::find_if(hash_sorted_pending_requests_.begin(), + hash_sorted_pending_requests_.end(), + filter); + while (it != hash_sorted_pending_requests_.end()) { HashSortedRequestInfoSet::iterator to_erase = it++; Erase(*to_erase); it = std::find_if(it, hash_sorted_pending_requests_.end(), filter); @@ -247,15 +244,16 @@ uint32_t RequestInfoSet::RemoveRequests(const RequestInfoSet::AppIdCompararator& return erased; } - uint32_t RequestInfoSet::RemoveByConnectionKey(uint32_t connection_key) { LOG4CXX_AUTO_TRACE(logger_); - return RemoveRequests(AppIdCompararator(AppIdCompararator::Equal, connection_key)); + return RemoveRequests( + AppIdCompararator(AppIdCompararator::Equal, connection_key)); } uint32_t RequestInfoSet::RemoveMobileRequests() { LOG4CXX_AUTO_TRACE(logger_); - return RemoveRequests(AppIdCompararator(AppIdCompararator::NotEqual, RequestInfo::HmiConnectoinKey)); + return RemoveRequests(AppIdCompararator(AppIdCompararator::NotEqual, + RequestInfo::HmiConnectoinKey)); } const size_t RequestInfoSet::Size() { @@ -275,8 +273,7 @@ bool RequestInfoSet::CheckTimeScaleMaxRequest( uint32_t app_time_scale, uint32_t max_request_per_time_scale) { LOG4CXX_AUTO_TRACE(logger_); - if (max_request_per_time_scale > 0 - && app_time_scale > 0) { + if (max_request_per_time_scale > 0 && app_time_scale > 0) { TimevalStruct end = date_time::DateTime::getCurrentTime(); TimevalStruct start = {0, 0}; start.tv_sec = end.tv_sec - app_time_scale; @@ -284,10 +281,13 @@ bool RequestInfoSet::CheckTimeScaleMaxRequest( sync_primitives::AutoLock lock(this_lock_); TimeScale scale(start, end, app_id); const uint32_t count = std::count_if(time_sorted_pending_requests_.begin(), - time_sorted_pending_requests_.end(), scale); + time_sorted_pending_requests_.end(), + scale); if (count >= max_request_per_time_scale) { - LOG4CXX_WARN(logger_, "Processing requests count " << count << - " exceed application limit " << max_request_per_time_scale); + LOG4CXX_WARN(logger_, + "Processing requests count " << count + << " exceed application limit " + << max_request_per_time_scale); return false; } LOG4CXX_DEBUG(logger_, "Requests count " << count); @@ -297,13 +297,13 @@ bool RequestInfoSet::CheckTimeScaleMaxRequest( return true; } -bool RequestInfoSet::CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eType hmi_level, +bool RequestInfoSet::CheckHMILevelTimeScaleMaxRequest( + mobile_apis::HMILevel::eType hmi_level, uint32_t app_id, uint32_t app_time_scale, uint32_t max_request_per_time_scale) { LOG4CXX_AUTO_TRACE(logger_); - if (max_request_per_time_scale > 0 && - app_time_scale > 0) { + if (max_request_per_time_scale > 0 && app_time_scale > 0) { TimevalStruct end = date_time::DateTime::getCurrentTime(); TimevalStruct start = {0, 0}; start.tv_sec = end.tv_sec - app_time_scale; @@ -311,11 +311,14 @@ bool RequestInfoSet::CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eTy sync_primitives::AutoLock lock(this_lock_); HMILevelTimeScale scale(start, end, app_id, hmi_level); const uint32_t count = std::count_if(time_sorted_pending_requests_.begin(), - time_sorted_pending_requests_.end(), scale); + time_sorted_pending_requests_.end(), + scale); if (count >= max_request_per_time_scale) { - LOG4CXX_WARN(logger_, "Processing requests count " << count - << " exceed application limit " << max_request_per_time_scale - << " in hmi level " << hmi_level); + LOG4CXX_WARN(logger_, + "Processing requests count " + << count << " exceed application limit " + << max_request_per_time_scale << " in hmi level " + << hmi_level); return false; } LOG4CXX_DEBUG(logger_, "Requests count " << count); @@ -325,7 +328,8 @@ bool RequestInfoSet::CheckHMILevelTimeScaleMaxRequest(mobile_apis::HMILevel::eTy return true; } -bool RequestInfoSet::AppIdCompararator::operator()(const RequestInfoPtr value_compare) const { +bool RequestInfoSet::AppIdCompararator::operator()( + const RequestInfoPtr value_compare) const { switch (compare_type_) { case Equal: return value_compare->app_id() == app_id_; diff --git a/src/components/application_manager/src/smart_object_keys.cc b/src/components/application_manager/src/smart_object_keys.cc index d52f503536..a625b1f761 100644 --- a/src/components/application_manager/src/smart_object_keys.cc +++ b/src/components/application_manager/src/smart_object_keys.cc @@ -114,7 +114,7 @@ const char* start_time = "startTime"; const char* end_time = "endTime"; const char* hours = "hours"; const char* minutes = "minutes"; -const char* seconds = "seconds"; +const char* seconds = "seconds"; const char* update_mode = "updateMode"; const char* trigger_source = "triggerSource"; const char* hmi_level = "hmiLevel"; @@ -218,7 +218,7 @@ const char* sdl_version = "sdlVersion"; const char* system_software_version = "systemSoftwareVersion"; const char* priority = "priority"; -//resuming +// resuming const char* application_commands = "applicationCommands"; const char* application_submenus = "applicationSubMenus"; const char* application_choice_sets = "applicationChoiceSets"; @@ -280,7 +280,7 @@ const char* default_ = "default"; const char* languages = "languages"; const char* ttsName = "ttsName"; const char* vrSynonyms = "vrSynonyms"; -} // namespace json +} // namespace json namespace http_request { const char* httpRequest = "HTTPRequest"; @@ -296,7 +296,7 @@ const char* instance_follow_redirect = "InstanceFollowRedirect"; const char* charset = "charset"; const char* content_lenght = "Content_Lenght"; const char* GET = "GET"; -} // http_request +} // http_request namespace mobile_notification { const char* state = "state"; diff --git a/src/components/application_manager/src/usage_statistics.cc b/src/components/application_manager/src/usage_statistics.cc index 9483703f37..42c48520e9 100644 --- a/src/components/application_manager/src/usage_statistics.cc +++ b/src/components/application_manager/src/usage_statistics.cc @@ -47,7 +47,8 @@ namespace { std::string LanguageIdToString(Language::eType lang_id) { const char* str; - const bool ok = EnumConversionHelper<Language::eType>::EnumToCString(lang_id, &str); + const bool ok = + EnumConversionHelper<Language::eType>::EnumToCString(lang_id, &str); return ok ? str : "unknown"; } @@ -73,9 +74,10 @@ UsageStatistics::UsageStatistics( time_in_hmi_state_sptr_->Start(SECONDS_HMI_NONE); } -UsageStatistics::UsageStatistics(const std::string& app_id, +UsageStatistics::UsageStatistics( + const std::string& app_id, utils::SharedPtr<StatisticsManager> statistics_manager, - AppStopwatch* time_in_hmi_state_ptr) + AppStopwatch* time_in_hmi_state_ptr) : time_in_hmi_state_sptr_(time_in_hmi_state_ptr) , app_registration_language_gui_(statistics_manager, app_id, LANGUAGE_GUI) , app_registration_language_vui_(statistics_manager, app_id, LANGUAGE_VUI) diff --git a/src/components/application_manager/test/mobile_message_handler_test.cc b/src/components/application_manager/test/mobile_message_handler_test.cc index bf25b9270f..34a817d096 100644 --- a/src/components/application_manager/test/mobile_message_handler_test.cc +++ b/src/components/application_manager/test/mobile_message_handler_test.cc @@ -61,10 +61,18 @@ namespace { const unsigned char kJjson_size = 0x5e; const unsigned char kCorrelation_id = 0x5c; -unsigned char binary_header[PROTOCOL_HEADER_V2_SIZE] = { - 0x20, 0x00, 0x00, 0xf7, - 0x00, 0x00, 0x00, kCorrelation_id, - 0x00, 0x00, 0x00, kJjson_size}; +unsigned char binary_header[PROTOCOL_HEADER_V2_SIZE] = {0x20, + 0x00, + 0x00, + 0xf7, + 0x00, + 0x00, + 0x00, + kCorrelation_id, + 0x00, + 0x00, + 0x00, + kJjson_size}; std::string data( "{\n \"audioStreamingState\" : \"AUDIBLE\",\n \"hmiLevel\" : " @@ -95,9 +103,12 @@ class MobileMessageHandlerTest : public testing::Test { size_t full_size = sizeof(uint8_t) * full_data.size(); - message_ptr_ = utils::MakeShared<RawMessage>( - connection_key_, protocol_version, &full_data[0], full_size, - ServiceType::kRpc, payload_size); + message_ptr_ = utils::MakeShared<RawMessage>(connection_key_, + protocol_version, + &full_data[0], + full_size, + ServiceType::kRpc, + payload_size); return MobileMessageHandler::HandleIncomingMessageProtocol(message_ptr_); } @@ -210,9 +221,12 @@ class MobileMessageHandlerTest : public testing::Test { const uint32_t correlation_id = 92u; const uint32_t connection_key = 1u; - MobileMessage message_to_send = - CreateMessageForSending(protocol_version, function_id, correlation_id, - connection_key, data, bin_dat); + MobileMessage message_to_send = CreateMessageForSending(protocol_version, + function_id, + correlation_id, + connection_key, + data, + bin_dat); // Act RawMessage* result_message = MobileMessageHandler::HandleOutgoingMessageProtocol(message_to_send); diff --git a/src/components/application_manager/test/mobile_message_handler_v1_test.cc b/src/components/application_manager/test/mobile_message_handler_v1_test.cc index 9d20e93e16..8301bf6f18 100644 --- a/src/components/application_manager/test/mobile_message_handler_v1_test.cc +++ b/src/components/application_manager/test/mobile_message_handler_v1_test.cc @@ -52,7 +52,8 @@ namespace test { const int32_t connection_key_p1 = 1; const int32_t protocol_version_1 = 1; -const std::string data_json("\"{\"menu\": {\"id\": \"file\",\"va" +const std::string data_json( + "\"{\"menu\": {\"id\": \"file\",\"va" "lue\": \"File\",\"popup\": {\"menuitem\": [ {\"val" "ue\": \"New\", \"onclick\": \"CreateNe" "wDoc()\"}, {\"value\": \"Open\", \"oncli" @@ -60,17 +61,15 @@ const std::string data_json("\"{\"menu\": {\"id\": \"file\",\"va" "ose\", \"onclick\": \"CloseDoc()\"}]}}}\""); const unsigned char binary[PROTOCOL_HEADER_V1_SIZE] = { - 0x20, 0x00, 0x00, 0xf7, - 0x00, 0x00, 0x00, 0x10 }; + 0x20, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x10}; const unsigned char* data_v1 = - reinterpret_cast<const unsigned char*> (data_json.c_str()); + reinterpret_cast<const unsigned char*>(data_json.c_str()); TEST(MobileMessageHandlerTestV1Test, HandleIncomingMessageProtocolV1_SendJSONData_ExpectEqual) { - RawMessagePtr message = - utils::MakeShared<RawMessage> - (connection_key_p1, protocol_version_1, data_v1, data_json.length()); + RawMessagePtr message = utils::MakeShared<RawMessage>( + connection_key_p1, protocol_version_1, data_v1, data_json.length()); application_manager::Message* ptr = MobileMessageHandler::HandleIncomingMessageProtocol(message); @@ -84,15 +83,13 @@ TEST(MobileMessageHandlerTestV1Test, TEST(MobileMessageHandlerTestV1Test, HandleIncomingMessageProtocolV1_SendBinaryJSONData_ExpectEqual) { - std::string full_data(reinterpret_cast<const char*>(binary)); full_data += data_json; const unsigned char* data_v1 = - reinterpret_cast<const unsigned char*> (full_data.c_str()); + reinterpret_cast<const unsigned char*>(full_data.c_str()); - RawMessagePtr message = - utils::MakeShared<RawMessage> - (connection_key_p1, protocol_version_1, data_v1, full_data.length()); + RawMessagePtr message = utils::MakeShared<RawMessage>( + connection_key_p1, protocol_version_1, data_v1, full_data.length()); application_manager::Message* ptr = MobileMessageHandler::HandleIncomingMessageProtocol(message); @@ -106,12 +103,10 @@ TEST(MobileMessageHandlerTestV1Test, TEST(MobileMessageHandlerTestV1Test, HandleOutgoingMessageProtocol_SendMessage_ExpectEqual) { - uint32_t connection_key = 1; MobileMessage message = - utils::MakeShared<Message> - (protocol_handler::MessagePriority::kDefault); + utils::MakeShared<Message>(protocol_handler::MessagePriority::kDefault); message->set_protocol_version(application_manager::ProtocolVersion::kV1); message->set_json_message(data_json); @@ -124,7 +119,7 @@ TEST(MobileMessageHandlerTestV1Test, EXPECT_EQ(connection_key, ptr->connection_key()); EXPECT_EQ(static_cast<uint32_t>(application_manager::ProtocolVersion::kV1), - ptr->protocol_version()); + ptr->protocol_version()); } } // namespace test diff --git a/src/components/application_manager/test/mock/include/application_manager/mock_statistics_manager.h b/src/components/application_manager/test/mock/include/application_manager/mock_statistics_manager.h index db974129bf..668959fe2e 100644 --- a/src/components/application_manager/test/mock/include/application_manager/mock_statistics_manager.h +++ b/src/components/application_manager/test/mock/include/application_manager/mock_statistics_manager.h @@ -43,17 +43,19 @@ namespace components { namespace application_manager_test { using namespace ::usage_statistics; -class MockStatisticsManager: public StatisticsManager { +class MockStatisticsManager : public StatisticsManager { public: MOCK_METHOD1(Increment, void(GlobalCounterId type)); MOCK_METHOD2(Increment, void(const std::string& app_id, AppCounterId type)); - MOCK_METHOD3(Set, void(const std::string& app_id, - AppInfoId type, - const std::string& value)); - MOCK_METHOD3(Add, void(const std::string& app_id, - AppStopwatchId type, - int32_t timespan_seconds)); - virtual ~MockStatisticsManager(){} + MOCK_METHOD3(Set, + void(const std::string& app_id, + AppInfoId type, + const std::string& value)); + MOCK_METHOD3(Add, + void(const std::string& app_id, + AppStopwatchId type, + int32_t timespan_seconds)); + virtual ~MockStatisticsManager() {} }; } // namespace application_manager_test diff --git a/src/components/application_manager/test/mock/mock_telemetry_observer.h b/src/components/application_manager/test/mock/mock_telemetry_observer.h index 3130a7382a..bc5d444eed 100644 --- a/src/components/application_manager/test/mock/mock_telemetry_observer.h +++ b/src/components/application_manager/test/mock/mock_telemetry_observer.h @@ -40,8 +40,9 @@ namespace test { namespace components { namespace application_manager_test { -class MockAMTelemetryObserver : public application_manager::AMTelemetryObserver { - public: +class MockAMTelemetryObserver + : public application_manager::AMTelemetryObserver { + public: MOCK_METHOD1(OnMessage, void(MessageMetricSharedPtr)); }; diff --git a/src/components/application_manager/test/mock/policy_handler_interface_mock.h b/src/components/application_manager/test/mock/policy_handler_interface_mock.h index 94997f00bc..bc4a960a34 100644 --- a/src/components/application_manager/test/mock/policy_handler_interface_mock.h +++ b/src/components/application_manager/test/mock/policy_handler_interface_mock.h @@ -30,7 +30,6 @@ * POSSIBILITY OF SUCH DAMAGE. */ - #ifndef SRC_COMPONENTS_APPLICATION_MANAGER_TEST_MOCK_POLICY_HANDLER_INTERFACE_MOCK_H_ #define SRC_COMPONENTS_APPLICATION_MANAGER_TEST_MOCK_POLICY_HANDLER_INTERFACE_MOCK_H_ @@ -38,7 +37,6 @@ #include "gmock/gmock.h" #include "policy/policy_types.h" - namespace policy { namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; @@ -49,8 +47,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD0(InitPolicyTable, bool()); MOCK_METHOD0(ResetPolicyTable, bool()); MOCK_METHOD0(ClearUserConsent, bool()); - MOCK_METHOD2(SendMessageToSDK, bool(const policy::BinaryMessage& pt_string, - const std::string& url)); + MOCK_METHOD2(SendMessageToSDK, + bool(const policy::BinaryMessage& pt_string, + const std::string& url)); MOCK_METHOD2(ReceiveMessageFromSDK, bool(const std::string& file, const policy::BinaryMessage& pt_string)); @@ -66,27 +65,31 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { void(const policy::BinaryMessage& pt_string, const std::vector<int>& retry_delay_seconds, int timeout_exchange)); - MOCK_CONST_METHOD2(GetPriority, bool(const std::string& policy_app_id, - std::string* priority)); + MOCK_CONST_METHOD2(GetPriority, + bool(const std::string& policy_app_id, + std::string* priority)); MOCK_METHOD5(CheckPermissions, void(const policy::PTString& app_id, const policy::PTString& hmi_level, - const policy::PTString& rpc, const policy::RPCParams& rpc_params, + const policy::PTString& rpc, + const policy::RPCParams& rpc_params, policy::CheckPermissionResult& result)); MOCK_CONST_METHOD1(GetNotificationsNumber, uint32_t(const std::string& priority)); MOCK_CONST_METHOD1(GetUserConsentForDevice, policy::DeviceConsent(const std::string& device_id)); - MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, - std::string* default_hmi)); + MOCK_CONST_METHOD2(GetDefaultHmi, + bool(const std::string& policy_app_id, + std::string* default_hmi)); MOCK_METHOD3(GetInitialAppData, - bool(const std::string& application_id, policy::StringArray* nicknames, + bool(const std::string& application_id, + policy::StringArray* nicknames, policy::StringArray* app_hmi_types)); MOCK_METHOD2(GetInitialAppData, - bool(const std::string& application_id, policy::StringArray* nicknames)); - MOCK_METHOD1(GetInitialAppData, - bool(const std::string& application_id)); + bool(const std::string& application_id, + policy::StringArray* nicknames)); + MOCK_METHOD1(GetInitialAppData, bool(const std::string& application_id)); MOCK_METHOD2(GetUpdateUrls, void(int service_type, policy::EndpointUrls& end_points)); MOCK_METHOD0(ResetRetrySequence, void()); @@ -111,26 +114,31 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(OnPendingPermissionChange, void(const std::string& policy_app_id)); MOCK_METHOD1(PTExchangeAtUserRequest, void(uint32_t correlation_id)); - MOCK_METHOD2(AddDevice, void(const std::string& device_id, - const std::string& connection_type)); - MOCK_METHOD2(SetDeviceInfo, void(const std::string& device_id, - const policy::DeviceInfo& device_info)); + MOCK_METHOD2(AddDevice, + void(const std::string& device_id, + const std::string& connection_type)); + MOCK_METHOD2(SetDeviceInfo, + void(const std::string& device_id, + const policy::DeviceInfo& device_info)); MOCK_METHOD2(OnAppPermissionConsent, void(const uint32_t connection_key, const policy::PermissionConsent& permissions)); MOCK_METHOD3(OnGetUserFriendlyMessage, void(const std::vector<std::string>& message_codes, - const std::string& language, uint32_t correlation_id)); - MOCK_METHOD2(OnGetListOfPermissions, void(const uint32_t connection_key, - const uint32_t correlation_id)); + const std::string& language, + uint32_t correlation_id)); + MOCK_METHOD2(OnGetListOfPermissions, + void(const uint32_t connection_key, + const uint32_t correlation_id)); MOCK_METHOD1(OnGetStatusUpdate, void(const uint32_t correlation_id)); MOCK_METHOD1(OnUpdateStatusChanged, void(const std::string& status)); MOCK_METHOD1(OnCurrentDeviceIdUpdateRequired, std::string(const std::string& policy_app_id)); MOCK_METHOD1(OnSystemInfoChanged, void(const std::string& language)); - MOCK_METHOD3(OnGetSystemInfo, void(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language)); + MOCK_METHOD3(OnGetSystemInfo, + void(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language)); MOCK_METHOD0(OnSystemInfoUpdateRequired, void()); MOCK_METHOD0(OnVIIsReady, void()); MOCK_METHOD1(OnVehicleDataUpdated, @@ -139,8 +147,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(AddStatisticsInfo, void(int type)); MOCK_METHOD1(OnSystemError, void(int code)); MOCK_CONST_METHOD0(GetAppIdForSending, uint32_t()); - MOCK_METHOD1(GetAppName, - utils::custom_string::CustomString(const std::string& policy_app_id)); + MOCK_METHOD1( + GetAppName, + utils::custom_string::CustomString(const std::string& policy_app_id)); MOCK_METHOD1(OnUpdateHMIAppType, void(std::map<std::string, policy::StringArray> app_hmi_types)); MOCK_METHOD1(OnCertificateUpdated, void(const std::string& certificate_data)); @@ -164,18 +173,22 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_CONST_METHOD2(IsRequestTypeAllowed, bool(const std::string& policy_app_id, mobile_apis::RequestType::eType type)); - MOCK_CONST_METHOD1(GetAppRequestTypes, const std::vector<std::string>( - const std::string& policy_app_id)); + MOCK_CONST_METHOD1( + GetAppRequestTypes, + const std::vector<std::string>(const std::string& policy_app_id)); MOCK_CONST_METHOD0(GetVehicleInfo, const policy::VehicleInfo()); MOCK_METHOD1(Increment, void(usage_statistics::GlobalCounterId type)); - MOCK_METHOD2(Increment, void(const std::string& app_id, - usage_statistics::AppCounterId type)); + MOCK_METHOD2(Increment, + void(const std::string& app_id, + usage_statistics::AppCounterId type)); MOCK_METHOD3(Set, - void(const std::string& app_id, usage_statistics::AppInfoId type, + void(const std::string& app_id, + usage_statistics::AppInfoId type, const std::string& value)); - MOCK_METHOD3(Add, void(const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds)); + MOCK_METHOD3(Add, + void(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds)); MOCK_CONST_METHOD0(RetrieveCertificate, std::string()); MOCK_CONST_METHOD0(get_settings, const policy::PolicySettings&()); @@ -187,5 +200,4 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { } // namespace policy -#endif // SRC_COMPONENTS_APPLICATION_MANAGER_TEST_MOCK_POLICY_HANDLER_INTERFACE_MOCK_H_ - +#endif // SRC_COMPONENTS_APPLICATION_MANAGER_TEST_MOCK_POLICY_HANDLER_INTERFACE_MOCK_H_ diff --git a/src/components/application_manager/test/state_controller/include/application_manager_mock.h b/src/components/application_manager/test/state_controller/include/application_manager_mock.h index 5a8e82a4b8..35f5f4dbdb 100644 --- a/src/components/application_manager/test/state_controller/include/application_manager_mock.h +++ b/src/components/application_manager/test/state_controller/include/application_manager_mock.h @@ -96,11 +96,12 @@ class ApplicationManagerMock : public application_manager::ApplicationManager { am::commands::Command::CommandOrigin origin)); MOCK_METHOD1(ManageHMICommand, bool(const smart_objects::SmartObjectSPtr message)); - MOCK_CONST_METHOD2(CanAppStream, bool (uint32_t app_id, - protocol_handler::ServiceType service_type)); - MOCK_METHOD1(ForbidStreaming, void (uint32_t app_id)); - MOCK_METHOD2(SendAudioPassThroughNotification, void (uint32_t session_key, - std::vector<uint8_t>& binary_data)); + MOCK_CONST_METHOD2(CanAppStream, + bool(uint32_t app_id, + protocol_handler::ServiceType service_type)); + MOCK_METHOD1(ForbidStreaming, void(uint32_t app_id)); + MOCK_METHOD2(SendAudioPassThroughNotification, + void(uint32_t session_key, std::vector<uint8_t>& binary_data)); MOCK_CONST_METHOD0(connection_handler, connection_handler::ConnectionHandler&()); }; diff --git a/src/components/config_profile/include/config_profile/ini_file.h b/src/components/config_profile/include/config_profile/ini_file.h index 1b6248246c..3f3ddddf48 100644 --- a/src/components/config_profile/include/config_profile/ini_file.h +++ b/src/components/config_profile/include/config_profile/ini_file.h @@ -37,7 +37,7 @@ namespace profile { -#define INI_FILE_VER 1000 +#define INI_FILE_VER 1000 #if !defined TRUE #define TRUE 1 @@ -56,12 +56,12 @@ namespace profile { /* * @brief Global defines */ -#define INI_LINE_LEN 512 -#define INI_FILE_TEMP_NAME "ini.tmp" +#define INI_LINE_LEN 512 +#define INI_FILE_TEMP_NAME "ini.tmp" -#define INI_FLAG_UPDATE 0x00 -#define INI_FLAG_ITEM_UP_CREA 0x01 -#define INI_FLAG_FILE_UP_CREA 0x10 +#define INI_FLAG_UPDATE 0x00 +#define INI_FLAG_ITEM_UP_CREA 0x01 +#define INI_FLAG_FILE_UP_CREA 0x10 /* * @brief Global typedefs @@ -90,28 +90,27 @@ extern "C" { * * @return NULL if file or desired entry not found, otherwise pointer to fname */ -extern char* ini_write_inst(const char *fname, - uint8_t flag); +extern char* ini_write_inst(const char* fname, uint8_t flag); /* * @brief Read a certain item of the specified chapter of a ini-file * * @return NULL if file or desired entry not found, otherwise pointer to value */ -extern char* ini_read_value(const char *fname, - const char *chapter, - const char *item, - char *value); +extern char* ini_read_value(const char* fname, + const char* chapter, + const char* item, + char* value); /* * @brief Write a certain item of the specified chapter of a ini-file * * @return NULL if file not found, otherwise pointer to value */ -extern char ini_write_value(const char *fname, - const char *chapter, - const char *item, - const char *value, +extern char ini_write_value(const char* fname, + const char* chapter, + const char* item, + const char* value, uint8_t flag); /* @@ -120,9 +119,9 @@ extern char ini_write_value(const char *fname, * * @return NULL if desired entry not found, otherwise pointer to value */ -extern Ini_search_id ini_parse_line(const char *line, - const char *tag, - char *value); +extern Ini_search_id ini_parse_line(const char* line, + const char* tag, + char* value); #ifdef __cplusplus } diff --git a/src/components/config_profile/src/ini_file.cc b/src/components/config_profile/src/ini_file.cc index fcdf24db31..d6d72060e8 100644 --- a/src/components/config_profile/src/ini_file.cc +++ b/src/components/config_profile/src/ini_file.cc @@ -42,19 +42,19 @@ #ifndef _WIN32 #include <unistd.h> #else -#define PATH_MAX _MAX_PATH +#define PATH_MAX _MAX_PATH #endif #ifdef __linux__ -#define USE_MKSTEMP 1 +#define USE_MKSTEMP 1 #endif #include <string> namespace profile { -char* ini_write_inst(const char *fname, uint8_t flag) { - FILE *fp = 0; +char* ini_write_inst(const char* fname, uint8_t flag) { + FILE* fp = 0; if (NULL == fname) return NULL; @@ -89,15 +89,17 @@ char* ini_write_inst(const char *fname, uint8_t flag) { return const_cast<char*>(fname); } -char* ini_read_value(const char *fname, - const char *chapter, const char *item, char *value) { - FILE *fp = 0; - bool chapter_found = false; - char line[INI_LINE_LEN] = ""; - char val[INI_LINE_LEN] = ""; - char tag[INI_LINE_LEN] = ""; - - Ini_search_id result; +char* ini_read_value(const char* fname, + const char* chapter, + const char* item, + char* value) { + FILE* fp = 0; + bool chapter_found = false; + char line[INI_LINE_LEN] = ""; + char val[INI_LINE_LEN] = ""; + char tag[INI_LINE_LEN] = ""; + + Ini_search_id result; *line = '\0'; *val = '\0'; *tag = '\0'; @@ -146,19 +148,21 @@ char* ini_read_value(const char *fname, return NULL; } -char ini_write_value(const char *fname, - const char *chapter, const char *item, - const char *value, uint8_t flag) { - FILE *rd_fp, *wr_fp = 0; - uint16_t i, cr_count; - int32_t wr_result; - bool chapter_found = false; - bool value_written = false; - char line[INI_LINE_LEN] = ""; - char val[INI_LINE_LEN] = ""; - char tag[INI_LINE_LEN] = ""; - char temp_fname[PATH_MAX] = ""; - Ini_search_id result; +char ini_write_value(const char* fname, + const char* chapter, + const char* item, + const char* value, + uint8_t flag) { + FILE* rd_fp, * wr_fp = 0; + uint16_t i, cr_count; + int32_t wr_result; + bool chapter_found = false; + bool value_written = false; + char line[INI_LINE_LEN] = ""; + char val[INI_LINE_LEN] = ""; + char tag[INI_LINE_LEN] = ""; + char temp_fname[PATH_MAX] = ""; + Ini_search_id result; *line = '\0'; *val = '\0'; *tag = '\0'; @@ -177,11 +181,10 @@ char ini_write_value(const char *fname, #if USE_MKSTEMP { - const char *temp_str = "./"; + const char* temp_str = "./"; int32_t fd = -1; if (temp_str) { - snprintf(temp_fname, PATH_MAX, - "%s/ini.XXXXXX", temp_str); + snprintf(temp_fname, PATH_MAX, "%s/ini.XXXXXX", temp_str); fd = mkstemp(temp_fname); if (-1 == fd) { @@ -200,16 +203,17 @@ char ini_write_value(const char *fname, #else // #if USE_MKSTEMP tmpnam(temp_fname); if (0 == (wr_fp = fopen(temp_fname, "w"))) { - fclose(rd_fp); - return FALSE; + fclose(rd_fp); + return FALSE; } -#endif // #else #if USE_MKSTEMP +#endif // #else #if USE_MKSTEMP snprintf(tag, INI_LINE_LEN, "%s", chapter); - for (uint32_t i = 0; i < strlen (tag); i++) + for (uint32_t i = 0; i < strlen(tag); i++) tag[i] = toupper(tag[i]); - wr_result = 1; cr_count = 0; + wr_result = 1; + cr_count = 0; while ((NULL != fgets(line, INI_LINE_LEN, rd_fp)) && (0 < wr_result)) { // Now start the line parsing result = ini_parse_line(line, tag, val); @@ -220,7 +224,7 @@ char ini_write_value(const char *fname, chapter_found = true; // coding style snprintf(tag, INI_LINE_LEN, "%s", item); - for (uint32_t i = 0; i < strlen (tag); i++) + for (uint32_t i = 0; i < strlen(tag); i++) tag[i] = toupper(tag[i]); } } else { @@ -241,7 +245,7 @@ char ini_write_value(const char *fname, continue; } } - } /* if (!value_written) */ + } /* if (!value_written) */ if (0 == strcmp(val, "\n")) { cr_count++; @@ -262,7 +266,6 @@ char ini_write_value(const char *fname, } fprintf(wr_fp, "\n"); - fclose(wr_fp); fclose(rd_fp); @@ -275,10 +278,10 @@ char ini_write_value(const char *fname, return (value_written); } -Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { - const char *line_ptr; - char *temp_ptr; - char temp_str[INI_LINE_LEN] = ""; +Ini_search_id ini_parse_line(const char* line, const char* tag, char* value) { + const char* line_ptr; + char* temp_ptr; + char temp_str[INI_LINE_LEN] = ""; *temp_str = '\0'; snprintf(value, INI_LINE_LEN, "%s", line); @@ -286,13 +289,12 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { /* cut leading spaces */ line_ptr = line; for (uint32_t i = 0; i < strlen(line); i++) { - if ((line[i] == ' ') || - (line[i] == 9) || // TAB - (line[i] == 10) || // LF - (line[i] == 13)) { // CR + if ((line[i] == ' ') || (line[i] == 9) || // TAB + (line[i] == 10) || // LF + (line[i] == 13)) { // CR line_ptr++; } else { - break; + break; } } if ('\0' == *line_ptr) { @@ -300,7 +302,7 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { return INI_NOTHING; } - if ((*line_ptr == ';') || (*line_ptr == '*')) /* remark */ + if ((*line_ptr == ';') || (*line_ptr == '*')) /* remark */ return INI_REMARK; if (*line_ptr == '[' && strrchr(line_ptr, ']') != NULL) { @@ -309,13 +311,12 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { /* cut leading stuff */ uint16_t len = strlen(line_ptr); for (int32_t i = 0; i < len; i++) { - if ((*line_ptr == ' ') || - (*line_ptr == 9) || // TAB - (*line_ptr == 10) || // LF - (*line_ptr == 13)) { // CR + if ((*line_ptr == ' ') || (*line_ptr == 9) || // TAB + (*line_ptr == 10) || // LF + (*line_ptr == 13)) { // CR line_ptr++; } else { - break; + break; } } if (*line_ptr == '\0') @@ -331,13 +332,12 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { /* cut trailing stuff */ for (int32_t i = strlen(temp_str) - 1; i > 0; i--) { - if ((temp_str[i] == ' ') || - (temp_str[i] == 9) || // TAB - (temp_str[i] == 10) || // LF - (temp_str[i] == 13)) { // CR + if ((temp_str[i] == ' ') || (temp_str[i] == 9) || // TAB + (temp_str[i] == 10) || // LF + (temp_str[i] == 13)) { // CR temp_str[i] = '\0'; } else { - break; + break; } } @@ -355,11 +355,10 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { strncpy(temp_str, line_ptr, (strchr(line_ptr, '=') - line_ptr)); /* cut trailing stuff */ for (int32_t i = strlen(temp_str) - 1; i > 0; i--) { - if ((temp_str[i] == '=') || - (temp_str[i] == ' ') || - (temp_str[i] == 9) || // TAB - (temp_str[i] == 10) || // LF - (temp_str[i] == 13)) { // CR + if ((temp_str[i] == '=') || (temp_str[i] == ' ') || + (temp_str[i] == 9) || // TAB + (temp_str[i] == 10) || // LF + (temp_str[i] == 13)) { // CR temp_str[i] = '\0'; } else { break; @@ -368,17 +367,16 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { snprintf(value, INI_LINE_LEN, "%s", temp_str); - for (uint32_t i = 0; i < strlen (temp_str); i++) + for (uint32_t i = 0; i < strlen(temp_str); i++) temp_str[i] = toupper(temp_str[i]); if (strcmp(temp_str, tag) == 0) { line_ptr = strchr(line_ptr, '=') + 1; uint16_t len = strlen(line_ptr); /* cut trailing stuff */ for (uint32_t i = 0; i < len; i++) { - if ((*line_ptr == ' ') || - (*line_ptr == 9) || // TAB - (*line_ptr == 10) || // LF - (*line_ptr == 13)) { // CR + if ((*line_ptr == ' ') || (*line_ptr == 9) || // TAB + (*line_ptr == 10) || // LF + (*line_ptr == 13)) { // CR line_ptr++; } else { break; @@ -390,11 +388,10 @@ Ini_search_id ini_parse_line(const char *line, const char *tag, char *value) { if (value[0] != '\0') { /* cut trailing stuff */ for (int32_t i = strlen(value) - 1; i > 0; i--) { - if ((value[i] == ' ') || - (value[i] == ';') || - (value[i] == 9) || // TAB - (value[i] == 10) || // LF - (value[i] == 13)) { // CR + if ((value[i] == ' ') || (value[i] == ';') || + (value[i] == 9) || // TAB + (value[i] == 10) || // LF + (value[i] == 13)) { // CR value[i] = '\0'; } else { break; diff --git a/src/components/config_profile/test/ini_file_test.cc b/src/components/config_profile/test/ini_file_test.cc index cd124c9ed3..2f256c8b51 100644 --- a/src/components/config_profile/test/ini_file_test.cc +++ b/src/components/config_profile/test/ini_file_test.cc @@ -42,16 +42,16 @@ using namespace ::profile; TEST(IniFileTest, WriteItemReadItem) { // Write line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * item = "Test_item"; - const char * value = "test_value"; - const bool write_result = ini_write_value(fname, chapter, item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* item = "Test_item"; + const char* value = "test_value"; + const bool write_result = + ini_write_value(fname, chapter, item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); char search_value[INI_LINE_LEN] = {0}; const bool read_result = ini_read_value(fname, chapter, item, search_value); - const char *res = search_value; + const char* res = search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(res, value); @@ -60,18 +60,19 @@ TEST(IniFileTest, WriteItemReadItem) { TEST(IniFileTest, WriteItemWithoutValueReadItem) { // Write line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * test_item = "Test_item"; - const char * value = ""; - const bool write_result = ini_write_value(fname, chapter, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* test_item = "Test_item"; + const char* value = ""; + const bool write_result = + ini_write_value(fname, chapter, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); // Read value from file char search_value[INI_LINE_LEN] = {0}; - const bool read_result = ini_read_value(fname, chapter, test_item, search_value); - const char *res = search_value; + const bool read_result = + ini_read_value(fname, chapter, test_item, search_value); + const char* res = search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(res, value); @@ -80,30 +81,31 @@ TEST(IniFileTest, WriteItemWithoutValueReadItem) { TEST(IniFileTest, WriteSameItemInDifferentChapters) { // Write line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter1 = "Chapter1"; - const char * test_item = "Test_item"; - const char * value = "test_value"; - const bool write_result = ini_write_value(fname, chapter1, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter1 = "Chapter1"; + const char* test_item = "Test_item"; + const char* value = "test_value"; + const bool write_result = + ini_write_value(fname, chapter1, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); char search_value[INI_LINE_LEN] = {0}; - const bool read_result = ini_read_value(fname, chapter1, test_item, search_value); - const char *res = search_value; + const bool read_result = + ini_read_value(fname, chapter1, test_item, search_value); + const char* res = search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(res, value); // Create new chapter and write the same value - const char *chapter2 = "Chapter2"; + const char* chapter2 = "Chapter2"; - const bool write_result2 = ini_write_value(fname, chapter2, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const bool write_result2 = + ini_write_value(fname, chapter2, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result2); char value2[INI_LINE_LEN] = "test_value"; const bool read_result2 = ini_read_value(fname, chapter2, test_item, value2); - const char *res2 = value2; + const char* res2 = value2; EXPECT_TRUE(read_result2); EXPECT_STREQ(res2, res); EXPECT_TRUE(file_system::DeleteFile("./test_ini_file.ini")); @@ -111,29 +113,29 @@ TEST(IniFileTest, WriteSameItemInDifferentChapters) { TEST(IniFileTest, RewriteItem) { // Write line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * item = "Test_item"; - const char * value = "test_value"; - bool write_result = ini_write_value(fname, chapter, item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* item = "Test_item"; + const char* value = "test_value"; + bool write_result = + ini_write_value(fname, chapter, item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); char search_value[INI_LINE_LEN] = {0}; bool read_result = ini_read_value(fname, chapter, item, search_value); - const char *res = search_value; + const char* res = search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(res, value); // Write item again - const char * newvalue = "new_test_value"; - write_result = ini_write_value(fname, chapter, item, newvalue, - INI_FLAG_ITEM_UP_CREA); + const char* newvalue = "new_test_value"; + write_result = + ini_write_value(fname, chapter, item, newvalue, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); char new_search_value[INI_LINE_LEN] = {0}; read_result = ini_read_value(fname, chapter, item, new_search_value); - const char *new_res = new_search_value; + const char* new_res = new_search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(new_res, newvalue); EXPECT_TRUE(file_system::DeleteFile("./test_ini_file.ini")); @@ -141,92 +143,92 @@ TEST(IniFileTest, RewriteItem) { TEST(IniFileTest, WriteTwoItemsInOneChapter) { // Write line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * item = "Test_item"; - const char * value1 = "test_value"; + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* item = "Test_item"; + const char* value1 = "test_value"; - bool write_result = ini_write_value(fname, chapter, item, value1, - INI_FLAG_ITEM_UP_CREA); + bool write_result = + ini_write_value(fname, chapter, item, value1, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); // Write another line in the same chapter - const char * item2 = "Test_item2"; - const char * value2 = "test_value2"; + const char* item2 = "Test_item2"; + const char* value2 = "test_value2"; - write_result = ini_write_value(fname, chapter, item2, value2, - INI_FLAG_ITEM_UP_CREA); + write_result = + ini_write_value(fname, chapter, item2, value2, INI_FLAG_ITEM_UP_CREA); EXPECT_TRUE(write_result); // Search both values char search_value[INI_LINE_LEN] = {0}; bool read_result = ini_read_value(fname, chapter, item, search_value); - const char *res = search_value; + const char* res = search_value; EXPECT_TRUE(read_result); EXPECT_STREQ(res, value1); char search_value2[INI_LINE_LEN] = {0}; read_result = ini_read_value(fname, chapter, item2, search_value2); - const char *res2 = search_value2; + const char* res2 = search_value2; EXPECT_TRUE(read_result); EXPECT_STREQ(res2, value2); EXPECT_TRUE(file_system::DeleteFile("./test_ini_file.ini")); } TEST(IniFileTest, WriteEmptyItemWithValueReadItem) { - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * test_item = ""; - const char * value = "test_value"; - bool result = ini_write_value(fname, chapter, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* test_item = ""; + const char* value = "test_value"; + bool result = + ini_write_value(fname, chapter, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_FALSE(result); } TEST(IniFileTest, WriteEmptyItemWithEmptyValue_ExpectFalse) { // Write empty line in chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = "Chapter"; - const char * test_item = ""; - const char * value = ""; - bool result = ini_write_value(fname, chapter, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = "Chapter"; + const char* test_item = ""; + const char* value = ""; + bool result = + ini_write_value(fname, chapter, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_FALSE(result); } TEST(IniFileTest, WriteItemInEmptyChapter_ExpectFalse) { // Write line in empty chapter - const char * fname = "./test_ini_file.ini"; - const char *chapter = ""; - const char * test_item = "Test_item"; - const char * value = "test_value"; - bool result = ini_write_value(fname, chapter, test_item, value, - INI_FLAG_ITEM_UP_CREA); + const char* fname = "./test_ini_file.ini"; + const char* chapter = ""; + const char* test_item = "Test_item"; + const char* value = "test_value"; + bool result = + ini_write_value(fname, chapter, test_item, value, INI_FLAG_ITEM_UP_CREA); EXPECT_FALSE(result); } -TEST(IniFileTest,ParseEmptyLine) { +TEST(IniFileTest, ParseEmptyLine) { char line[INI_LINE_LEN] = {0}; char val[INI_LINE_LEN] = {0}; - const char * tag = "HMI"; + const char* tag = "HMI"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_NOTHING, result); } -TEST(IniFileTest,ParseChapter) { - const char * line = "[HMI]"; +TEST(IniFileTest, ParseChapter) { + const char* line = "[HMI]"; char val[INI_LINE_LEN] = {0}; - const char * tag = "HMI"; + const char* tag = "HMI"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_RIGHT_CHAPTER, result); } -TEST(IniFileTest,ParseChapterTagEmpty) { - const char * line = "[HMI]"; +TEST(IniFileTest, ParseChapterTagEmpty) { + const char* line = "[HMI]"; char val[INI_LINE_LEN] = {0}; char tag[INI_LINE_LEN] = {0}; @@ -235,37 +237,37 @@ TEST(IniFileTest,ParseChapterTagEmpty) { EXPECT_EQ(INI_WRONG_CHAPTER, result); } -TEST(IniFileTest,ParseChapterWithUppercaseTag) { - const char * line = "[Security Manager]"; +TEST(IniFileTest, ParseChapterWithUppercaseTag) { + const char* line = "[Security Manager]"; char val[INI_LINE_LEN] = {0}; - const char * tag = "SECURITY MANAGER"; + const char* tag = "SECURITY MANAGER"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_RIGHT_CHAPTER, result); } -TEST(IniFileTest,ParseChapterWithLowcaseTag) { - const char * line = "[Security Manager]"; +TEST(IniFileTest, ParseChapterWithLowcaseTag) { + const char* line = "[Security Manager]"; char val[INI_LINE_LEN] = {0}; - const char * tag = "Security Manager"; + const char* tag = "Security Manager"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_WRONG_CHAPTER, result); } -TEST(IniFileTest,ParseWithWrongChapter) { - const char * line = "[HMI]"; +TEST(IniFileTest, ParseWithWrongChapter) { + const char* line = "[HMI]"; char val[INI_LINE_LEN] = {0}; - const char * tag = "MAIN"; + const char* tag = "MAIN"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_WRONG_CHAPTER, result); } -TEST(IniFileTest,ParseLineWithItem) { +TEST(IniFileTest, ParseLineWithItem) { char line[INI_LINE_LEN] = "LaunchHMI = true"; char val[INI_LINE_LEN] = ""; char tag[INI_LINE_LEN] = "LAUNCHHMI"; @@ -278,21 +280,21 @@ TEST(IniFileTest,ParseLineWithItem) { EXPECT_EQ(*check_val, *val); } -TEST(IniFileTest,ParseLineWithoutItem) { - const char * line = "LaunchHMI = "; +TEST(IniFileTest, ParseLineWithoutItem) { + const char* line = "LaunchHMI = "; char val[INI_LINE_LEN] = {0}; - const char * tag = "LAUNCHHMI"; + const char* tag = "LAUNCHHMI"; Ini_search_id result; result = ini_parse_line(line, tag, val); - const char *res = val; - const char *check_val=""; + const char* res = val; + const char* check_val = ""; EXPECT_EQ(INI_RIGHT_ITEM, result); EXPECT_STREQ(check_val, res); } -TEST(IniFileTest,ParseLineWithEmptytag) { - const char * line = "LaunchHMI = true"; +TEST(IniFileTest, ParseLineWithEmptytag) { + const char* line = "LaunchHMI = true"; char val[INI_LINE_LEN] = {0}; char tag[INI_LINE_LEN] = {0}; @@ -301,24 +303,24 @@ TEST(IniFileTest,ParseLineWithEmptytag) { EXPECT_EQ(INI_WRONG_ITEM, result); } -TEST(IniFileTest,ParseLineWithLowcaseTag) { - const char * line = "LaunchHMI = true"; +TEST(IniFileTest, ParseLineWithLowcaseTag) { + const char* line = "LaunchHMI = true"; char val[INI_LINE_LEN] = {0}; - const char * tag = "LaunchHmi"; + const char* tag = "LaunchHmi"; Ini_search_id result; result = ini_parse_line(line, tag, val); EXPECT_EQ(INI_WRONG_ITEM, result); } -TEST(IniFileTest,ParseLineWithComment) { - const char * line = "; [HMI]"; +TEST(IniFileTest, ParseLineWithComment) { + const char* line = "; [HMI]"; char val[INI_LINE_LEN] = {0}; - const char * tag = "HMI"; + const char* tag = "HMI"; Ini_search_id result; result = ini_parse_line(line, tag, val); - const char *res = val; + const char* res = val; EXPECT_EQ(INI_REMARK, result); EXPECT_STREQ(line, res); } diff --git a/src/components/connection_handler/include/connection_handler/connection.h b/src/components/connection_handler/include/connection_handler/connection.h index 4c98aa79fb..aafc562505 100644 --- a/src/components/connection_handler/include/connection_handler/connection.h +++ b/src/components/connection_handler/include/connection_handler/connection.h @@ -73,13 +73,10 @@ struct Service { protocol_handler::ServiceType service_type; bool is_protected_; Service() - : service_type(protocol_handler::kInvalidServiceType), - is_protected_(false) { - } + : service_type(protocol_handler::kInvalidServiceType) + , is_protected_(false) {} explicit Service(protocol_handler::ServiceType service_type) - : service_type(service_type), - is_protected_(false) { - } + : service_type(service_type), is_protected_(false) {} bool operator==(const protocol_handler::ServiceType service_type) const { return this->service_type == service_type; } @@ -94,23 +91,26 @@ struct Session { ServiceList service_list; uint8_t protocol_version; #ifdef ENABLE_SECURITY - security_manager::SSLContext *ssl_context; + security_manager::SSLContext* ssl_context; #endif // ENABLE_SECURITY Session() - : service_list() + : service_list() #ifdef ENABLE_SECURITY - , ssl_context(NULL) + , ssl_context(NULL) #endif // ENABLE_SECURITY - {} - explicit Session(const ServiceList &services, uint8_t protocol_version) - : service_list(services), - protocol_version(protocol_version) + { + } + explicit Session(const ServiceList& services, uint8_t protocol_version) + : service_list(services) + , protocol_version(protocol_version) #ifdef ENABLE_SECURITY , ssl_context(NULL) #endif // ENABLE_SECURITY - {} - Service *FindService(const protocol_handler::ServiceType &service_type); - const Service *FindService(const protocol_handler::ServiceType &service_type) const; + { + } + Service* FindService(const protocol_handler::ServiceType& service_type); + const Service* FindService( + const protocol_handler::ServiceType& service_type) const; }; /** @@ -128,7 +128,7 @@ class Connection { */ Connection(ConnectionHandle connection_handle, DeviceHandle connection_device_handle, - ConnectionHandler *connection_handler, + ConnectionHandler* connection_handler, uint32_t heartbeat_timeout); /** @@ -187,8 +187,7 @@ class Connection { * @param context SSL for connection * @return \c true in case of service is protected or \c false otherwise */ - int SetSSLContext(uint8_t session_id, - security_manager::SSLContext *context); + int SetSSLContext(uint8_t session_id, security_manager::SSLContext* context); /** * @brief Gets crypto context of session, use service_type to get NULL * SSLContext for not protected services or ControlService (0x0) @@ -197,23 +196,22 @@ class Connection { * @param service_type Type of service * @return \ref SSLContext of connection */ - security_manager::SSLContext *GetSSLContext( - const uint8_t session_id, - const protocol_handler::ServiceType &service_type) const; + security_manager::SSLContext* GetSSLContext( + const uint8_t session_id, + const protocol_handler::ServiceType& service_type) const; /** * @brief Set protection flag to service in session by key * to get current SSLContext of connection * @param session_id Identifier of the session * @param service_type Type of service */ - void SetProtectionFlag( - const uint8_t session_id, - const protocol_handler::ServiceType &service_type); + void SetProtectionFlag(const uint8_t session_id, + const protocol_handler::ServiceType& service_type); #endif // ENABLE_SECURITY - /** - * @brief Returns map of sessions which have been opened in - * current connection. - */ + /** + * @brief Returns map of sessions which have been opened in + * current connection. + */ const SessionMap session_map() const; /** @@ -251,7 +249,8 @@ class Connection { * @param session_id session id * @param protocol_version protocol version registered application */ - void UpdateProtocolVersionSession(uint8_t session_id, uint8_t protocol_version); + void UpdateProtocolVersionSession(uint8_t session_id, + uint8_t protocol_version); /** * @brief checks if session supports heartbeat @@ -267,14 +266,13 @@ class Connection { * @return TRUE if session exists otherwise * return FALSE */ - bool ProtocolVersion(uint8_t session_id, uint8_t& protocol_version); - + bool ProtocolVersion(uint8_t session_id, uint8_t& protocol_version); private: /** * @brief Current connection handler. */ - ConnectionHandler *connection_handler_; + ConnectionHandler* connection_handler_; /** * @brief Current connection handle. @@ -289,7 +287,7 @@ class Connection { /** * @brief session/services map */ - SessionMap session_map_; + SessionMap session_map_; mutable sync_primitives::Lock session_map_lock_; @@ -298,7 +296,7 @@ class Connection { */ HeartBeatMonitor* heartbeat_monitor_; uint32_t heartbeat_timeout_; - threads::Thread *heart_beat_monitor_thread_; + threads::Thread* heart_beat_monitor_thread_; DISALLOW_COPY_AND_ASSIGN(Connection); }; diff --git a/src/components/connection_handler/include/connection_handler/connection_handler.h b/src/components/connection_handler/include/connection_handler/connection_handler.h index 7aeb06bf54..cb22b87bbb 100644 --- a/src/components/connection_handler/include/connection_handler/connection_handler.h +++ b/src/components/connection_handler/include/connection_handler/connection_handler.h @@ -167,13 +167,14 @@ class ConnectionHandler { uint32_t* app_id, std::list<int32_t>* sessions_list, uint32_t* device_id) const = 0; - /** - * @brief GetConnectedDevicesMAC allows to obtain MAC adresses for all - * currently connected devices. - * - * @param device_macs collection of MAC adresses for connected devices. - */ - virtual void GetConnectedDevicesMAC(std::vector<std::string> &device_macs) const = 0; + /** + * @brief GetConnectedDevicesMAC allows to obtain MAC adresses for all + * currently connected devices. + * + * @param device_macs collection of MAC adresses for connected devices. + */ + virtual void GetConnectedDevicesMAC( + std::vector<std::string>& device_macs) const = 0; /** * \brief Connection handler settings getter diff --git a/src/components/connection_handler/include/connection_handler/connection_handler_impl.h b/src/components/connection_handler/include/connection_handler/connection_handler_impl.h index b6b13b57c1..d061e55491 100644 --- a/src/components/connection_handler/include/connection_handler/connection_handler_impl.h +++ b/src/components/connection_handler/include/connection_handler/connection_handler_impl.h @@ -65,36 +65,36 @@ namespace connection_handler { * stores information regarding connections * and sessions and provides it to AppManager. */ -class ConnectionHandlerImpl : public ConnectionHandler, - public transport_manager::TransportManagerListenerEmpty, - public protocol_handler::SessionObserver, - public DevicesDiscoveryStarter { +class ConnectionHandlerImpl + : public ConnectionHandler, + public transport_manager::TransportManagerListenerEmpty, + public protocol_handler::SessionObserver, + public DevicesDiscoveryStarter { public: - /** * @brief ConnectionHandlerImpl */ ConnectionHandlerImpl(const ConnectionHandlerSettings& settings, - transport_manager::TransportManager& tm); + transport_manager::TransportManager& tm); /** * \brief Destructor */ ~ConnectionHandlerImpl(); - void Stop(); + void Stop(); /** * \brief Sets observer pointer for connection_handler. * \param observer Pointer to observer object. */ void set_connection_handler_observer( - ConnectionHandlerObserver *observer) OVERRIDE; + ConnectionHandlerObserver* observer) OVERRIDE; /** * \brief Sets pointer to ProtocolHandler. * \param protocol_handler Pointer to ProtocolHandler object. **/ void set_protocol_handler( - protocol_handler::ProtocolHandler *protocol_handler); + protocol_handler::ProtocolHandler* protocol_handler); /** * \brief Connects to all services of device @@ -107,7 +107,7 @@ class ConnectionHandlerImpl : public ConnectionHandler, void StartTransportManager() OVERRIDE; void OnDeviceListUpdated( - const std::vector<transport_manager::DeviceInfo> &) OVERRIDE; + const std::vector<transport_manager::DeviceInfo>&) OVERRIDE; void OnFindNewApplicationsRequest() OVERRIDE; @@ -119,86 +119,93 @@ class ConnectionHandlerImpl : public ConnectionHandler, * * \param DeviceList New list of available devices. **/ - void OnDeviceFound(const transport_manager::DeviceInfo &device_info) OVERRIDE; - void OnDeviceAdded(const transport_manager::DeviceInfo &device_info) OVERRIDE; - void OnDeviceRemoved(const transport_manager::DeviceInfo &device_info) OVERRIDE; + void OnDeviceFound(const transport_manager::DeviceInfo& device_info) OVERRIDE; + void OnDeviceAdded(const transport_manager::DeviceInfo& device_info) OVERRIDE; + void OnDeviceRemoved( + const transport_manager::DeviceInfo& device_info) OVERRIDE; void OnScanDevicesFinished() OVERRIDE; void OnScanDevicesFailed( - const transport_manager::SearchDeviceError &error) OVERRIDE; + const transport_manager::SearchDeviceError& error) OVERRIDE; /** * \brief Notifies about established connection. * * \param connection_id ID of new connection. **/ - void OnConnectionEstablished(const transport_manager::DeviceInfo &device_info, - const transport_manager::ConnectionUID connection_id) OVERRIDE; + void OnConnectionEstablished( + const transport_manager::DeviceInfo& device_info, + const transport_manager::ConnectionUID connection_id) OVERRIDE; void OnConnectionFailed( - const transport_manager::DeviceInfo &device_info, - const transport_manager::ConnectError &error) OVERRIDE; + const transport_manager::DeviceInfo& device_info, + const transport_manager::ConnectError& error) OVERRIDE; void OnConnectionClosed( - transport_manager::ConnectionUID connection_id) OVERRIDE; + transport_manager::ConnectionUID connection_id) OVERRIDE; void OnConnectionClosedFailure( - transport_manager::ConnectionUID connection_id, - const transport_manager::DisconnectError &error) OVERRIDE; + transport_manager::ConnectionUID connection_id, + const transport_manager::DisconnectError& error) OVERRIDE; void OnUnexpectedDisconnect( - transport_manager::ConnectionUID connection_id, - const transport_manager::CommunicationError &error) OVERRIDE; + transport_manager::ConnectionUID connection_id, + const transport_manager::CommunicationError& error) OVERRIDE; void OnDeviceConnectionLost( - const connection_handler::DeviceHandle &device, - const transport_manager::DisconnectDeviceError &error) OVERRIDE; + const connection_handler::DeviceHandle& device, + const transport_manager::DisconnectDeviceError& error) OVERRIDE; /** * \brief Informs about failure during DisconnectDevice procedure of TM * \param device Information about disconnected device * \param error Information about possible reason of loosing connection */ void OnDisconnectFailed( - const connection_handler::DeviceHandle &device, - const transport_manager::DisconnectDeviceError &error) OVERRIDE; + const connection_handler::DeviceHandle& device, + const transport_manager::DisconnectDeviceError& error) OVERRIDE; /** * \brief Callback function used by ProtocolHandler * when Mobile Application initiates start of new session. - * \param connection_handle Connection identifier within which session has to be started. + * \param connection_handle Connection identifier within which session has to + * be started. * \param session_id Identifier of the session to be started * \param service_type Type of service * \param is_protected would be service protected * \param hash_id pointer for session hash identifier * \return uint32_t Id (number) of new session if successful, otherwise 0. */ - virtual uint32_t OnSessionStartedCallback(const transport_manager::ConnectionUID connection_handle, - const uint8_t session_id, - const protocol_handler::ServiceType &service_type, - const bool is_protected, uint32_t* hash_id); + virtual uint32_t OnSessionStartedCallback( + const transport_manager::ConnectionUID connection_handle, + const uint8_t session_id, + const protocol_handler::ServiceType& service_type, + const bool is_protected, + uint32_t* hash_id); /** * \brief Callback function used by ProtocolHandler * when Mobile Application initiates session ending. * \param connection_handle Connection identifier within which session exists * \param sessionId Identifier of the session to be ended - * \param hashCode Hash used only in second version of SmartDeviceLink protocol. + * \param hashCode Hash used only in second version of SmartDeviceLink + * protocol. * If not equal to hash assigned to session on start then operation fails. * \return uint32_t 0 if operation fails, session key otherwise */ uint32_t OnSessionEndedCallback( - const transport_manager::ConnectionUID connection_handle, - const uint8_t session_id, const uint32_t &hashCode, - const protocol_handler::ServiceType &service_type) OVERRIDE; + const transport_manager::ConnectionUID connection_handle, + const uint8_t session_id, + const uint32_t& hashCode, + const protocol_handler::ServiceType& service_type) OVERRIDE; /** * \brief Callback function used by ProtocolHandler * when Mobile Application start message flood * \param connection_key used by other components as application identifier */ - void OnApplicationFloodCallBack(const uint32_t &connection_key) OVERRIDE; + void OnApplicationFloodCallBack(const uint32_t& connection_key) OVERRIDE; /** * \brief Callback function used by ProtocolHandler * when Mobile Application sends malformed message * \param connection_key used by other components as application identifier */ - void OnMalformedMessageCallback(const uint32_t &connection_key) OVERRIDE; + void OnMalformedMessageCallback(const uint32_t& connection_key) OVERRIDE; /** * \brief Creates unique identifier of session (can be used as hash) @@ -208,19 +215,20 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param sessionId Identifier of the session * \return int32_t Unique key for session */ - uint32_t KeyFromPair( - transport_manager::ConnectionUID connection_handle, - uint8_t session_id) const OVERRIDE; + uint32_t KeyFromPair(transport_manager::ConnectionUID connection_handle, + uint8_t session_id) const OVERRIDE; /** - * \brief Returns connection identifier and session number from given session key + * \brief Returns connection identifier and session number from given session + * key * \param key Unique key used by other components as session identifier - * \param connection_handle Returned: Connection identifier within which session exists + * \param connection_handle Returned: Connection identifier within which + * session exists * \param sessionId Returned: Number of session */ void PairFromKey(uint32_t key, - transport_manager::ConnectionUID *connection_handle, - uint8_t *session_id) const OVERRIDE; + transport_manager::ConnectionUID* connection_handle, + uint8_t* session_id) const OVERRIDE; /** * \brief information about device @@ -232,10 +240,10 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \return int32_t -1 in case of error or 0 in case of success */ int32_t GetDataOnDeviceID(connection_handler::DeviceHandle device_handle, - std::string *device_name = NULL, - std::list<uint32_t> *applications_list = NULL, - std::string *mac_address = NULL, - std::string* connection_type = NULL) const OVERRIDE; + std::string* device_name = NULL, + std::list<uint32_t>* applications_list = NULL, + std::string* mac_address = NULL, + std::string* connection_type = NULL) const OVERRIDE; /** * @brief GetConnectedDevicesMAC allows to obtain MAC adresses for all @@ -243,7 +251,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * * @param device_macs collection of MAC adresses for connected devices. */ - void GetConnectedDevicesMAC(std::vector<std::string> &device_macs) const OVERRIDE; + void GetConnectedDevicesMAC( + std::vector<std::string>& device_macs) const OVERRIDE; #ifdef ENABLE_SECURITY /** @@ -252,9 +261,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param context SSLContext to be set * \return \c SecurityQuery::ProtectSessionResult value */ - int SetSSLContext( - const uint32_t &key, - security_manager::SSLContext *context) OVERRIDE; + int SetSSLContext(const uint32_t& key, + security_manager::SSLContext* context) OVERRIDE; /** * \brief Gets crypto context of connection, use service_type to get NULL @@ -264,20 +272,20 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param service_type Type of service * \return \ref SSLContext of connection */ - security_manager::SSLContext *GetSSLContext( - const uint32_t &key, - const protocol_handler::ServiceType &service_type) OVERRIDE; + security_manager::SSLContext* GetSSLContext( + const uint32_t& key, + const protocol_handler::ServiceType& service_type) OVERRIDE; /** * \brief Set protection flag to service in session by key * \param key Unique key used by other components as session identifier * \param service_type Type of service */ void SetProtectionFlag( - const uint32_t &key, - const protocol_handler::ServiceType &service_type) OVERRIDE; + const uint32_t& key, + const protocol_handler::ServiceType& service_type) OVERRIDE; - security_manager::SSLContext::HandshakeContext - GetHandshakeContext(uint32_t key) const OVERRIDE; + security_manager::SSLContext::HandshakeContext GetHandshakeContext( + uint32_t key) const OVERRIDE; #endif // ENABLE_SECURITY /** @@ -286,8 +294,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param device_handle * \return true on sucess otherwise false. */ - bool GetDeviceID(const std::string &mac_address, - DeviceHandle *device_handle) OVERRIDE; + bool GetDeviceID(const std::string& mac_address, + DeviceHandle* device_handle) OVERRIDE; /** * \brief Method which should start devices discovering @@ -318,8 +326,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param session_id Identifier of the session to be ended */ void CloseSession(ConnectionHandle connection_handle, - uint8_t session_id, - CloseSessionReason close_reason) OVERRIDE; + uint8_t session_id, + CloseSessionReason close_reason) OVERRIDE; /** * \brief Function used by OnApplicationFloodCallback and @@ -328,8 +336,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \param connection_handle Connection identifier within which session exists * \param close_reason The reason of connection closing */ - virtual void CloseConnectionSessions( - ConnectionHandle connection_handle, CloseSessionReason close_reason); + virtual void CloseConnectionSessions(ConnectionHandle connection_handle, + CloseSessionReason close_reason); /** * \brief Return count of session for specified connection @@ -341,7 +349,7 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \brief Send heartbeat message to mobile app */ void SendHeartBeat(ConnectionHandle connection_handle, - uint8_t session_id) OVERRIDE; + uint8_t session_id) OVERRIDE; /** * @brief SendEndService allows to end up specific service. @@ -350,8 +358,7 @@ class ConnectionHandlerImpl : public ConnectionHandler, * * @param service_type the service that should be closed. */ - void SendEndService(uint32_t key, - uint8_t service_type) OVERRIDE; + void SendEndService(uint32_t key, uint8_t service_type) OVERRIDE; /** * \brief Start heartbeat for specified session @@ -368,7 +375,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, void SetHeartBeatTimeout(uint32_t connection_key, uint32_t timeout) OVERRIDE; /** - * \brief Keep connection associated with the key from being closed by heartbeat monitor + * \brief Keep connection associated with the key from being closed by + * heartbeat monitor */ void KeepConnectionAlive(uint32_t connection_key, uint8_t session_id); @@ -380,17 +388,19 @@ class ConnectionHandlerImpl : public ConnectionHandler, * \registered application. */ void BindProtocolVersionWithSession(uint32_t connection_key, - uint8_t protocol_version) OVERRIDE; + uint8_t protocol_version) OVERRIDE; /** - * \brief returns TRUE if session supports sending HEART BEAT ACK to mobile side - * \param connection_handle Connection identifier whithin which session exists + * \brief returns TRUE if session supports sending HEART BEAT ACK to mobile + * side + * \param connection_handle Connection identifier whithin which session + * exists * \param sessionId Identifier of the session - * \return TRUE if session has protocol version which supports heartbeat otherwise returns FALSE + * \return TRUE if session has protocol version which supports heartbeat + * otherwise returns FALSE */ - bool IsHeartBeatSupported( - transport_manager::ConnectionUID connection_handle, - uint8_t session_id) const OVERRIDE; + bool IsHeartBeatSupported(transport_manager::ConnectionUID connection_handle, + uint8_t session_id) const OVERRIDE; /** * @brief returns protocol version which application supports @@ -400,7 +410,8 @@ class ConnectionHandlerImpl : public ConnectionHandler, * @return TRUE if session and connection exist otherwise returns FALSE */ bool ProtocolVersionUsed(uint32_t connection_id, - uint8_t session_id, uint8_t& protocol_version) const OVERRIDE; + uint8_t session_id, + uint8_t& protocol_version) const OVERRIDE; int32_t GetDataOnSessionKey(uint32_t key, uint32_t* app_id, @@ -412,7 +423,7 @@ class ConnectionHandlerImpl : public ConnectionHandler, const protocol_handler::SessionObserver& get_session_observer(); DevicesDiscoveryStarter& get_device_discovery_starter(); - private: + private: /** * \brief Disconnect application. * @@ -421,21 +432,20 @@ class ConnectionHandlerImpl : public ConnectionHandler, **/ void RemoveConnection(const ConnectionHandle connection_handle); - void OnConnectionEnded( - const transport_manager::ConnectionUID connection_id); + void OnConnectionEnded(const transport_manager::ConnectionUID connection_id); const ConnectionHandlerSettings& settings_; /** * \brief Pointer to observer */ - ConnectionHandlerObserver *connection_handler_observer_; + ConnectionHandlerObserver* connection_handler_observer_; /** * \brief Pointer to TransportManager */ transport_manager::TransportManager& transport_manager_; - protocol_handler::ProtocolHandler *protocol_handler_; + protocol_handler::ProtocolHandler* protocol_handler_; /** * \brief List of devices @@ -462,10 +472,10 @@ class ConnectionHandlerImpl : public ConnectionHandler, // Methods for test usage public: const DeviceMap& getDeviceList(); - ConnectionList &getConnectionList(); + ConnectionList& getConnectionList(); void addDeviceConnection( - const transport_manager::DeviceInfo &device_info, - const transport_manager::ConnectionUID connection_id); + const transport_manager::DeviceInfo& device_info, + const transport_manager::ConnectionUID connection_id); #endif private: DISALLOW_COPY_AND_ASSIGN(ConnectionHandlerImpl); diff --git a/src/components/connection_handler/include/connection_handler/connection_handler_observer.h b/src/components/connection_handler/include/connection_handler/connection_handler_observer.h index be7e600556..54b8d3a92e 100644 --- a/src/components/connection_handler/include/connection_handler/connection_handler_observer.h +++ b/src/components/connection_handler/include/connection_handler/connection_handler_observer.h @@ -40,7 +40,7 @@ #ifdef ENABLE_SECURITY #include "security_manager/ssl_context.h" -#endif // ENABLE_SECURITY +#endif // ENABLE_SECURITY /** * \namespace connection_handler @@ -53,7 +53,7 @@ namespace connection_handler { * \brief ConnectionHandlerObserver class */ class ConnectionHandlerObserver { - public: + public: /** * \brief Available devices list updated. * @@ -63,7 +63,7 @@ class ConnectionHandlerObserver { * \param DeviceList New list of available devices. **/ virtual void OnDeviceListUpdated( - const connection_handler::DeviceMap &device_list) = 0; + const connection_handler::DeviceMap& device_list) = 0; /** * @brief Reaction to "Find new applications" request @@ -78,19 +78,20 @@ class ConnectionHandlerObserver { * \param DeviceHandle Handle of removed device. **/ virtual void RemoveDevice( - const connection_handler::DeviceHandle &device_handle) = 0; + const connection_handler::DeviceHandle& device_handle) = 0; /** * \brief Callback function used by connection_handler * when Mobile Application initiates start of new service. - * \param deviceHandle Device identifier within which session has to be started. + * \param deviceHandle Device identifier within which session has to be + * started. * \param sessionKey Key of started session. * \param type Established service type */ virtual bool OnServiceStartedCallback( - const connection_handler::DeviceHandle &device_handle, - const int32_t &session_key, - const protocol_handler::ServiceType &type) = 0; + const connection_handler::DeviceHandle& device_handle, + const int32_t& session_key, + const protocol_handler::ServiceType& type) = 0; /** * \brief Callback function used by connection_handler @@ -105,15 +106,14 @@ class ConnectionHandlerObserver { const connection_handler::CloseSessionReason& close_reason) = 0; #ifdef ENABLE_SECURITY - virtual security_manager::SSLContext::HandshakeContext - GetHandshakeContext(uint32_t key) const = 0; -#endif // ENABLE_SECURITY + virtual security_manager::SSLContext::HandshakeContext GetHandshakeContext( + uint32_t key) const = 0; +#endif // ENABLE_SECURITY protected: /** * \brief Destructor */ - virtual ~ConnectionHandlerObserver() { - } + virtual ~ConnectionHandlerObserver() {} }; } // namespace connection_handler diff --git a/src/components/connection_handler/include/connection_handler/device.h b/src/components/connection_handler/include/connection_handler/device.h index c37c4cc62c..cee0bf8875 100644 --- a/src/components/connection_handler/include/connection_handler/device.h +++ b/src/components/connection_handler/include/connection_handler/device.h @@ -58,8 +58,10 @@ class Device { /** * \brief Class constructor */ - Device(DeviceHandle device_handle, const std::string &user_friendly_name, - const std::string &mac_address = "", const std::string& connection_type = ""); + Device(DeviceHandle device_handle, + const std::string& user_friendly_name, + const std::string& mac_address = "", + const std::string& connection_type = ""); /** * \brief Returns device handle diff --git a/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h b/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h index bd5885a273..0bb3da0772 100644 --- a/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h +++ b/src/components/connection_handler/include/connection_handler/devices_discovery_starter.h @@ -49,7 +49,7 @@ class DevicesDiscoveryStarter { /** * \brief Method which should start devices discoveryng */ - virtual void StartDevicesDiscovery()=0; + virtual void StartDevicesDiscovery() = 0; /** * \brief Connects to all services of device @@ -64,8 +64,7 @@ class DevicesDiscoveryStarter { /** * \brief Destructor */ - virtual ~DevicesDiscoveryStarter() { - } + virtual ~DevicesDiscoveryStarter() {} }; } // namespace connection_handler diff --git a/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h b/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h index c3e02a4715..f6ef9a9829 100644 --- a/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h +++ b/src/components/connection_handler/include/connection_handler/heartbeat_monitor.h @@ -48,10 +48,9 @@ class Connection; /* * Starts hearbeat timer for session and when it elapses closes it */ -class HeartBeatMonitor: public threads::ThreadDelegate { +class HeartBeatMonitor : public threads::ThreadDelegate { public: - HeartBeatMonitor(uint32_t heartbeat_timeout_mseconds, - Connection *connection); + HeartBeatMonitor(uint32_t heartbeat_timeout_mseconds, Connection* connection); /** * Thread procedure. @@ -82,30 +81,29 @@ class HeartBeatMonitor: public threads::ThreadDelegate { void set_heartbeat_timeout_milliseconds(uint32_t timeout, uint8_t session_id); private: - // \brief Heartbeat timeout uint32_t default_heartbeat_timeout_; // \brief Connection that must be closed when timeout elapsed - Connection *connection_; + Connection* connection_; - //Default HeartBeat cycle timeout (in miliseconds) + // Default HeartBeat cycle timeout (in miliseconds) static const int32_t kDefaultCycleTimeout = 100; class SessionState { - public: - explicit SessionState(uint32_t heartbeat_timeout_mseconds = 0); - void UpdateTimeout(uint32_t heartbeat_timeout_mseconds); - void PrepareToClose(); - bool IsReadyToClose() const; - void KeepAlive(); - bool HasTimeoutElapsed(); - private: - void RefreshExpiration(); - - uint32_t heartbeat_timeout_mseconds_; - TimevalStruct heartbeat_expiration_; - bool is_heartbeat_sent_; - + public: + explicit SessionState(uint32_t heartbeat_timeout_mseconds = 0); + void UpdateTimeout(uint32_t heartbeat_timeout_mseconds); + void PrepareToClose(); + bool IsReadyToClose() const; + void KeepAlive(); + bool HasTimeoutElapsed(); + + private: + void RefreshExpiration(); + + uint32_t heartbeat_timeout_mseconds_; + TimevalStruct heartbeat_expiration_; + bool is_heartbeat_sent_; }; // \brief monitored sessions collection @@ -113,7 +111,7 @@ class HeartBeatMonitor: public threads::ThreadDelegate { typedef std::map<uint8_t, SessionState> SessionMap; SessionMap sessions_; - sync_primitives::Lock sessions_list_lock_; // recurcive + sync_primitives::Lock sessions_list_lock_; // recurcive sync_primitives::Lock main_thread_lock_; mutable sync_primitives::Lock heartbeat_timeout_seconds_lock_; sync_primitives::ConditionalVariable heartbeat_monitor_; @@ -125,6 +123,6 @@ class HeartBeatMonitor: public threads::ThreadDelegate { DISALLOW_COPY_AND_ASSIGN(HeartBeatMonitor); }; -} // namespace connection_handler +} // namespace connection_handler #endif // SRC_COMPONENTS_CONNECTION_HANDLER_INCLUDE_HEARTBEAT_MONITOR_H_ diff --git a/src/components/connection_handler/src/connection.cc b/src/components/connection_handler/src/connection.cc index 1953792a4f..7bb54d4493 100644 --- a/src/components/connection_handler/src/connection.cc +++ b/src/components/connection_handler/src/connection.cc @@ -45,7 +45,6 @@ #include "security_manager/security_manager.h" #endif // ENABLE_SECURITY - /** * \namespace connection_handler * \brief SmartDeviceLink ConnectionHandler namespace. @@ -54,19 +53,21 @@ namespace connection_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "ConnectionHandler") -Service *Session::FindService(const protocol_handler::ServiceType &service_type) { +Service* Session::FindService( + const protocol_handler::ServiceType& service_type) { ServiceList::iterator service_it = std::find(service_list.begin(), service_list.end(), service_type); - if(service_it != service_list.end()){ + if (service_it != service_list.end()) { return &(*service_it); } return NULL; } -const Service *Session::FindService(const protocol_handler::ServiceType &service_type) const { +const Service* Session::FindService( + const protocol_handler::ServiceType& service_type) const { ServiceList::const_iterator service_it = std::find(service_list.begin(), service_list.end(), service_type); - if(service_it != service_list.end()){ + if (service_it != service_list.end()) { return &(*service_it); } return NULL; @@ -74,7 +75,7 @@ const Service *Session::FindService(const protocol_handler::ServiceType &service Connection::Connection(ConnectionHandle connection_handle, DeviceHandle connection_device_handle, - ConnectionHandler *connection_handler, + ConnectionHandler* connection_handler, uint32_t heartbeat_timeout) : connection_handler_(connection_handler) , connection_handle_(connection_handle) @@ -85,8 +86,8 @@ Connection::Connection(ConnectionHandle connection_handle, DCHECK(connection_handler_); heartbeat_monitor_ = new HeartBeatMonitor(heartbeat_timeout_, this); - heart_beat_monitor_thread_ = threads::CreateThread("HeartBeatMonitor", - heartbeat_monitor_); + heart_beat_monitor_thread_ = + threads::CreateThread("HeartBeatMonitor", heartbeat_monitor_); heart_beat_monitor_thread_->start(); } @@ -103,7 +104,7 @@ Connection::~Connection() { // Returns 0 if that key not found namespace { template <class T> -uint32_t findGap(const std::map<unsigned char, T> &map) { +uint32_t findGap(const std::map<unsigned char, T>& map) { for (uint32_t i = 1; i <= UCHAR_MAX; ++i) { if (map.find(i) == map.end()) { return i; @@ -143,7 +144,7 @@ bool Connection::AddNewService(uint8_t session_id, const bool request_protection) { // Ignore wrong services if (protocol_handler::kControl == service_type || - protocol_handler::kInvalidServiceType == service_type ) { + protocol_handler::kInvalidServiceType == service_type) { LOG4CXX_WARN(logger_, "Wrong service " << static_cast<int>(service_type)); return false; } @@ -154,19 +155,23 @@ bool Connection::AddNewService(uint8_t session_id, LOG4CXX_WARN(logger_, "Session not found in this connection!"); return false; } - Session &session = session_it->second; - Service *service = session.FindService(service_type); + Session& session = session_it->second; + Service* service = session.FindService(service_type); // if service already exists if (service) { #ifdef ENABLE_SECURITY - if(!request_protection) { - LOG4CXX_WARN(logger_, "Session " << static_cast<int>(session_id) << - " already has unprotected service "<< static_cast<int>(service_type)); + if (!request_protection) { + LOG4CXX_WARN(logger_, + "Session " << static_cast<int>(session_id) + << " already has unprotected service " + << static_cast<int>(service_type)); return false; } if (service->is_protected_) { - LOG4CXX_WARN(logger_, "Session " << static_cast<int>(session_id) << - " already has protected service "<< static_cast<int>(service_type)); + LOG4CXX_WARN(logger_, + "Session " << static_cast<int>(session_id) + << " already has protected service " + << static_cast<int>(service_type)); return false; } // For unproteced service could be start protection @@ -187,18 +192,18 @@ inline bool is_incorrect_for_remove_service( // Control type is internal part of session protocol_handler::kControl == service_type || // RPC and bulk service is necessary part of session - protocol_handler::kRpc == service_type || + protocol_handler::kRpc == service_type || protocol_handler::kBulk == service_type || // Invalid service is not part of session protocol_handler::kInvalidServiceType == service_type; } -bool Connection::RemoveService( - uint8_t session_id, protocol_handler::ServiceType service_type) { +bool Connection::RemoveService(uint8_t session_id, + protocol_handler::ServiceType service_type) { // Ignore wrong and required for Session services if (is_incorrect_for_remove_service(service_type)) { - LOG4CXX_WARN(logger_, "Could not remove service " - << static_cast<int>(service_type)); + LOG4CXX_WARN(logger_, + "Could not remove service " << static_cast<int>(service_type)); return false; } sync_primitives::AutoLock lock(session_map_lock_); @@ -209,12 +214,13 @@ bool Connection::RemoveService( return false; } - ServiceList &service_list = session_it->second.service_list; + ServiceList& service_list = session_it->second.service_list; ServiceList::iterator service_it = find(service_list.begin(), service_list.end(), service_type); if (service_list.end() == service_it) { - LOG4CXX_WARN(logger_, "Session " << session_id << " didn't established" - " service " << service_type); + LOG4CXX_WARN(logger_, + "Session " << session_id << " didn't established" + " service " << service_type); return false; } service_list.erase(service_it); @@ -223,20 +229,21 @@ bool Connection::RemoveService( #ifdef ENABLE_SECURITY int Connection::SetSSLContext(uint8_t session_id, - security_manager::SSLContext *context) { + security_manager::SSLContext* context) { sync_primitives::AutoLock lock(session_map_lock_); SessionMap::iterator session_it = session_map_.find(session_id); if (session_it == session_map_.end()) { LOG4CXX_WARN(logger_, "Session not found in this connection!"); return security_manager::SecurityManager::ERROR_INTERNAL; } - Session &session = session_it->second; + Session& session = session_it->second; session.ssl_context = context; return security_manager::SecurityManager::ERROR_SUCCESS; } -security_manager::SSLContext *Connection::GetSSLContext( - const uint8_t session_id, const protocol_handler::ServiceType &service_type) const { +security_manager::SSLContext* Connection::GetSSLContext( + const uint8_t session_id, + const protocol_handler::ServiceType& service_type) const { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(session_map_lock_); SessionMap::const_iterator session_it = session_map_.find(session_id); @@ -244,11 +251,11 @@ security_manager::SSLContext *Connection::GetSSLContext( LOG4CXX_WARN(logger_, "Session not found in this connection!"); return NULL; } - const Session &session = session_it->second; + const Session& session = session_it->second; // for control services return current SSLContext value if (protocol_handler::kControl == service_type) return session.ssl_context; - const Service *service = session.FindService(service_type); + const Service* service = session.FindService(service_type); if (!service) { LOG4CXX_WARN(logger_, "Service not found in this session!"); return NULL; @@ -260,7 +267,8 @@ security_manager::SSLContext *Connection::GetSSLContext( } void Connection::SetProtectionFlag( - const uint8_t session_id, const protocol_handler::ServiceType &service_type) { + const uint8_t session_id, + const protocol_handler::ServiceType& service_type) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(session_map_lock_); SessionMap::iterator session_it = session_map_.find(session_id); @@ -268,8 +276,8 @@ void Connection::SetProtectionFlag( LOG4CXX_WARN(logger_, "Session not found in this connection!"); return; } - Session &session = session_it->second; - Service *service = session.FindService(service_type); + Session& session = session_it->second; + Service* service = session.FindService(service_type); if (!service) { LOG4CXX_WARN(logger_, "Service not found in this session!"); return; @@ -277,11 +285,11 @@ void Connection::SetProtectionFlag( service->is_protected_ = true; // Rpc and bulk shall be protected as one service if (service->service_type == protocol_handler::kRpc) { - Service *service_bulk = session.FindService(protocol_handler::kBulk); + Service* service_bulk = session.FindService(protocol_handler::kBulk); DCHECK(service_bulk); service_bulk->is_protected_ = true; } else if (service->service_type == protocol_handler::kBulk) { - Service *service_rpc = session.FindService(protocol_handler::kRpc); + Service* service_rpc = session.FindService(protocol_handler::kRpc); DCHECK(service_rpc); service_rpc->is_protected_ = true; } @@ -313,25 +321,24 @@ void Connection::CloseSession(uint8_t session_id) { size = session_map_.size(); } - connection_handler_->CloseSession(connection_handle_, - session_id, - connection_handler::kCommon); + connection_handler_->CloseSession( + connection_handle_, session_id, connection_handler::kCommon); - //Close connection if it is last session + // Close connection if it is last session if (1 == size) { connection_handler_->CloseConnection(connection_handle_); } } -void Connection::UpdateProtocolVersionSession( - uint8_t session_id, uint8_t protocol_version) { +void Connection::UpdateProtocolVersionSession(uint8_t session_id, + uint8_t protocol_version) { sync_primitives::AutoLock lock(session_map_lock_); SessionMap::iterator session_it = session_map_.find(session_id); if (session_map_.end() == session_it) { LOG4CXX_WARN(logger_, "Session not found in this connection!"); return; } - Session &session = session_it->second; + Session& session = session_it->second; session.protocol_version = protocol_version; } @@ -343,19 +350,21 @@ bool Connection::SupportHeartBeat(uint8_t session_id) { LOG4CXX_WARN(logger_, "Session not found in this connection!"); return false; } - Session &session = session_it->second; - return ((::protocol_handler::PROTOCOL_VERSION_3 == session.protocol_version || - ::protocol_handler::PROTOCOL_VERSION_4 == session.protocol_version) && - (0 != heartbeat_timeout_)); + Session& session = session_it->second; + return ( + (::protocol_handler::PROTOCOL_VERSION_3 == session.protocol_version || + ::protocol_handler::PROTOCOL_VERSION_4 == session.protocol_version) && + (0 != heartbeat_timeout_)); } -bool Connection::ProtocolVersion(uint8_t session_id, uint8_t& protocol_version) { +bool Connection::ProtocolVersion(uint8_t session_id, + uint8_t& protocol_version) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(session_map_lock_); SessionMap::iterator session_it = session_map_.find(session_id); if (session_map_.end() == session_it) { LOG4CXX_WARN(logger_, "Session not found in this connection!"); - return false; + return false; } protocol_version = (session_it->second).protocol_version; return true; diff --git a/src/components/connection_handler/src/connection_handler_impl.cc b/src/components/connection_handler/src/connection_handler_impl.cc index e962da7b19..7e83c81b0b 100644 --- a/src/components/connection_handler/src/connection_handler_impl.cc +++ b/src/components/connection_handler/src/connection_handler_impl.cc @@ -69,8 +69,7 @@ ConnectionHandlerImpl::ConnectionHandlerImpl( , protocol_handler_(NULL) , connection_list_lock_() , connection_handler_observer_lock_() - , connection_list_deleter_(&connection_list_) { -} + , connection_list_deleter_(&connection_list_) {} ConnectionHandlerImpl::~ConnectionHandlerImpl() { LOG4CXX_AUTO_TRACE(logger_); @@ -86,9 +85,10 @@ void ConnectionHandlerImpl::Stop() { } void ConnectionHandlerImpl::set_connection_handler_observer( - ConnectionHandlerObserver *observer) { - LOG4CXX_DEBUG(logger_, "ConnectionHandlerImpl::set_connection_handler_observer() " - << observer); + ConnectionHandlerObserver* observer) { + LOG4CXX_DEBUG(logger_, + "ConnectionHandlerImpl::set_connection_handler_observer() " + << observer); sync_primitives::AutoWriteLock write_lock(connection_handler_observer_lock_); if (!observer) { LOG4CXX_WARN(logger_, "Set Null pointer to observer."); @@ -97,9 +97,10 @@ void ConnectionHandlerImpl::set_connection_handler_observer( } void ConnectionHandlerImpl::set_protocol_handler( - protocol_handler::ProtocolHandler *protocol_handler) { - LOG4CXX_DEBUG(logger_, "ConnectionHandlerImpl::set_protocol_handler()" - << protocol_handler); + protocol_handler::ProtocolHandler* protocol_handler) { + LOG4CXX_DEBUG(logger_, + "ConnectionHandlerImpl::set_protocol_handler()" + << protocol_handler); if (!protocol_handler) { LOG4CXX_WARN(logger_, "Set Null pointer to protocol handler."); } @@ -128,13 +129,14 @@ void ConnectionHandlerImpl::OnDeviceFound( } void ConnectionHandlerImpl::OnDeviceAdded( - const transport_manager::DeviceInfo &device_info) { + const transport_manager::DeviceInfo& device_info) { LOG4CXX_AUTO_TRACE(logger_); device_list_.insert( - DeviceMap::value_type( - device_info.device_handle(), - Device(device_info.device_handle(), device_info.name(), - device_info.mac_address(), device_info.connection_type()))); + DeviceMap::value_type(device_info.device_handle(), + Device(device_info.device_handle(), + device_info.name(), + device_info.mac_address(), + device_info.connection_type()))); sync_primitives::AutoReadLock read_lock(connection_handler_observer_lock_); if (connection_handler_observer_) { connection_handler_observer_->OnDeviceListUpdated(device_list_); @@ -142,7 +144,7 @@ void ConnectionHandlerImpl::OnDeviceAdded( } void ConnectionHandlerImpl::OnDeviceRemoved( - const transport_manager::DeviceInfo &device_info) { + const transport_manager::DeviceInfo& device_info) { LOG4CXX_AUTO_TRACE(logger_); // Device has been removed. Perform all needed actions. // 1. Delete all the connections and sessions of this device @@ -153,7 +155,8 @@ void ConnectionHandlerImpl::OnDeviceRemoved( { sync_primitives::AutoReadLock lock(connection_list_lock_); for (ConnectionList::iterator it = connection_list_.begin(); - it != connection_list_.end(); ++it) { + it != connection_list_.end(); + ++it) { if (device_info.device_handle() == (*it).second->connection_device_handle()) { connections_to_remove.push_back((*it).first); @@ -178,12 +181,12 @@ void ConnectionHandlerImpl::OnScanDevicesFinished() { } void ConnectionHandlerImpl::OnScanDevicesFailed( - const transport_manager::SearchDeviceError &error) { + const transport_manager::SearchDeviceError& error) { LOG4CXX_WARN(logger_, "Scan devices failed. " << error.text()); } void ConnectionHandlerImpl::OnConnectionEstablished( - const transport_manager::DeviceInfo &device_info, + const transport_manager::DeviceInfo& device_info, const transport_manager::ConnectionUID connection_id) { LOG4CXX_AUTO_TRACE(logger_); @@ -192,18 +195,20 @@ void ConnectionHandlerImpl::OnConnectionEstablished( LOG4CXX_ERROR(logger_, "Unknown device!"); return; } - LOG4CXX_DEBUG(logger_, "Add Connection #" << connection_id << " to the list."); + LOG4CXX_DEBUG(logger_, + "Add Connection #" << connection_id << " to the list."); sync_primitives::AutoWriteLock lock(connection_list_lock_); - connection_list_.insert( - ConnectionList::value_type( - connection_id, - new Connection(connection_id, device_info.device_handle(), this, - get_settings().heart_beat_timeout()))); + connection_list_.insert(ConnectionList::value_type( + connection_id, + new Connection(connection_id, + device_info.device_handle(), + this, + get_settings().heart_beat_timeout()))); } void ConnectionHandlerImpl::OnConnectionFailed( - const transport_manager::DeviceInfo &device_info, - const transport_manager::ConnectError &error) { + const transport_manager::DeviceInfo& device_info, + const transport_manager::ConnectError& error) { // TODO(PV): implement LOG4CXX_ERROR(logger_, "Failed connecting."); } @@ -217,29 +222,29 @@ void ConnectionHandlerImpl::OnConnectionClosed( void ConnectionHandlerImpl::OnConnectionClosedFailure( transport_manager::ConnectionUID connection_id, - const transport_manager::DisconnectError &error) { + const transport_manager::DisconnectError& error) { // TODO(PV): implement LOG4CXX_ERROR(logger_, "ConnectionHandlerImpl::OnConnectionClosedFailure"); } void ConnectionHandlerImpl::OnUnexpectedDisconnect( transport_manager::ConnectionUID connection_id, - const transport_manager::CommunicationError &error) { + const transport_manager::CommunicationError& error) { LOG4CXX_AUTO_TRACE(logger_); OnConnectionEnded(connection_id); } void ConnectionHandlerImpl::OnDeviceConnectionLost( - const transport_manager::DeviceHandle &device, - const transport_manager::DisconnectDeviceError &error) { + const transport_manager::DeviceHandle& device, + const transport_manager::DisconnectDeviceError& error) { // TODO(PV): implement LOG4CXX_ERROR(logger_, "Lost connection with device " << device); } void ConnectionHandlerImpl::OnDisconnectFailed( - const transport_manager::DeviceHandle &device, - const transport_manager::DisconnectDeviceError &error) { + const transport_manager::DeviceHandle& device, + const transport_manager::DisconnectDeviceError& error) { // TODO(PV): implement LOG4CXX_ERROR(logger_, "Trying to Disconnect device failed."); } @@ -259,8 +264,9 @@ bool AllowProtection(const ConnectionHandlerSettings& settings, is_protected ? settings.force_unprotected_service() : settings.force_protected_service(); - if (std::find(force_unprotected_list.begin(), force_unprotected_list.end(), service_type) != - force_unprotected_list.end()) { + if (std::find(force_unprotected_list.begin(), + force_unprotected_list.end(), + service_type) != force_unprotected_list.end()) { LOG4CXX_ERROR(logger_, "Service " << static_cast<int>(service_type) << " shall be protected"); @@ -274,8 +280,10 @@ bool AllowProtection(const ConnectionHandlerSettings& settings, uint32_t ConnectionHandlerImpl::OnSessionStartedCallback( const transport_manager::ConnectionUID connection_handle, - const uint8_t session_id, const protocol_handler::ServiceType &service_type, - const bool is_protected, uint32_t* hash_id) { + const uint8_t session_id, + const protocol_handler::ServiceType& service_type, + const bool is_protected, + uint32_t* hash_id) { LOG4CXX_AUTO_TRACE(logger_); if (hash_id) { @@ -294,7 +302,7 @@ uint32_t ConnectionHandlerImpl::OnSessionStartedCallback( } uint32_t new_session_id = 0; - Connection *connection = it->second; + Connection* connection = it->second; if ((0 == session_id) && (protocol_handler::kRpc == service_type)) { new_session_id = connection->AddNewSession(); if (0 == new_session_id) { @@ -306,12 +314,13 @@ uint32_t ConnectionHandlerImpl::OnSessionStartedCallback( } } else { // Could be create new service or protected exists one if (!connection->AddNewService(session_id, service_type, is_protected)) { - LOG4CXX_ERROR(logger_, "Couldn't establish " + LOG4CXX_ERROR(logger_, + "Couldn't establish " #ifdef ENABLE_SECURITY - << (is_protected ? "protected" : "non-protected") + << (is_protected ? "protected" : "non-protected") #endif // ENABLE_SECURITY - << " service " << static_cast<int>(service_type) - << " for session " << static_cast<int>(session_id)); + << " service " << static_cast<int>(service_type) + << " for session " << static_cast<int>(session_id)); return 0; } new_session_id = session_id; @@ -323,9 +332,10 @@ uint32_t ConnectionHandlerImpl::OnSessionStartedCallback( if (connection_handler_observer_) { const uint32_t session_key = KeyFromPair(connection_handle, new_session_id); const bool success = connection_handler_observer_->OnServiceStartedCallback( - connection->connection_device_handle(), session_key, service_type); + connection->connection_device_handle(), session_key, service_type); if (!success) { - LOG4CXX_WARN(logger_, "Service starting forbidden by connection_handler_observer"); + LOG4CXX_WARN(logger_, + "Service starting forbidden by connection_handler_observer"); if (protocol_handler::kRpc == service_type) { connection->RemoveSession(new_session_id); } else { @@ -338,7 +348,7 @@ uint32_t ConnectionHandlerImpl::OnSessionStartedCallback( } void ConnectionHandlerImpl::OnApplicationFloodCallBack( - const uint32_t &connection_key) { + const uint32_t& connection_key) { LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_handle = 0; @@ -355,7 +365,7 @@ void ConnectionHandlerImpl::OnApplicationFloodCallBack( } void ConnectionHandlerImpl::OnMalformedMessageCallback( - const uint32_t &connection_key) { + const uint32_t& connection_key) { LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_handle = 0; @@ -370,8 +380,8 @@ void ConnectionHandlerImpl::OnMalformedMessageCallback( uint32_t ConnectionHandlerImpl::OnSessionEndedCallback( const transport_manager::ConnectionUID connection_handle, const uint8_t session_id, - const uint32_t &hashCode, - const protocol_handler::ServiceType &service_type) { + const uint32_t& hashCode, + const protocol_handler::ServiceType& service_type) { LOG4CXX_AUTO_TRACE(logger_); connection_list_lock_.AcquireForReading(); @@ -383,32 +393,37 @@ uint32_t ConnectionHandlerImpl::OnSessionEndedCallback( std::pair<int32_t, Connection*> connection_item = *it; connection_list_lock_.Release(); - Connection *connection = connection_item.second; + Connection* connection = connection_item.second; const uint32_t session_key = KeyFromPair(connection_handle, session_id); if (protocol_handler::kRpc == service_type) { - LOG4CXX_INFO(logger_, "Session " << static_cast<uint32_t>(session_id) - << " to be removed"); + LOG4CXX_INFO(logger_, + "Session " << static_cast<uint32_t>(session_id) + << " to be removed"); // old version of protocol doesn't support hash if (protocol_handler::HASH_ID_NOT_SUPPORTED != hashCode) { if (protocol_handler::HASH_ID_WRONG == hashCode || session_key != hashCode) { - LOG4CXX_WARN(logger_, "Wrong hash_id for session " - << static_cast<uint32_t>(session_id)); + LOG4CXX_WARN(logger_, + "Wrong hash_id for session " + << static_cast<uint32_t>(session_id)); return 0; } } if (!connection->RemoveSession(session_id)) { - LOG4CXX_WARN(logger_, "Couldn't remove session " - << static_cast<uint32_t>(session_id)); + LOG4CXX_WARN(logger_, + "Couldn't remove session " + << static_cast<uint32_t>(session_id)); return 0; } } else { - LOG4CXX_INFO(logger_, "Service " << static_cast<uint32_t>(service_type) - << " to be removed"); + LOG4CXX_INFO(logger_, + "Service " << static_cast<uint32_t>(service_type) + << " to be removed"); if (!connection->RemoveService(session_id, service_type)) { - LOG4CXX_WARN(logger_, "Couldn't remove service " - << static_cast<uint32_t>(service_type)); + LOG4CXX_WARN(logger_, + "Couldn't remove service " + << static_cast<uint32_t>(service_type)); return 0; } } @@ -425,31 +440,37 @@ uint32_t ConnectionHandlerImpl::KeyFromPair( transport_manager::ConnectionUID connection_handle, uint8_t session_id) const { const uint32_t key = connection_handle | (session_id << 16); - LOG4CXX_DEBUG(logger_, "Key for ConnectionHandle:" - << static_cast<uint32_t>(connection_handle) - << " Session:" << static_cast<uint32_t>(session_id) - << " is: " << static_cast<uint32_t>(key)); + LOG4CXX_DEBUG(logger_, + "Key for ConnectionHandle:" + << static_cast<uint32_t>(connection_handle) + << " Session:" << static_cast<uint32_t>(session_id) + << " is: " << static_cast<uint32_t>(key)); if (protocol_handler::HASH_ID_WRONG == key) { - LOG4CXX_ERROR(logger_, "Connection key is WRONG_HASH_ID " + LOG4CXX_ERROR(logger_, + "Connection key is WRONG_HASH_ID " "(session id shall be greater 0)"); } return key; } -void ConnectionHandlerImpl::PairFromKey(uint32_t key, - transport_manager::ConnectionUID *connection_handle, - uint8_t *session_id) const { +void ConnectionHandlerImpl::PairFromKey( + uint32_t key, + transport_manager::ConnectionUID* connection_handle, + uint8_t* session_id) const { *connection_handle = key & 0xFF00FFFF; *session_id = key >> 16; - LOG4CXX_DEBUG(logger_, "ConnectionHandle:" - << static_cast<int32_t>(*connection_handle) - << " Session:" << static_cast<int32_t>(*session_id) - << " for key:" << static_cast<int32_t>(key)); + LOG4CXX_DEBUG( + logger_, + "ConnectionHandle:" << static_cast<int32_t>(*connection_handle) + << " Session:" << static_cast<int32_t>(*session_id) + << " for key:" << static_cast<int32_t>(key)); } int32_t ConnectionHandlerImpl::GetDataOnSessionKey( - uint32_t key, uint32_t* app_id, std::list<int32_t>* sessions_list, - uint32_t* device_id) const { + uint32_t key, + uint32_t* app_id, + std::list<int32_t>* sessions_list, + uint32_t* device_id) const { LOG4CXX_AUTO_TRACE(logger_); const int32_t error_result = -1; @@ -463,11 +484,12 @@ int32_t ConnectionHandlerImpl::GetDataOnSessionKey( return error_result; } - const Connection &connection = *it->second; + const Connection& connection = *it->second; const SessionMap session_map = connection.session_map(); if (0 == session_id || session_map.end() == session_map.find(session_id)) { - LOG4CXX_ERROR(logger_, "Session not found in connection: " - << static_cast<int32_t>(conn_handle)); + LOG4CXX_ERROR(logger_, + "Session not found in connection: " + << static_cast<int32_t>(conn_handle)); return error_result; } @@ -486,15 +508,13 @@ int32_t ConnectionHandlerImpl::GetDataOnSessionKey( } } - LOG4CXX_INFO(logger_, "Connection " - << static_cast<int32_t>(conn_handle) - << " has " << session_map.size() - << " sessions."); + LOG4CXX_INFO(logger_, + "Connection " << static_cast<int32_t>(conn_handle) << " has " + << session_map.size() << " sessions."); return 0; } -const ConnectionHandlerSettings& ConnectionHandlerImpl::get_settings() const -{ +const ConnectionHandlerSettings& ConnectionHandlerImpl::get_settings() const { return settings_; } @@ -508,19 +528,19 @@ DevicesDiscoveryStarter& ConnectionHandlerImpl::get_device_discovery_starter() { } struct CompareMAC { - explicit CompareMAC(const std::string &mac) : mac_(mac) {} - bool operator() (const DeviceMap::value_type &device) { + explicit CompareMAC(const std::string& mac) : mac_(mac) {} + bool operator()(const DeviceMap::value_type& device) { return strcasecmp(device.second.mac_address().c_str(), mac_.c_str()) == 0; } + private: std::string mac_; }; -bool ConnectionHandlerImpl::GetDeviceID(const std::string &mac_address, - DeviceHandle *device_handle) { - DeviceMap::const_iterator it = std::find_if(device_list_.begin(), - device_list_.end(), - CompareMAC(mac_address)); +bool ConnectionHandlerImpl::GetDeviceID(const std::string& mac_address, + DeviceHandle* device_handle) { + DeviceMap::const_iterator it = std::find_if( + device_list_.begin(), device_list_.end(), CompareMAC(mac_address)); if (it != device_list_.end()) { if (device_handle) { *device_handle = it->first; @@ -532,9 +552,10 @@ bool ConnectionHandlerImpl::GetDeviceID(const std::string &mac_address, int32_t ConnectionHandlerImpl::GetDataOnDeviceID( DeviceHandle device_handle, - std::string *device_name, - std::list<uint32_t> *applications_list, std::string *mac_address, - std::string* connection_type ) const { + std::string* device_name, + std::list<uint32_t>* applications_list, + std::string* mac_address, + std::string* connection_type) const { LOG4CXX_AUTO_TRACE(logger_); int32_t result = -1; @@ -554,14 +575,17 @@ int32_t ConnectionHandlerImpl::GetDataOnDeviceID( applications_list->clear(); sync_primitives::AutoReadLock connection_list_lock(connection_list_lock_); for (ConnectionList::const_iterator itr = connection_list_.begin(); - itr != connection_list_.end(); ++itr) { + itr != connection_list_.end(); + ++itr) { if (device_handle == (*itr).second->connection_device_handle()) { - const SessionMap &session_map = (itr->second)->session_map(); + const SessionMap& session_map = (itr->second)->session_map(); for (SessionMap::const_iterator session_it = session_map.begin(); - session_map.end() != session_it; ++session_it) { + session_map.end() != session_it; + ++session_it) { const transport_manager::ConnectionUID connection_handle = itr->first; const uint32_t session_id = session_it->first; - const uint32_t application_id = KeyFromPair(connection_handle, session_id); + const uint32_t application_id = + KeyFromPair(connection_handle, session_id); applications_list->push_back(application_id); } } @@ -578,11 +602,11 @@ int32_t ConnectionHandlerImpl::GetDataOnDeviceID( } void ConnectionHandlerImpl::GetConnectedDevicesMAC( - std::vector<std::string> &device_macs) const { + std::vector<std::string>& device_macs) const { DeviceMap::const_iterator first = device_list_.begin(); DeviceMap::const_iterator last = device_list_.end(); - while(first != last) { + while (first != last) { device_macs.push_back((*first).second.mac_address()); ++first; } @@ -590,7 +614,7 @@ void ConnectionHandlerImpl::GetConnectedDevicesMAC( #ifdef ENABLE_SECURITY int ConnectionHandlerImpl::SetSSLContext( - const uint32_t &key, security_manager::SSLContext *context) { + const uint32_t& key, security_manager::SSLContext* context) { LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_handle = 0; uint8_t session_id = 0; @@ -602,12 +626,12 @@ int ConnectionHandlerImpl::SetSSLContext( LOG4CXX_ERROR(logger_, "Unknown connection!"); return security_manager::SecurityManager::ERROR_INTERNAL; } - Connection &connection = *it->second; + Connection& connection = *it->second; return connection.SetSSLContext(session_id, context); } -security_manager::SSLContext *ConnectionHandlerImpl::GetSSLContext( - const uint32_t &key, const protocol_handler::ServiceType &service_type) { +security_manager::SSLContext* ConnectionHandlerImpl::GetSSLContext( + const uint32_t& key, const protocol_handler::ServiceType& service_type) { LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_handle = 0; uint8_t session_id = 0; @@ -619,12 +643,12 @@ security_manager::SSLContext *ConnectionHandlerImpl::GetSSLContext( LOG4CXX_ERROR(logger_, "Unknown connection!"); return NULL; } - Connection &connection = *it->second; + Connection& connection = *it->second; return connection.GetSSLContext(session_id, service_type); } void ConnectionHandlerImpl::SetProtectionFlag( - const uint32_t &key, const protocol_handler::ServiceType &service_type) { + const uint32_t& key, const protocol_handler::ServiceType& service_type) { LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_handle = 0; uint8_t session_id = 0; @@ -636,7 +660,7 @@ void ConnectionHandlerImpl::SetProtectionFlag( LOG4CXX_ERROR(logger_, "Unknown connection!"); return; } - Connection &connection = *it->second; + Connection& connection = *it->second; connection.SetProtectionFlag(session_id, service_type); } @@ -661,20 +685,21 @@ void ConnectionHandlerImpl::ConnectToDevice( connection_handler::DeviceMap::const_iterator it_in; it_in = device_list_.find(device_handle); if (device_list_.end() != it_in) { - LOG4CXX_INFO(logger_, - "Connecting to device with handle " << device_handle); - if (transport_manager::E_SUCCESS - != transport_manager_.ConnectDevice(device_handle)) { + LOG4CXX_INFO(logger_, "Connecting to device with handle " << device_handle); + if (transport_manager::E_SUCCESS != + transport_manager_.ConnectDevice(device_handle)) { LOG4CXX_WARN(logger_, "Can't connect to device"); } else { LOG4CXX_ERROR( - logger_, "Application Manager wanted to connect to non-existing device"); + logger_, + "Application Manager wanted to connect to non-existing device"); } } } void ConnectionHandlerImpl::ConnectToAllDevices() { - for (DeviceMap::iterator i = device_list_.begin(); i != device_list_.end(); ++i) { + for (DeviceMap::iterator i = device_list_.begin(); i != device_list_.end(); + ++i) { connection_handler::DeviceHandle device_handle = i->first; ConnectToDevice(device_handle); } @@ -750,7 +775,7 @@ void ConnectionHandlerImpl::CloseSession(ConnectionHandle connection_handle, } transport_manager::ConnectionUID connection_id = - ConnectionUIDFromHandle(connection_handle); + ConnectionUIDFromHandle(connection_handle); SessionMap session_map; { @@ -762,8 +787,8 @@ void ConnectionHandlerImpl::CloseSession(ConnectionHandle connection_handle, session_map = connection_list_itr->second->session_map(); connection_list_itr->second->RemoveSession(session_id); } else { - LOG4CXX_ERROR(logger_, "Connection with id: " << connection_id - << " not found"); + LOG4CXX_ERROR(logger_, + "Connection with id: " << connection_id << " not found"); return; } } @@ -774,39 +799,40 @@ void ConnectionHandlerImpl::CloseSession(ConnectionHandle connection_handle, return; } - SessionMap::const_iterator session_map_itr = session_map.find(session_id); if (session_map_itr != session_map.end()) { const uint32_t session_key = KeyFromPair(connection_id, session_id); - const Session &session = session_map_itr->second; - const ServiceList &service_list = session.service_list; + const Session& session = session_map_itr->second; + const ServiceList& service_list = session.service_list; - ServiceList::const_reverse_iterator service_list_itr = service_list.rbegin(); - for (;service_list_itr != service_list.rend(); ++service_list_itr) { + ServiceList::const_reverse_iterator service_list_itr = + service_list.rbegin(); + for (; service_list_itr != service_list.rend(); ++service_list_itr) { const protocol_handler::ServiceType service_type = service_list_itr->service_type; - connection_handler_observer_->OnServiceEndedCallback(session_key, - service_type, - close_reason); + connection_handler_observer_->OnServiceEndedCallback( + session_key, service_type, close_reason); } } else { LOG4CXX_ERROR(logger_, "Session with id: " << session_id << " not found"); return; } - - LOG4CXX_DEBUG(logger_, "Session with id: " << session_id << " has been closed successfully"); + + LOG4CXX_DEBUG(logger_, + "Session with id: " << session_id + << " has been closed successfully"); } void ConnectionHandlerImpl::CloseConnectionSessions( ConnectionHandle connection_handle, CloseSessionReason close_reason) { - LOG4CXX_AUTO_TRACE(logger_); transport_manager::ConnectionUID connection_id = ConnectionUIDFromHandle(connection_handle); - LOG4CXX_DEBUG(logger_, "Closing all sessions for connection with id: " - << connection_id); + LOG4CXX_DEBUG( + logger_, + "Closing all sessions for connection with id: " << connection_id); typedef std::vector<uint8_t> SessionIdVector; SessionIdVector session_id_vector; @@ -819,32 +845,33 @@ void ConnectionHandlerImpl::CloseConnectionSessions( const SessionMap session_map = connection_list_itr->second->session_map(); SessionMap::const_iterator session_map_itr = session_map.begin(); - for (;session_map_itr != session_map.end(); ++session_map_itr) { + for (; session_map_itr != session_map.end(); ++session_map_itr) { session_id_vector.push_back(session_map_itr->first); } } else { - LOG4CXX_ERROR(logger_, "Connection with id: " << connection_id - << " not found"); + LOG4CXX_ERROR(logger_, + "Connection with id: " << connection_id << " not found"); return; } } SessionIdVector::const_iterator session_id_itr = session_id_vector.begin(); - for(;session_id_itr != session_id_vector.end(); ++session_id_itr) { + for (; session_id_itr != session_id_vector.end(); ++session_id_itr) { CloseSession(connection_handle, *session_id_itr, close_reason); } session_id_vector.clear(); - LOG4CXX_DEBUG(logger_, "All sessions for connection with id: " << connection_id - << " have been closed successfully"); + LOG4CXX_DEBUG(logger_, + "All sessions for connection with id: " + << connection_id << " have been closed successfully"); } -void ConnectionHandlerImpl::SendEndService(uint32_t key, - uint8_t service_type) { +void ConnectionHandlerImpl::SendEndService(uint32_t key, uint8_t service_type) { if (protocol_handler_) { uint32_t connection_handle = 0; uint8_t session_id = 0; PairFromKey(key, &connection_handle, &session_id); - protocol_handler_->SendEndService(connection_handle, session_id, service_type); + protocol_handler_->SendEndService( + connection_handle, session_id, service_type); } } @@ -895,8 +922,9 @@ void ConnectionHandlerImpl::KeepConnectionAlive(uint32_t connection_key, void ConnectionHandlerImpl::OnConnectionEnded( const transport_manager::ConnectionUID connection_id) { - LOG4CXX_INFO(logger_, "Delete Connection: " << static_cast<int32_t>(connection_id) - << " from the list."); + LOG4CXX_INFO(logger_, + "Delete Connection: " << static_cast<int32_t>(connection_id) + << " from the list."); connection_list_lock_.AcquireForWriting(); ConnectionList::iterator itr = connection_list_.find(connection_id); if (connection_list_.end() == itr) { @@ -912,17 +940,21 @@ void ConnectionHandlerImpl::OnConnectionEnded( const SessionMap session_map = connection->session_map(); for (SessionMap::const_iterator session_it = session_map.begin(); - session_map.end() != session_it; ++session_it) { - const uint32_t session_key = KeyFromPair(connection_id, session_it->first); - const ServiceList &service_list = session_it->second.service_list; - for (ServiceList::const_iterator service_it = service_list.begin(), end = - service_list.end(); service_it != end; ++service_it) { + session_map.end() != session_it; + ++session_it) { + const uint32_t session_key = + KeyFromPair(connection_id, session_it->first); + const ServiceList& service_list = session_it->second.service_list; + for (ServiceList::const_iterator service_it = service_list.begin(), + end = service_list.end(); + service_it != end; + ++service_it) { connection_handler_observer_->OnServiceEndedCallback( session_key, service_it->service_type, CloseSessionReason::kCommon); } } - } - } + } +} void ConnectionHandlerImpl::BindProtocolVersionWithSession( uint32_t connection_key, uint8_t protocol_version) { @@ -952,8 +984,10 @@ bool ConnectionHandlerImpl::IsHeartBeatSupported( return it->second->SupportHeartBeat(session_id); } -bool ConnectionHandlerImpl::ProtocolVersionUsed(uint32_t connection_id, - uint8_t session_id, uint8_t& protocol_version) const { +bool ConnectionHandlerImpl::ProtocolVersionUsed( + uint32_t connection_id, + uint8_t session_id, + uint8_t& protocol_version) const { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoReadLock lock(connection_list_lock_); ConnectionList::const_iterator it = connection_list_.find(connection_id); @@ -965,7 +999,7 @@ bool ConnectionHandlerImpl::ProtocolVersionUsed(uint32_t connection_id, } #ifdef BUILD_TESTS -ConnectionList &ConnectionHandlerImpl::getConnectionList() { +ConnectionList& ConnectionHandlerImpl::getConnectionList() { return connection_list_; } @@ -973,7 +1007,8 @@ const DeviceMap& ConnectionHandlerImpl::getDeviceList() { return device_list_; } -void ConnectionHandlerImpl::addDeviceConnection(const transport_manager::DeviceInfo &device_info, +void ConnectionHandlerImpl::addDeviceConnection( + const transport_manager::DeviceInfo& device_info, const transport_manager::ConnectionUID connection_id) { // Add Device OnDeviceAdded(device_info); diff --git a/src/components/connection_handler/src/device.cc b/src/components/connection_handler/src/device.cc index 5ba4ba278f..0ecb439172 100644 --- a/src/components/connection_handler/src/device.cc +++ b/src/components/connection_handler/src/device.cc @@ -46,24 +46,25 @@ namespace connection_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "ConnectionHandler") Device::Device(DeviceHandle device_handle, - const std::string &user_friendly_name, - const std::string &mac_address, const std::string& connection_type) - : device_handle_(device_handle), - user_friendly_name_(user_friendly_name), - mac_address_(mac_address), - connection_type_(connection_type){ - mac_address_ = encryption::MakeHash(mac_address); - LOG4CXX_DEBUG(logger_, - "Device: MAC address - " << mac_address - << ", hash - " << mac_address_); + const std::string& user_friendly_name, + const std::string& mac_address, + const std::string& connection_type) + : device_handle_(device_handle) + , user_friendly_name_(user_friendly_name) + , mac_address_(mac_address) + , connection_type_(connection_type) { + mac_address_ = encryption::MakeHash(mac_address); + LOG4CXX_DEBUG(logger_, + "Device: MAC address - " << mac_address << ", hash - " + << mac_address_); } DeviceHandle Device::device_handle() const { - return device_handle_; + return device_handle_; } std::string Device::user_friendly_name() const { - return user_friendly_name_; + return user_friendly_name_; } std::string Device::mac_address() const { diff --git a/src/components/connection_handler/src/heartbeat_monitor.cc b/src/components/connection_handler/src/heartbeat_monitor.cc index 0ed8b704a2..f3a2322810 100644 --- a/src/components/connection_handler/src/heartbeat_monitor.cc +++ b/src/components/connection_handler/src/heartbeat_monitor.cc @@ -44,18 +44,17 @@ using namespace sync_primitives; CREATE_LOGGERPTR_GLOBAL(logger_, "HeartBeatMonitor") HeartBeatMonitor::HeartBeatMonitor(uint32_t heartbeat_timeout_mseconds, - Connection *connection) - : default_heartbeat_timeout_(heartbeat_timeout_mseconds), - connection_(connection), - sessions_list_lock_(true), - run_(true) { -} + Connection* connection) + : default_heartbeat_timeout_(heartbeat_timeout_mseconds) + , connection_(connection) + , sessions_list_lock_(true) + , run_(true) {} void HeartBeatMonitor::Process() { sessions_list_lock_.Acquire(); SessionMap::iterator it = sessions_.begin(); while (it != sessions_.end()) { - SessionState &state = it->second; + SessionState& state = it->second; if (state.HasTimeoutElapsed()) { const uint8_t session_id = it->first; if (state.IsReadyToClose()) { @@ -68,7 +67,8 @@ void HeartBeatMonitor::Process() { continue; } else { LOG4CXX_DEBUG(logger_, - "Send heart beat into session with id " << static_cast<int32_t>(session_id)); + "Send heart beat into session with id " + << static_cast<int32_t>(session_id)); state.PrepareToClose(); connection_->SendHeartBeat(it->first); } @@ -80,9 +80,9 @@ void HeartBeatMonitor::Process() { void HeartBeatMonitor::threadMain() { AutoLock main_lock(main_thread_lock_); - LOG4CXX_DEBUG( - logger_, - "Start heart beat monitor. Timeout is " << default_heartbeat_timeout_); + LOG4CXX_DEBUG(logger_, + "Start heart beat monitor. Timeout is " + << default_heartbeat_timeout_); while (run_) { heartbeat_monitor_.WaitFor(main_lock, kDefaultCycleTimeout); Process(); @@ -90,15 +90,17 @@ void HeartBeatMonitor::threadMain() { } void HeartBeatMonitor::AddSession(uint8_t session_id) { - LOG4CXX_DEBUG(logger_, "Add session with id " << static_cast<int32_t>(session_id)); + LOG4CXX_DEBUG(logger_, + "Add session with id " << static_cast<int32_t>(session_id)); AutoLock auto_lock(sessions_list_lock_); if (sessions_.end() != sessions_.find(session_id)) { - LOG4CXX_WARN( - logger_, - "Session with id " << static_cast<int32_t>(session_id) << " already exists"); + LOG4CXX_WARN(logger_, + "Session with id " << static_cast<int32_t>(session_id) + << " already exists"); return; } - sessions_.insert(std::make_pair(session_id, SessionState(default_heartbeat_timeout_))); + sessions_.insert( + std::make_pair(session_id, SessionState(default_heartbeat_timeout_))); LOG4CXX_INFO(logger_, "Start heartbeat for session " << session_id); } @@ -107,12 +109,12 @@ void HeartBeatMonitor::RemoveSession(uint8_t session_id) { AutoLock auto_lock(sessions_list_lock_); LOG4CXX_DEBUG(logger_, - "Remove session with id " << static_cast<int>(session_id)); + "Remove session with id " << static_cast<int>(session_id)); if (sessions_.erase(session_id) == 0) { LOG4CXX_WARN(logger_, - "Remove session with id " << static_cast<int>(session_id) << - " was unsuccessful"); + "Remove session with id " << static_cast<int>(session_id) + << " was unsuccessful"); } } @@ -121,15 +123,17 @@ void HeartBeatMonitor::KeepAlive(uint8_t session_id) { AutoLock auto_lock(sessions_list_lock_); if (sessions_.end() != sessions_.find(session_id)) { - LOG4CXX_INFO( logger_, "Resetting heart beat timer for session with id " << - static_cast<int32_t>(session_id)); + LOG4CXX_INFO(logger_, + "Resetting heart beat timer for session with id " + << static_cast<int32_t>(session_id)); sessions_[session_id].KeepAlive(); } } void HeartBeatMonitor::exitThreadMain() { - // FIXME (dchmerev@luxoft.com): thread requested to stop should stop as soon as possible, + // FIXME (dchmerev@luxoft.com): thread requested to stop should stop as soon + // as possible, // not running one more iteration before actual stop LOG4CXX_AUTO_TRACE(logger_); AutoLock main_lock(main_thread_lock_); @@ -138,9 +142,10 @@ void HeartBeatMonitor::exitThreadMain() { } void HeartBeatMonitor::set_heartbeat_timeout_milliseconds(uint32_t timeout, - uint8_t session_id) { - LOG4CXX_DEBUG(logger_, "Set new heart beat timeout " << timeout << - "For session: " << session_id); + uint8_t session_id) { + LOG4CXX_DEBUG(logger_, + "Set new heart beat timeout " << timeout + << "For session: " << session_id); AutoLock session_locker(sessions_list_lock_); if (sessions_.end() != sessions_.find(session_id)) { @@ -148,9 +153,10 @@ void HeartBeatMonitor::set_heartbeat_timeout_milliseconds(uint32_t timeout, } } -HeartBeatMonitor::SessionState::SessionState(uint32_t heartbeat_timeout_mseconds) - : heartbeat_timeout_mseconds_(heartbeat_timeout_mseconds), - is_heartbeat_sent_(false) { +HeartBeatMonitor::SessionState::SessionState( + uint32_t heartbeat_timeout_mseconds) + : heartbeat_timeout_mseconds_(heartbeat_timeout_mseconds) + , is_heartbeat_sent_(false) { LOG4CXX_AUTO_TRACE(logger_); RefreshExpiration(); } @@ -161,13 +167,12 @@ void HeartBeatMonitor::SessionState::RefreshExpiration() { TimevalStruct time = DateTime::getCurrentTime(); DateTime::AddMilliseconds(time, heartbeat_timeout_mseconds_); heartbeat_expiration_ = time; - } void HeartBeatMonitor::SessionState::UpdateTimeout( uint32_t heartbeat_timeout_mseconds) { - LOG4CXX_DEBUG(logger_, "Update timout with value " << - heartbeat_timeout_mseconds_); + LOG4CXX_DEBUG(logger_, + "Update timout with value " << heartbeat_timeout_mseconds_); heartbeat_timeout_mseconds_ = heartbeat_timeout_mseconds; RefreshExpiration(); } diff --git a/src/components/connection_handler/test/connection_handler_impl_test.cc b/src/components/connection_handler/test/connection_handler_impl_test.cc index 626cfbd194..3de478550b 100644 --- a/src/components/connection_handler/test/connection_handler_impl_test.cc +++ b/src/components/connection_handler/test/connection_handler_impl_test.cc @@ -433,7 +433,7 @@ TEST_F(ConnectionHandlerTest, IsHeartBeatSupported) { TEST_F(ConnectionHandlerTest, SendEndServiceWithoutSetProtocolHandler) { AddTestDeviceConnection(); AddTestSession(); - EXPECT_CALL(mock_protocol_handler_, SendEndService(_,_,kRpc)).Times(0); + EXPECT_CALL(mock_protocol_handler_, SendEndService(_, _, kRpc)).Times(0); connection_handler_->SendEndService(connection_key_, kRpc); } @@ -441,7 +441,7 @@ TEST_F(ConnectionHandlerTest, SendEndService) { AddTestDeviceConnection(); AddTestSession(); connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndService(_,_,kRpc)); + EXPECT_CALL(mock_protocol_handler_, SendEndService(_, _, kRpc)); connection_handler_->SendEndService(connection_key_, kRpc); } @@ -513,7 +513,8 @@ TEST_F(ConnectionHandlerTest, OnApplicationFloodCallBack) { connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(1); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(1); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kCommon)); @@ -539,7 +540,7 @@ TEST_F(ConnectionHandlerTest, OnApplicationFloodCallBack_SessionFound) { &mock_connection_handler_observer); connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kFlood)); @@ -810,7 +811,8 @@ TEST_F(ConnectionHandlerTest, CloseSessionWithCommonReason) { &mock_connection_handler_observer); connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(1); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(1); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kCommon)) @@ -837,7 +839,8 @@ TEST_F(ConnectionHandlerTest, CloseSessionWithFloodReason) { &mock_connection_handler_observer); connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(1); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(1); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, @@ -865,7 +868,8 @@ TEST_F(ConnectionHandlerTest, CloseSessionWithMalformedMessage) { connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(0); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(0); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kMalformed)) @@ -895,7 +899,8 @@ TEST_F(ConnectionHandlerTest, CloseConnectionSessionsWithMalformedMessage) { connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(0); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(0); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kMalformed)) @@ -925,7 +930,8 @@ TEST_F(ConnectionHandlerTest, CloseConnectionSessionsWithCommonReason) { connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_,start_session_id_)).Times(1); + EXPECT_CALL(mock_protocol_handler_, SendEndSession(uid_, start_session_id_)) + .Times(1); InSequence seq; EXPECT_CALL(mock_connection_handler_observer, OnServiceEndedCallback(connection_key_, kMobileNav, kCommon)) @@ -1418,7 +1424,7 @@ TEST_F(ConnectionHandlerTest, SendHeartBeat) { AddTestDeviceConnection(); AddTestSession(); connection_handler_->set_protocol_handler(&mock_protocol_handler_); - EXPECT_CALL(mock_protocol_handler_,SendHeartBeat(uid_,start_session_id_) ); + EXPECT_CALL(mock_protocol_handler_, SendHeartBeat(uid_, start_session_id_)); connection_handler_->SendHeartBeat(uid_, start_session_id_); } diff --git a/src/components/connection_handler/test/connection_test.cc b/src/components/connection_handler/test/connection_test.cc index bb9c7faf9d..e36e9aa65c 100644 --- a/src/components/connection_handler/test/connection_test.cc +++ b/src/components/connection_handler/test/connection_test.cc @@ -62,10 +62,8 @@ class ConnectionTest : public ::testing::Test { const ConnectionHandle connectionHandle = 0; const DeviceHandle device_handle = 0u; const uint32_t heart_beat = 10000u; - connection_ = new Connection(connectionHandle, - device_handle, - connection_handler_, - heart_beat); + connection_ = new Connection( + connectionHandle, device_handle, connection_handler_, heart_beat); } void TearDown() OVERRIDE { @@ -84,7 +82,8 @@ class ConnectionTest : public ::testing::Test { const bool found_result = (it != serviceList.end()); EXPECT_TRUE(found_result); } - void AddNewService(const ServiceType service_type, const bool protection, + void AddNewService(const ServiceType service_type, + const bool protection, const bool expect_add_new_service_call_result, const bool expect_exist_service) { const bool result = @@ -100,9 +99,8 @@ class ConnectionTest : public ::testing::Test { EXPECT_FALSE(session_map.empty()); const ServiceList newServiceList = session_map.begin()->second.service_list; EXPECT_FALSE(newServiceList.empty()); - const ServiceList::const_iterator it = std::find(newServiceList.begin(), - newServiceList.end(), - service_type); + const ServiceList::const_iterator it = + std::find(newServiceList.begin(), newServiceList.end(), service_type); const bool found_result = it != newServiceList.end(); EXPECT_EQ(expect_exist_service, found_result); #ifdef ENABLE_SECURITY @@ -194,10 +192,8 @@ TEST_F(ConnectionTest, HeartBeat_Protocol4_ZeroHeartBeat_NotSupported) { const ConnectionHandle connectionHandle = 0; const DeviceHandle device_handle = 0u; const uint32_t heart_beat = 0u; - connection_ = new Connection(connectionHandle, - device_handle, - connection_handler_, - heart_beat); + connection_ = new Connection( + connectionHandle, device_handle, connection_handler_, heart_beat); StartSession(); // Check execution if protocol version is 4 const uint8_t protocol_version = static_cast<uint8_t>(PROTOCOL_VERSION_4); @@ -236,57 +232,61 @@ TEST_F(ConnectionTest, Session_RemoveRPCBulk) { // Control Service could not be started anyway TEST_F(ConnectionTest, Session_AddControlService) { StartSession(); - AddNewService(kControl, PROTECTION_OFF, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_NOT_EXISTS); - AddNewService(kControl, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_NOT_EXISTS); + AddNewService( + kControl, PROTECTION_OFF, EXPECT_RETURN_FALSE, EXPECT_SERVICE_NOT_EXISTS); + AddNewService( + kControl, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_NOT_EXISTS); } // Invalid Services couldnot be started anyway TEST_F(ConnectionTest, Session_AddInvalidService) { StartSession(); - AddNewService(kInvalidServiceType, PROTECTION_OFF, EXPECT_RETURN_FALSE, + AddNewService(kInvalidServiceType, + PROTECTION_OFF, + EXPECT_RETURN_FALSE, EXPECT_SERVICE_NOT_EXISTS); - AddNewService(kInvalidServiceType, PROTECTION_ON, EXPECT_RETURN_FALSE, + AddNewService(kInvalidServiceType, + PROTECTION_ON, + EXPECT_RETURN_FALSE, EXPECT_SERVICE_NOT_EXISTS); } // RPC and Bulk Services could be only delay protected TEST_F(ConnectionTest, Session_AddRPCBulkServices) { StartSession(); - AddNewService(kRpc, PROTECTION_OFF, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kRpc, PROTECTION_OFF, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); // Bulk shall not be added and shall be PROTECTION_OFF - AddNewService(kBulk, PROTECTION_OFF, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kBulk, PROTECTION_OFF, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); #ifdef ENABLE_SECURITY AddNewService(kRpc, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #else - AddNewService(kRpc, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kRpc, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); #endif // ENABLE_SECURITY // Bulk shall not be added and shall be PROTECTION_ON - AddNewService(kBulk, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kBulk, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); } TEST_F(ConnectionTest, Session_AddAllOtherService_Unprotected) { StartSession(); - AddNewService(kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); - AddNewService(kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); } TEST_F(ConnectionTest, Session_AddAllOtherService_Protected) { StartSession(); - AddNewService(kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); } TEST_F(ConnectionTest, FindAddedService) { @@ -299,8 +299,8 @@ TEST_F(ConnectionTest, FindAddedService) { EXPECT_EQ(NULL, sessionWithService); // Act - AddNewService(kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); currentSessionMap = connection_->session_map(); @@ -312,8 +312,8 @@ TEST_F(ConnectionTest, FindAddedService) { TEST_F(ConnectionTest, Session_RemoveAddedService) { StartSession(); - AddNewService(kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); EXPECT_EQ(connection_->RemoveService(session_id, kAudio), EXPECT_RETURN_TRUE); @@ -325,48 +325,48 @@ TEST_F(ConnectionTest, Session_RemoveAddedService) { TEST_F(ConnectionTest, Session_AddAllOtherService_DelayProtected1) { StartSession(); - AddNewService(kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); - AddNewService(kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #ifdef ENABLE_SECURITY - AddNewService(kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #else - AddNewService(kAudio, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); #endif // ENABLE_SECURITY } // Use other order TEST_F(ConnectionTest, Session_AddAllOtherService_DelayProtected2) { StartSession(); - AddNewService(kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #ifdef ENABLE_SECURITY - AddNewService(kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #else - AddNewService(kAudio, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kAudio, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); #endif // ENABLE_SECURITY - AddNewService(kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_OFF, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #ifdef ENABLE_SECURITY - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); #else - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_FALSE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_FALSE, EXPECT_SERVICE_EXISTS); #endif // ENABLE_SECURITY } @@ -397,8 +397,8 @@ TEST_F(ConnectionTest, SetGetSSLContext) { StartSession(); EXPECT_EQ(NULL, connection_->GetSSLContext(session_id, kMobileNav)); - AddNewService(kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, - EXPECT_SERVICE_EXISTS); + AddNewService( + kMobileNav, PROTECTION_ON, EXPECT_RETURN_TRUE, EXPECT_SERVICE_EXISTS); EXPECT_EQ(NULL, connection_->GetSSLContext(session_id, kMobileNav)); diff --git a/src/components/connection_handler/test/device_test.cc b/src/components/connection_handler/test/device_test.cc index dc1a51faf1..ea9aa746b5 100644 --- a/src/components/connection_handler/test/device_test.cc +++ b/src/components/connection_handler/test/device_test.cc @@ -55,7 +55,8 @@ TEST(ConnectionDevice, CompareDevicesWithDifferentMacAddresses) { std::string hash_mac_address = test_device.mac_address(); std::string test_next_mac_address = "test_address_"; - Device next_test_device(device_handle, device_name, test_next_mac_address, connection_type); + Device next_test_device( + device_handle, device_name, test_next_mac_address, connection_type); EXPECT_NE(test_next_mac_address, next_test_device.mac_address()); std::string hash_next_mac_address = next_test_device.mac_address(); @@ -77,4 +78,3 @@ TEST(ConnectionDevice, MacAddressHash) { } // namespace connection_handle } // namespace components } // namespace test - diff --git a/src/components/connection_handler/test/include/connection_handler_observer_mock.h b/src/components/connection_handler/test/include/connection_handler_observer_mock.h index 95a223678a..aa22f1aa1c 100644 --- a/src/components/connection_handler/test/include/connection_handler_observer_mock.h +++ b/src/components/connection_handler/test/include/connection_handler_observer_mock.h @@ -42,29 +42,31 @@ namespace components { namespace connection_handler_test { /* - * MOCK implementation of ::connection_handler::ConnectionHandlerObserver interface + * MOCK implementation of ::connection_handler::ConnectionHandlerObserver + * interface */ -class ConnectionHandlerObserverMock : public ::connection_handler::ConnectionHandlerObserver { +class ConnectionHandlerObserverMock + : public ::connection_handler::ConnectionHandlerObserver { public: MOCK_METHOD1(OnDeviceListUpdated, - void(const connection_handler::DeviceMap &device_list)); - MOCK_METHOD0(OnFindNewApplicationsRequest,void()); + void(const connection_handler::DeviceMap& device_list)); + MOCK_METHOD0(OnFindNewApplicationsRequest, void()); MOCK_METHOD1(RemoveDevice, - void(const connection_handler::DeviceHandle &device_handle)); + void(const connection_handler::DeviceHandle& device_handle)); MOCK_METHOD3(OnServiceStartedCallback, - bool(const connection_handler::DeviceHandle &device_handle, - const int32_t &session_key, - const protocol_handler::ServiceType &type)); - MOCK_METHOD3(OnServiceEndedCallback, - void(const int32_t &session_key, - const protocol_handler::ServiceType &type, + bool(const connection_handler::DeviceHandle& device_handle, + const int32_t& session_key, + const protocol_handler::ServiceType& type)); + MOCK_METHOD3( + OnServiceEndedCallback, + void(const int32_t& session_key, + const protocol_handler::ServiceType& type, const connection_handler::CloseSessionReason& close_reason)); - MOCK_CONST_METHOD1(GetHandshakeContext, - security_manager::SSLContext::HandshakeContext( - uint32_t key)); - + MOCK_CONST_METHOD1( + GetHandshakeContext, + security_manager::SSLContext::HandshakeContext(uint32_t key)); }; -} // namespace connection_handler_test -} // namespace components -} // namespace test -#endif //SRC_COMPONENTS_CONNECTION_HANDLER_TEST_INCLUDE_CONNECTION_HANDLER_OBSERVER_MOCK_H_ +} // namespace connection_handler_test +} // namespace components +} // namespace test +#endif // SRC_COMPONENTS_CONNECTION_HANDLER_TEST_INCLUDE_CONNECTION_HANDLER_OBSERVER_MOCK_H_ diff --git a/src/components/dbus/include/dbus/dbus_adapter.h b/src/components/dbus/include/dbus/dbus_adapter.h index ec59fa421e..3877649e10 100644 --- a/src/components/dbus/include/dbus/dbus_adapter.h +++ b/src/components/dbus/include/dbus/dbus_adapter.h @@ -85,7 +85,9 @@ class DBusAdapter { * \param name pair interface and name of method for call * \param obj params for call */ - void MethodCall(uint id, const MessageId func_id, const MessageName& name, + void MethodCall(uint id, + const MessageId func_id, + const MessageName& name, const smart_objects::SmartObject& obj); /** @@ -95,7 +97,8 @@ class DBusAdapter { * \param name pair interface and name of signal for call * \param obj params for signal */ - void Signal(const MessageId func_id, const MessageName& name, + void Signal(const MessageId func_id, + const MessageName& name, const smart_objects::SmartObject& obj); /** @@ -103,7 +106,9 @@ class DBusAdapter { * \param id id message * \param obj params for return */ - void MethodReturn(uint id, const MessageId func_id, const MessageName& name, + void MethodReturn(uint id, + const MessageId func_id, + const MessageName& name, const smart_objects::SmartObject& obj); /** @@ -219,7 +224,8 @@ class DBusAdapter { * \param args map of arguments * \return true if success */ - bool SetArguments(DBusMessage* msg, const ListArgs& rules, + bool SetArguments(DBusMessage* msg, + const ListArgs& rules, const smart_objects::SmartObject& args); /** @@ -278,7 +284,7 @@ class DBusAdapter { bool SetOptionalValue( DBusMessageIter* iter, const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject ¶m); + const smart_objects::SmartObject& param); /** * \brief gets arguments from message @@ -287,7 +293,7 @@ class DBusAdapter { * \param message response message (output) * \return true if success */ - bool GetHeader(DBusMessageIter* iter, int *code, std::string *message); + bool GetHeader(DBusMessageIter* iter, int* code, std::string* message); /** * \brief gets arguments from message with header @@ -296,7 +302,8 @@ class DBusAdapter { * \param args map of arguments * \return true if success */ - bool GetArguments(DBusMessageIter* iter, const ListArgs& rules, + bool GetArguments(DBusMessageIter* iter, + const ListArgs& rules, smart_objects::SmartObject& args); /** @@ -309,7 +316,7 @@ class DBusAdapter { bool GetOneArgument( DBusMessageIter* iter, const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject &args); + smart_objects::SmartObject& args); /** * \brief gets value for argument @@ -355,7 +362,7 @@ class DBusAdapter { bool GetOptionalValue( DBusMessageIter* iter, const ford_message_descriptions::ParameterDescription* rules, - smart_objects::SmartObject ¶m); + smart_objects::SmartObject& param); /** * \brief processes request on introspect diff --git a/src/components/dbus/include/dbus/dbus_message.h b/src/components/dbus/include/dbus/dbus_message.h index 42ec68b3bf..10f419f445 100644 --- a/src/components/dbus/include/dbus/dbus_message.h +++ b/src/components/dbus/include/dbus/dbus_message.h @@ -46,7 +46,7 @@ enum ContainerType { }; class MessageRefKeeper { -public: + public: MessageRefKeeper(); MessageRefKeeper(DBusMessage* message); ~MessageRefKeeper(); @@ -55,7 +55,8 @@ public: DBusMessage* get() const; DBusMessage* Pass(); void swap(MessageRefKeeper& other); -private: + + private: DBusMessage* raw_message_; }; @@ -65,6 +66,7 @@ class MessageRef { ~MessageRef(); std::string GetInterface() const; std::string GetMember() const; + protected: MessageRefKeeper raw_message_ref_; friend class MessageReader; @@ -96,29 +98,30 @@ class MessageReader { bool NextIsDictEntry() const; // Readers - bool TakeBool(); - uint8_t TakeByte(); - int16_t TakeInt16(); + bool TakeBool(); + uint8_t TakeByte(); + int16_t TakeInt16(); uint16_t TakeUint16(); - int32_t TakeInt32(); + int32_t TakeInt32(); uint32_t TakeUint32(); - int64_t TakeInt64(); + int64_t TakeInt64(); uint64_t TakeUint64(); - double TakeDouble(); + double TakeDouble(); std::string TakeString(); MessageReader TakeArrayReader(); MessageReader TakeStructReader(); MessageReader TakeDictEntryReader(); + private: typedef int DataType; // Container reader constructor - MessageReader(MessageReader* reader, - DataType container_data_type); + MessageReader(MessageReader* reader, DataType container_data_type); void MoveToNext(); void MarkFailed(); DataType NextValueType() const; void ReadNextValue(DataType type, void* value); + private: // Fields MessageReader* parent_reader_; @@ -146,13 +149,15 @@ class MessageWriter { void PutUint64(uint64_t value); void PutDouble(double value); void PutString(const std::string& value); + private: typedef int DataType; // Main constructor void WriteAndCheck(DataType value_type, const void* value); void CloseWriter(); + private: - //Fields + // Fields bool has_opened_subcontainer_; MessageWriter* parent_writer_; DBusMessageIter iterator_; @@ -166,11 +171,9 @@ MessageRef MethodCall(const char* bus_name, const char* path, const char* interface, const char* method); -MessageRef Signal(const char *path, - const char *interface, - const char *name); -} // namespace dbus +MessageRef Signal(const char* path, const char* interface, const char* name); +} // namespace dbus #include "dbus/dbus_message_inl.h" -#endif // DBUS_DBUS_MESSAGE_H +#endif // DBUS_DBUS_MESSAGE_H diff --git a/src/components/dbus/include/dbus/dbus_message_inl.h b/src/components/dbus/include/dbus/dbus_message_inl.h index 714e66ea33..1a10f828de 100644 --- a/src/components/dbus/include/dbus/dbus_message_inl.h +++ b/src/components/dbus/include/dbus/dbus_message_inl.h @@ -161,14 +161,11 @@ inline std::string MessageReader::TakeString() { return value; } - inline MessageReader::DataType MessageReader::NextValueType() const { DBusMessageIter* iter = const_cast<DBusMessageIter*>(&iterator_); return failed_ ? DBUS_TYPE_INVALID : dbus_message_iter_get_arg_type(iter); } - - // Message writer methods inline void MessageWriter::PutBool(bool value) { dbus_bool_t dbus_value = value; @@ -212,7 +209,6 @@ inline void MessageWriter::PutString(const std::string& value) { WriteAndCheck(DBUS_TYPE_STRING, &pointer); } - } // namespace dbus -#endif // DBUS_MESSAGE_INL_H +#endif // DBUS_MESSAGE_INL_H diff --git a/src/components/dbus/include/dbus/message_descriptions.h b/src/components/dbus/include/dbus/message_descriptions.h index 18c27ce0d6..a9e7a5e141 100644 --- a/src/components/dbus/include/dbus/message_descriptions.h +++ b/src/components/dbus/include/dbus/message_descriptions.h @@ -38,12 +38,13 @@ namespace ford_message_descriptions { -enum ParameterType {Integer, Boolean, Float, String, Struct, Enum, Array}; +enum ParameterType { Integer, Boolean, Float, String, Struct, Enum, Array }; struct ParameterDescription { const char* name; const ParameterType type; - const bool obligatory; // TODO (dchmerev@luxoft.com): rename to 'mandatory' as in HMI API description + const bool obligatory; // TODO (dchmerev@luxoft.com): rename to 'mandatory' + // as in HMI API description }; struct ArrayDescription { @@ -70,4 +71,3 @@ extern const MessageDescription* message_descriptions[]; } // namespace ford_message_descriptions #endif // SRC_COMPONENTS_DBUS_INCLUDE_DBUS_MESSAGE_DESCRIPTIONS_H_ - diff --git a/src/components/dbus/include/dbus/schema.h b/src/components/dbus/include/dbus/schema.h index 2a5f6f3615..e269bd2596 100644 --- a/src/components/dbus/include/dbus/schema.h +++ b/src/components/dbus/include/dbus/schema.h @@ -48,7 +48,7 @@ struct Description; typedef hmi_apis::FunctionID::eType MessageId; typedef hmi_apis::messageType::eType MessageType; -typedef std::pair<std::string, std::string> MessageName; // interface, message +typedef std::pair<std::string, std::string> MessageName; // interface, message typedef std::vector<const ParameterDescription*> ListArgs; typedef std::vector<const Description*> Messages; diff --git a/src/components/dbus/src/dbus_adapter.cc b/src/components/dbus/src/dbus_adapter.cc index 4f0cb74527..b4f4b86dd2 100644 --- a/src/components/dbus/src/dbus_adapter.cc +++ b/src/components/dbus/src/dbus_adapter.cc @@ -46,8 +46,9 @@ namespace dbus { CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") -std::vector<std::string> &split(const std::string& s, char delim, - std::vector<std::string> &elems) { +std::vector<std::string>& split(const std::string& s, + char delim, + std::vector<std::string>& elems) { std::stringstream ss(s); std::string item; while (std::getline(ss, item, delim)) { @@ -60,12 +61,12 @@ DBusAdapter::DBusAdapter(const std::string& sdlServiceName, const std::string& sdlObjectPath, const std::string& hmiServiceName, const std::string& hmiObjectPath) - : sdl_service_name_(sdlServiceName), - sdl_object_path_(sdlObjectPath), - hmi_service_name_(hmiServiceName), - hmi_object_path_(hmiObjectPath), - conn_(NULL), - schema_(new DBusSchema(ford_message_descriptions::message_descriptions)) { + : sdl_service_name_(sdlServiceName) + , sdl_object_path_(sdlObjectPath) + , hmi_service_name_(hmiServiceName) + , hmi_object_path_(hmiObjectPath) + , conn_(NULL) + , schema_(new DBusSchema(ford_message_descriptions::message_descriptions)) { } DBusAdapter::~DBusAdapter() { @@ -87,18 +88,17 @@ bool DBusAdapter::Init() { dbus_error_free(&err); return false; } - ret = dbus_bus_request_name(conn_, sdl_service_name_.c_str(), - DBUS_NAME_FLAG_DO_NOT_QUEUE, - &err); + ret = dbus_bus_request_name( + conn_, sdl_service_name_.c_str(), DBUS_NAME_FLAG_DO_NOT_QUEUE, &err); if (ret == -1 || dbus_error_is_set(&err)) { LOG4CXX_ERROR(logger_, "DBus: Can't request name " << err.name); dbus_error_free(&err); return false; } if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) { - LOG4CXX_ERROR( - logger_, - "DBus: Service '" << sdl_service_name_ << "' is already running"); + LOG4CXX_ERROR(logger_, + "DBus: Service '" << sdl_service_name_ + << "' is already running"); return false; } @@ -131,7 +131,8 @@ bool DBusAdapter::Process(smart_objects::SmartObject& obj) { return false; } -void DBusAdapter::MethodReturn(uint id, const MessageId func_id, +void DBusAdapter::MethodReturn(uint id, + const MessageId func_id, const MessageName& name, const smart_objects::SmartObject& obj) { LOG4CXX_DEBUG(logger_, "Method return " << name.first << "." << name.second); @@ -158,8 +159,8 @@ void DBusAdapter::MethodReturn(uint id, const MessageId func_id, return; } - const ListArgs& args = schema_->getListArgs(func_id, - hmi_apis::messageType::response); + const ListArgs& args = + schema_->getListArgs(func_id, hmi_apis::messageType::response); if (!SetArguments(reply, args, obj)) { LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); dbus_message_unref(reply); @@ -180,7 +181,8 @@ void DBusAdapter::MethodReturn(uint id, const MessageId func_id, LOG4CXX_INFO(logger_, "DBus: Success return method"); } -void DBusAdapter::Error(uint id, const std::string& name, +void DBusAdapter::Error(uint id, + const std::string& name, const std::string& description) { LOG4CXX_DEBUG(logger_, "Error " << name << ": " << description); if (conn_ == NULL) { @@ -214,7 +216,8 @@ void DBusAdapter::Error(uint id, const std::string& name, LOG4CXX_INFO(logger_, "DBus: Success error"); } -void DBusAdapter::MethodCall(uint id, const MessageId func_id, +void DBusAdapter::MethodCall(uint id, + const MessageId func_id, const MessageName& name, const smart_objects::SmartObject& obj) { LOG4CXX_DEBUG(logger_, "Method call " << name.first << "." << name.second); @@ -230,15 +233,17 @@ void DBusAdapter::MethodCall(uint id, const MessageId func_id, DBusMessage* msg; msg = dbus_message_new_method_call( - hmi_service_name_.c_str(), hmi_object_path_.c_str(), - (hmi_service_name_ + "." + name.first).c_str(), name.second.c_str()); + hmi_service_name_.c_str(), + hmi_object_path_.c_str(), + (hmi_service_name_ + "." + name.first).c_str(), + name.second.c_str()); if (NULL == msg) { LOG4CXX_WARN(logger_, "DBus: Failed call method (Message Null)"); return; } - const ListArgs& args = schema_->getListArgs(func_id, - hmi_apis::messageType::request); + const ListArgs& args = + schema_->getListArgs(func_id, hmi_apis::messageType::request); if (!SetArguments(msg, args, obj)) { LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); dbus_message_unref(msg); @@ -256,7 +261,8 @@ void DBusAdapter::MethodCall(uint id, const MessageId func_id, LOG4CXX_INFO(logger_, "DBus: Success call method"); } -void DBusAdapter::Signal(const MessageId func_id, const MessageName& name, +void DBusAdapter::Signal(const MessageId func_id, + const MessageName& name, const smart_objects::SmartObject& obj) { LOG4CXX_DEBUG(logger_, "Signal " << name.first << "." << name.second); if (conn_ == NULL) { @@ -269,7 +275,7 @@ void DBusAdapter::Signal(const MessageId func_id, const MessageName& name, return; } - DBusMessage *msg; + DBusMessage* msg; msg = dbus_message_new_signal(sdl_object_path_.c_str(), (sdl_service_name_ + "." + name.first).c_str(), name.second.c_str()); @@ -278,8 +284,8 @@ void DBusAdapter::Signal(const MessageId func_id, const MessageName& name, return; } - const ListArgs& args = schema_->getListArgs( - func_id, hmi_apis::messageType::notification); + const ListArgs& args = + schema_->getListArgs(func_id, hmi_apis::messageType::notification); if (!SetArguments(msg, args, obj)) { LOG4CXX_ERROR(logger_, "DBus: Failed call method (Signature is wrong)"); dbus_message_unref(msg); @@ -306,8 +312,8 @@ bool DBusAdapter::ProcessMethodCall(DBusMessage* msg, std::string interface = dbus_message_get_interface(msg); LOG4CXX_INFO(logger_, "DBus: name of method " << interface << " " << method); - if (interface == "org.freedesktop.DBus.Introspectable" - && method == "Introspect") { + if (interface == "org.freedesktop.DBus.Introspectable" && + method == "Introspect") { LOG4CXX_INFO(logger_, "DBus: INTROSPECT"); Introspect(msg); return false; @@ -331,11 +337,11 @@ bool DBusAdapter::ProcessMethodCall(DBusMessage* msg, obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = serial; obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = m_id; obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::request; - obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject( - smart_objects::SmartType_Map); + obj[sos::S_MSG_PARAMS] = + smart_objects::SmartObject(smart_objects::SmartType_Map); - const ListArgs args = schema_->getListArgs(name, - hmi_apis::messageType::request); + const ListArgs args = + schema_->getListArgs(name, hmi_apis::messageType::request); DBusMessageIter iter; dbus_message_iter_init(msg, &iter); @@ -356,18 +362,18 @@ bool DBusAdapter::ProcessMethodReturn(DBusMessage* msg, return false; } - obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject( - smart_objects::SmartType_Map); + obj[sos::S_MSG_PARAMS] = + smart_objects::SmartObject(smart_objects::SmartType_Map); - ListArgs args = schema_->getListArgs(ids.second, - hmi_apis::messageType::response); + ListArgs args = + schema_->getListArgs(ids.second, hmi_apis::messageType::response); DBusMessageIter iter; dbus_message_iter_init(msg, &iter); int code = 0; std::string message; smart_objects::SmartObject description(smart_objects::SmartType_Map); - bool ret = GetHeader(&iter, &code, &message) - && GetArguments(&iter, args, description); + bool ret = GetHeader(&iter, &code, &message) && + GetArguments(&iter, args, description); if (ret) { obj[sos::S_PARAMS][sos::S_CORRELATION_ID] = ids.first; @@ -402,13 +408,13 @@ bool DBusAdapter::ProcessError(DBusMessage* msg, if ((error_name = dbus_message_get_error_name(msg)) != NULL) { smart_objects::SmartObject name(smart_objects::SmartType_String); name = error_name; - ford_message_descriptions::ParameterDescription rule = { "description", - ford_message_descriptions::String, true }; + ford_message_descriptions::ParameterDescription rule = { + "description", ford_message_descriptions::String, true}; ListArgs args; args.push_back(&rule); smart_objects::SmartObject description(smart_objects::SmartType_Map); - description[rule.name] = smart_objects::SmartObject( - smart_objects::SmartType_String); + description[rule.name] = + smart_objects::SmartObject(smart_objects::SmartType_String); DBusMessageIter iter; dbus_message_iter_init(msg, &iter); @@ -421,13 +427,15 @@ bool DBusAdapter::ProcessError(DBusMessage* msg, hmi_apis::messageType::error_response; obj[sos::S_PARAMS][sos::kCode] = name.asInt(); obj[sos::S_PARAMS][sos::kMessage] = description[rule.name].asString(); - obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject( - smart_objects::SmartType_Map); + obj[sos::S_MSG_PARAMS] = + smart_objects::SmartObject(smart_objects::SmartType_Map); obj[sos::S_PARAMS]["data"]["method"] = method.first + "." + method.second; - LOG4CXX_WARN( - logger_, - "DBus: Call of method " << method.first << "." << method.second << " returned error " << name.asInt() << ": " << description[rule.name].asString()); + LOG4CXX_WARN(logger_, + "DBus: Call of method " << method.first << "." << method.second + << " returned error " << name.asInt() + << ": " + << description[rule.name].asString()); } else { LOG4CXX_ERROR(logger_, "DBus: Type message isn't error"); } @@ -453,11 +461,11 @@ bool DBusAdapter::ProcessSignal(DBusMessage* msg, obj[sos::S_PARAMS][sos::S_FUNCTION_ID] = m_id; obj[sos::S_PARAMS][sos::S_MESSAGE_TYPE] = hmi_apis::messageType::notification; - obj[sos::S_MSG_PARAMS] = smart_objects::SmartObject( - smart_objects::SmartType_Map); + obj[sos::S_MSG_PARAMS] = + smart_objects::SmartObject(smart_objects::SmartType_Map); - const ListArgs args = schema_->getListArgs( - name, hmi_apis::messageType::notification); + const ListArgs args = + schema_->getListArgs(name, hmi_apis::messageType::notification); DBusMessageIter iter; dbus_message_iter_init(msg, &iter); @@ -466,7 +474,8 @@ bool DBusAdapter::ProcessSignal(DBusMessage* msg, return ret; } -bool DBusAdapter::SetArguments(DBusMessage* msg, const ListArgs& rules, +bool DBusAdapter::SetArguments(DBusMessage* msg, + const ListArgs& rules, const smart_objects::SmartObject& args) { DBusMessageIter iter; dbus_message_iter_init_append(msg, &iter); @@ -500,7 +509,8 @@ bool DBusAdapter::SetValue( DBusMessageIter* iter, const ford_message_descriptions::ParameterDescription* rules, const smart_objects::SmartObject& param) { - // LOG4CXX_DEBUG(logger_, "DBus: Set param " << rules->name << " = " << param.asString()); + // LOG4CXX_DEBUG(logger_, "DBus: Set param " << rules->name << " = " << + // param.asString()); int type = 0; void* value = 0; dbus_int32_t integerValue = 0; @@ -511,13 +521,15 @@ bool DBusAdapter::SetValue( case ford_message_descriptions::ParameterType::Array: return SetArrayValue( iter, - reinterpret_cast<const ford_message_descriptions::ArrayDescription*>(rules), + reinterpret_cast<const ford_message_descriptions::ArrayDescription*>( + rules), param); break; case ford_message_descriptions::ParameterType::Struct: return SetStructValue( iter, - reinterpret_cast<const ford_message_descriptions::StructDescription*>(rules), + reinterpret_cast<const ford_message_descriptions::StructDescription*>( + rules), param); break; case ford_message_descriptions::ParameterType::Enum: @@ -542,8 +554,7 @@ bool DBusAdapter::SetValue( value = &stringValue; break; default: - LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument") - ; + LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument"); return false; } return dbus_message_iter_append_basic(iter, type, value); @@ -552,22 +563,22 @@ bool DBusAdapter::SetValue( bool DBusAdapter::SetOptionalValue( DBusMessageIter* iter, const ford_message_descriptions::ParameterDescription* rules, - const smart_objects::SmartObject ¶m) { + const smart_objects::SmartObject& param) { DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container(iter, DBUS_TYPE_STRUCT, NULL, - &sub_iter)) { + if (!dbus_message_iter_open_container( + iter, DBUS_TYPE_STRUCT, NULL, &sub_iter)) { LOG4CXX_ERROR( logger_, "DBus: Can't open container type (STRUCT) for optional parameter"); return false; } - ford_message_descriptions::ParameterDescription flagRules = { "flag", - ford_message_descriptions::Boolean, true }; - smart_objects::SmartObject flag( - param.getType() != smart_objects::SmartType_Invalid); - if (!SetValue(&sub_iter, &flagRules, flag) - || !SetValue(&sub_iter, rules, param)) { + ford_message_descriptions::ParameterDescription flagRules = { + "flag", ford_message_descriptions::Boolean, true}; + smart_objects::SmartObject flag(param.getType() != + smart_objects::SmartType_Invalid); + if (!SetValue(&sub_iter, &flagRules, flag) || + !SetValue(&sub_iter, rules, param)) { return false; } @@ -585,15 +596,14 @@ bool DBusAdapter::SetArrayValue( const ford_message_descriptions::ArrayDescription* rules, const smart_objects::SmartObject& param) { smart_objects::SmartType type = param.getType(); - if (type != smart_objects::SmartType_Array - && type != smart_objects::SmartType_Invalid) { + if (type != smart_objects::SmartType_Array && + type != smart_objects::SmartType_Invalid) { LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map"); return false; } DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY, - rules->element_dbus_signature, - &sub_iter)) { + if (!dbus_message_iter_open_container( + iter, DBUS_TYPE_ARRAY, rules->element_dbus_signature, &sub_iter)) { LOG4CXX_ERROR(logger_, "DBus: Can't open container type (ARRAY)"); return false; } @@ -615,22 +625,22 @@ bool DBusAdapter::SetStructValue( const ford_message_descriptions::StructDescription* rules, const smart_objects::SmartObject& structure) { smart_objects::SmartType type = structure.getType(); - if (type != smart_objects::SmartType_Map - && type != smart_objects::SmartType_Invalid) { + if (type != smart_objects::SmartType_Map && + type != smart_objects::SmartType_Invalid) { LOG4CXX_ERROR(logger_, "DBus: SmartObject is not a map"); return false; } DBusMessageIter sub_iter; - if (!dbus_message_iter_open_container(iter, DBUS_TYPE_STRUCT, NULL, - &sub_iter)) { + if (!dbus_message_iter_open_container( + iter, DBUS_TYPE_STRUCT, NULL, &sub_iter)) { LOG4CXX_ERROR(logger_, "DBus: Can't open container type (STRUCT)"); return false; } const ParameterDescription** entry; entry = rules->parameters; while (*entry != NULL) { - const smart_objects::SmartObject& param = structure.getElement( - (*entry)->name); + const smart_objects::SmartObject& param = + structure.getElement((*entry)->name); if (!SetOneArgument(&sub_iter, *entry, param)) { return false; } @@ -643,7 +653,8 @@ bool DBusAdapter::SetStructValue( return true; } -bool DBusAdapter::GetHeader(DBusMessageIter* iter, int* code, +bool DBusAdapter::GetHeader(DBusMessageIter* iter, + int* code, std::string* message) { // Get code of response dbus_int32_t intValue; @@ -673,7 +684,8 @@ bool DBusAdapter::GetHeader(DBusMessageIter* iter, int* code, return true; } -bool DBusAdapter::GetArguments(DBusMessageIter* iter, const ListArgs& rules, +bool DBusAdapter::GetArguments(DBusMessageIter* iter, + const ListArgs& rules, smart_objects::SmartObject& args) { LOG4CXX_AUTO_TRACE(logger_); @@ -714,7 +726,8 @@ bool DBusAdapter::GetValue( return GetArrayValue( iter, // FIXME (dchmerev@luxoft.com): not portable, danger cast. - reinterpret_cast<const ford_message_descriptions::ArrayDescription*>(rules), + reinterpret_cast< + const ford_message_descriptions::ArrayDescription*>(rules), param); } else { LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); @@ -725,7 +738,8 @@ bool DBusAdapter::GetValue( if (type == DBUS_TYPE_STRUCT) { return GetStructValue( iter, - reinterpret_cast<const ford_message_descriptions::StructDescription*>(rules), + reinterpret_cast< + const ford_message_descriptions::StructDescription*>(rules), param); } else { LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); @@ -739,7 +753,8 @@ bool DBusAdapter::GetValue( dbus_message_iter_get_basic(iter, &integerValue); smart_objects::SmartObject value(integerValue); param = value; - LOG4CXX_DEBUG(logger_, "DBus: " << rules->name << " = " << integerValue); + LOG4CXX_DEBUG(logger_, + "DBus: " << rules->name << " = " << integerValue); } else { LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); return false; @@ -763,9 +778,9 @@ bool DBusAdapter::GetValue( dbus_message_iter_get_basic(iter, &booleanValue); smart_objects::SmartObject value(static_cast<bool>(booleanValue)); param = value; - LOG4CXX_DEBUG( - logger_, - "DBus: " << rules->name << " = " << std::boolalpha << booleanValue); + LOG4CXX_DEBUG(logger_, + "DBus: " << rules->name << " = " << std::boolalpha + << booleanValue); } else { LOG4CXX_ERROR(logger_, "DBus: Not expected type of argument"); return false; @@ -786,8 +801,7 @@ bool DBusAdapter::GetValue( } break; default: - LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument") - ; + LOG4CXX_ERROR(logger_, "DBus: Unknown type of argument"); return false; } return true; @@ -817,7 +831,6 @@ bool DBusAdapter::GetStructValue( DBusMessageIter* iter, const ford_message_descriptions::StructDescription* rules, smart_objects::SmartObject& param) { - DBusMessageIter sub_iter; dbus_message_iter_recurse(iter, &sub_iter); const ParameterDescription** entry; @@ -840,14 +853,16 @@ bool DBusAdapter::GetOptionalValue( smart_objects::SmartObject& param) { int type = dbus_message_iter_get_arg_type(iter); if (type != DBUS_TYPE_STRUCT) { - LOG4CXX_WARN(logger_, "DBus: Not expected type of argument. It is not optional parameter."); + LOG4CXX_WARN( + logger_, + "DBus: Not expected type of argument. It is not optional parameter."); return false; } DBusMessageIter sub_iter; dbus_message_iter_recurse(iter, &sub_iter); - ford_message_descriptions::ParameterDescription flagRules = { "flag", - ford_message_descriptions::Boolean, true }; + ford_message_descriptions::ParameterDescription flagRules = { + "flag", ford_message_descriptions::Boolean, true}; smart_objects::SmartObject flag; if (!GetValue(&sub_iter, &flagRules, flag)) { return false; @@ -877,7 +892,7 @@ void DBusAdapter::SaveRequestToHMI(uint32_t serial, } void DBusAdapter::Introspect(DBusMessage* msg) { - DBusMessage *reply; + DBusMessage* reply; dbus_uint32_t serial = dbus_message_get_serial(msg); reply = dbus_message_new_method_return(msg); @@ -907,7 +922,7 @@ DBusMessage* DBusAdapter::GetRequestFromHMI(uint32_t serial) { std::map<uint32_t, DBusMessage*>::iterator it; it = requests_from_hmi_.find(serial); if (it != requests_from_hmi_.end()) { - DBusMessage *msg = it->second; + DBusMessage* msg = it->second; requests_from_hmi_.erase(it); LOG4CXX_DEBUG(logger_, "D-Bus message: " << msg); return msg; diff --git a/src/components/dbus/src/dbus_message.cc b/src/components/dbus/src/dbus_message.cc index 702e44f801..b8a55896ce 100644 --- a/src/components/dbus/src/dbus_message.cc +++ b/src/components/dbus/src/dbus_message.cc @@ -38,12 +38,10 @@ namespace dbus { -MessageRefKeeper::MessageRefKeeper() - : raw_message_(NULL) { -} +MessageRefKeeper::MessageRefKeeper() : raw_message_(NULL) {} MessageRefKeeper::MessageRefKeeper(DBusMessage* message) - : raw_message_(message) { + : raw_message_(message) { assert(raw_message_); dbus_message_ref(raw_message_); } @@ -55,7 +53,7 @@ MessageRefKeeper::~MessageRefKeeper() { } MessageRefKeeper::MessageRefKeeper(const MessageRefKeeper& other) - : raw_message_(other.raw_message_) { + : raw_message_(other.raw_message_) { assert(raw_message_); dbus_message_ref(raw_message_); } @@ -79,13 +77,9 @@ void MessageRefKeeper::swap(MessageRefKeeper& other) { std::swap(raw_message_, other.raw_message_); } +MessageRef::MessageRef(DBusMessage* message) : raw_message_ref_(message) {} -MessageRef::MessageRef(DBusMessage* message) - : raw_message_ref_(message) { -} - -MessageRef::~MessageRef(){ -} +MessageRef::~MessageRef() {} std::string MessageRef::GetInterface() const { return dbus_message_get_interface(raw_message_ref_.get()); @@ -97,11 +91,9 @@ std::string MessageRef::GetMember() const { // Message writer MessageReader::MessageReader(const MessageRef& message) - : parent_reader_(NULL), - failed_(false) { + : parent_reader_(NULL), failed_(false) { dbus_bool_t success = - dbus_message_iter_init(message.raw_message_ref_.get(), - &iterator_); + dbus_message_iter_init(message.raw_message_ref_.get(), &iterator_); if (!success) { MarkFailed(); } @@ -109,8 +101,7 @@ MessageReader::MessageReader(const MessageRef& message) MessageReader::MessageReader(MessageReader* reader, DataType container_data_type) - : parent_reader_(reader), - failed_(reader->has_failed()) { + : parent_reader_(reader), failed_(reader->has_failed()) { assert(parent_reader_); if (!failed_) { if (reader->NextValueType() != container_data_type) { @@ -122,12 +113,10 @@ MessageReader::MessageReader(MessageReader* reader, } } - bool MessageReader::NextIsDictEntry() const { return NextValueType() == DBUS_TYPE_DICT_ENTRY; } - MessageReader MessageReader::TakeArrayReader() { return MessageReader(this, DBUS_TYPE_ARRAY); } @@ -156,8 +145,7 @@ void MessageReader::MarkFailed() { } } -void MessageReader::ReadNextValue(MessageReader::DataType type, - void* value) { +void MessageReader::ReadNextValue(MessageReader::DataType type, void* value) { assert(value); if (NextValueType() != type) { MarkFailed(); @@ -169,28 +157,21 @@ void MessageReader::ReadNextValue(MessageReader::DataType type, // DbusMessageWriter MessageWriter::MessageWriter(const MessageRef& message) - : has_opened_subcontainer_(false), - parent_writer_(NULL) { - dbus_message_iter_init_append(message.raw_message_ref_.get(), - &iterator_); -} - -MessageWriter::MessageWriter( - MessageWriter* parent, - ContainerType container_type, - const char* array_signature) - : has_opened_subcontainer_(false), - parent_writer_(parent) { + : has_opened_subcontainer_(false), parent_writer_(NULL) { + dbus_message_iter_init_append(message.raw_message_ref_.get(), &iterator_); +} + +MessageWriter::MessageWriter(MessageWriter* parent, + ContainerType container_type, + const char* array_signature) + : has_opened_subcontainer_(false), parent_writer_(parent) { assert(parent_writer_); // Only array writers require array_signature - assert((container_type == kArray && array_signature != NULL) - || (container_type != kArray && array_signature == NULL)); + assert((container_type == kArray && array_signature != NULL) || + (container_type != kArray && array_signature == NULL)); assert(!parent_writer_->has_opened_subcontainer_); - bool enough_memory = - dbus_message_iter_open_container(&parent_writer_->iterator_, - container_type, - array_signature, - &iterator_); + bool enough_memory = dbus_message_iter_open_container( + &parent_writer_->iterator_, container_type, array_signature, &iterator_); assert(enough_memory); parent_writer_->has_opened_subcontainer_ = true; } @@ -202,8 +183,8 @@ MessageWriter::~MessageWriter() { } } -void MessageWriter::WriteAndCheck( - MessageWriter::DataType value_type, const void* value) { +void MessageWriter::WriteAndCheck(MessageWriter::DataType value_type, + const void* value) { assert(!has_opened_subcontainer_); dbus_bool_t enough_memory = dbus_message_iter_append_basic(&iterator_, value_type, value); @@ -214,8 +195,7 @@ void MessageWriter::CloseWriter() { assert(parent_writer_); assert(parent_writer_->has_opened_subcontainer_); dbus_bool_t enough_memory = - dbus_message_iter_close_container(&parent_writer_->iterator_, - &iterator_); + dbus_message_iter_close_container(&parent_writer_->iterator_, &iterator_); assert(enough_memory); parent_writer_->has_opened_subcontainer_ = false; } @@ -226,18 +206,12 @@ MessageRef MethodCall(const char* bus_name, const char* path, const char* interface, const char* method) { - return MessageRef(dbus_message_new_method_call( - bus_name, - path, - interface, - method)); + return MessageRef( + dbus_message_new_method_call(bus_name, path, interface, method)); } -MessageRef Signal(const char* path, - const char* interface, - const char* name) { +MessageRef Signal(const char* path, const char* interface, const char* name) { return MessageRef(dbus_message_new_signal(path, interface, name)); } - -} // namespace dbus +} // namespace dbus diff --git a/src/components/dbus/src/dbus_message_controller.cc b/src/components/dbus/src/dbus_message_controller.cc index 56efe67905..166037e900 100644 --- a/src/components/dbus/src/dbus_message_controller.cc +++ b/src/components/dbus/src/dbus_message_controller.cc @@ -41,22 +41,30 @@ DBusMessageController::DBusMessageController(const std::string& sdlServiceName, const std::string& sdlObjectPath, const std::string& hmiServiceName, const std::string& hmiObjectPath) - : DBusAdapter(sdlServiceName, sdlObjectPath, - hmiServiceName, hmiObjectPath) {} + : DBusAdapter( + sdlServiceName, sdlObjectPath, hmiServiceName, hmiObjectPath) {} void DBusMessageController::SubscribeTo(const std::string& interface, const std::string& signal) { std::string rule = "type='signal'"; - rule.append(", sender='").append(hmi_service_name_).append("'") - .append(", path='").append(hmi_object_path_).append("'") - .append(", interface='").append(hmi_service_name_).append(".") - .append(interface).append("'") - .append(", member='").append(signal).append("'"); + rule.append(", sender='") + .append(hmi_service_name_) + .append("'") + .append(", path='") + .append(hmi_object_path_) + .append("'") + .append(", interface='") + .append(hmi_service_name_) + .append(".") + .append(interface) + .append("'") + .append(", member='") + .append(signal) + .append("'"); DBusAdapter::AddMatch(rule); } -DBusMessageController::~DBusMessageController() { -} +DBusMessageController::~DBusMessageController() {} void* DBusMessageController::MethodForReceiverThread(void*) { while (true) { diff --git a/src/components/dbus/src/schema.cc b/src/components/dbus/src/schema.cc index 157479928d..3107d9ce6c 100644 --- a/src/components/dbus/src/schema.cc +++ b/src/components/dbus/src/schema.cc @@ -44,35 +44,32 @@ struct Description { }; struct IsId : public std::unary_function<const Description*, bool> { - explicit IsId(MessageId id) - : id_(id) { - } + explicit IsId(MessageId id) : id_(id) {} bool operator()(const Description* desc) { return desc->id == id_; } + private: MessageId id_; }; struct IsName : public std::unary_function<const Description*, bool> { - explicit IsName(const MessageName& name) - : name_(name) { - } + explicit IsName(const MessageName& name) : name_(name) {} bool operator()(const Description* desc) { return desc->name == name_; } + private: MessageName name_; }; struct IsIdType : public std::unary_function<const Description*, bool> { explicit IsIdType(const MessageId& id, const MessageType& type) - : id_(id), - type_(type) { - } + : id_(id), type_(type) {} bool operator()(const Description* desc) { return desc->id == id_ && desc->type == type_; } + private: MessageId id_; MessageType type_; @@ -80,12 +77,11 @@ struct IsIdType : public std::unary_function<const Description*, bool> { struct IsNameType : public std::unary_function<const Description*, bool> { explicit IsNameType(const MessageName& name, const MessageType& type) - : name_(name), - type_(type) { - } + : name_(name), type_(type) {} bool operator()(const Description* desc) { return desc->name == name_ && desc->type == type_; } + private: MessageName name_; MessageType type_; @@ -94,7 +90,7 @@ struct IsNameType : public std::unary_function<const Description*, bool> { DBusSchema::DBusSchema(const MessageDescription** array) { const MessageDescription** msg = array; while (*msg != NULL) { - Description *desc = new Description(); + Description* desc = new Description(); desc->id = (*msg)->function_id; desc->name = std::make_pair((*msg)->interface, (*msg)->name); desc->type = (*msg)->message_type; @@ -110,8 +106,8 @@ DBusSchema::DBusSchema(const MessageDescription** array) { } MessageName DBusSchema::getMessageName(MessageId id) const { - Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), - IsId(id)); + Messages::const_iterator it = + std::find_if(msgs_.begin(), msgs_.end(), IsId(id)); if (msgs_.end() != it) { return (*it)->name; } @@ -119,8 +115,8 @@ MessageName DBusSchema::getMessageName(MessageId id) const { } MessageId DBusSchema::getMessageId(const MessageName& name) const { - Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), - IsName(name)); + Messages::const_iterator it = + std::find_if(msgs_.begin(), msgs_.end(), IsName(name)); if (msgs_.end() != it) { return (*it)->id; } @@ -128,8 +124,8 @@ MessageId DBusSchema::getMessageId(const MessageName& name) const { } ListArgs DBusSchema::getListArgs(MessageId id, MessageType type) const { - Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), - IsIdType(id, type)); + Messages::const_iterator it = + std::find_if(msgs_.begin(), msgs_.end(), IsIdType(id, type)); if (msgs_.end() != it) { return (*it)->args; } @@ -138,8 +134,8 @@ ListArgs DBusSchema::getListArgs(MessageId id, MessageType type) const { ListArgs DBusSchema::getListArgs(const MessageName& name, MessageType type) const { - Messages::const_iterator it = std::find_if(msgs_.begin(), msgs_.end(), - IsNameType(name, type)); + Messages::const_iterator it = + std::find_if(msgs_.begin(), msgs_.end(), IsNameType(name, type)); if (msgs_.end() != it) { return (*it)->args; } diff --git a/src/components/dbus/test/test_dbus_adapter.cc b/src/components/dbus/test/test_dbus_adapter.cc index c5922dfdcb..74a6de1aa9 100644 --- a/src/components/dbus/test/test_dbus_adapter.cc +++ b/src/components/dbus/test/test_dbus_adapter.cc @@ -42,20 +42,18 @@ namespace test { namespace components { namespace dbus { -class DBusAdapterTest : public ::testing::Test { -}; +class DBusAdapterTest : public ::testing::Test {}; TEST_F(DBusAdapterTest, Initialization) { const std::string kSdlServiceName = "test.ford.sdl.core"; const std::string kSdlObjectPath = "/"; const std::string kHmiServiceName = "test.ford.sdl.hmi"; const std::string kHmiObjectPath = "/"; - ::dbus::DBusAdapter adapter(kSdlServiceName, kSdlObjectPath, - kHmiServiceName, kHmiObjectPath); + ::dbus::DBusAdapter adapter( + kSdlServiceName, kSdlObjectPath, kHmiServiceName, kHmiObjectPath); EXPECT_TRUE(adapter.Init()); } } // namespace dbus } // namespace components } // namespace test - diff --git a/src/components/dbus/test/test_schema.cc b/src/components/dbus/test/test_schema.cc index ecbd4b1bfd..37831279b9 100644 --- a/src/components/dbus/test/test_schema.cc +++ b/src/components/dbus/test/test_schema.cc @@ -103,7 +103,8 @@ TEST_F(DBusSchemaTest, GetListArg) { const MessageId kIdWrong = static_cast<const MessageId>(test_negative_value); const MessageName kNameWrong("TestInterface", "TestMessage"); - const MessageType kTypeWrong = static_cast<const MessageType>(test_negative_value); + const MessageType kTypeWrong = + static_cast<const MessageType>(test_negative_value); const ListArgs kExpListWrong; argsName = schema_->getListArgs(kNameWrong, kTypeWrong); EXPECT_EQ(kExpListWrong, argsName); @@ -115,5 +116,3 @@ TEST_F(DBusSchemaTest, GetListArg) { } // namespace dbus } // namespace components } // namespace test - - diff --git a/src/components/formatters/include/formatters/CFormatterJsonBase.h b/src/components/formatters/include/formatters/CFormatterJsonBase.h index ef57d9b1b9..be4ee3e2cc 100644 --- a/src/components/formatters/include/formatters/CFormatterJsonBase.h +++ b/src/components/formatters/include/formatters/CFormatterJsonBase.h @@ -43,80 +43,77 @@ namespace NsJSONHandler { namespace Formatters { namespace meta_formatter_error_code { - /** - * @brief Error codes of MetaFormatter represented as bitmask - **/ - typedef long tMetaFormatterErrorCode ; +/** + * @brief Error codes of MetaFormatter represented as bitmask + **/ +typedef long tMetaFormatterErrorCode; - /** - * @brief OK, no error - */ - static const tMetaFormatterErrorCode kErrorOk = 0x0; +/** + * @brief OK, no error + */ +static const tMetaFormatterErrorCode kErrorOk = 0x0; + +/** + * @brief origin smart object is not function + */ +static const tMetaFormatterErrorCode kErrorObjectIsNotFunction = 0x01; +/** + * @brief smart shema describes object which is not function + */ +static const tMetaFormatterErrorCode kErrorSchemaIsNotFunction = 0x02; + +/** + * @brief result smart object has invalid type (SmartType_Invalid) + * before passing to MetaFormatter, i.e. result object can not + * be changed, i.e. result object can not be built + * + */ +static const tMetaFormatterErrorCode kErrorFailedCreateObjectBySchema = 0x04; +} + +/** + * @brief The base class for all JSON based formatters. + */ +class CFormatterJsonBase { + private: /** - * @brief origin smart object is not function - */ - static const tMetaFormatterErrorCode kErrorObjectIsNotFunction = 0x01; + * @brief Constructor. + */ + CFormatterJsonBase(); /** - * @brief smart shema describes object which is not function - */ - static const tMetaFormatterErrorCode kErrorSchemaIsNotFunction = 0x02; + * @brief Copy constructor. + * + * @param obj Object to copy. + */ + CFormatterJsonBase(const CFormatterJsonBase& obj); + + protected: + public: + /** + * @brief The method constructs a SmartObject from the input JSON object + * + * @param value Input JSON object. + * @param obj The resulting SmartObject. + */ + static void jsonValueToObj( + const Json::Value& value, + NsSmartDeviceLink::NsSmartObjects::SmartObject& obj); /** - * @brief result smart object has invalid type (SmartType_Invalid) - * before passing to MetaFormatter, i.e. result object can not - * be changed, i.e. result object can not be built + * @brief The method constructs a JSON object from the input SmartObject * + * @param obj Input SmartObject. Can contain a complex structure of objects. + * @param value The resulting JSON object. It has the same structure as the + *input SmartObject. */ - static const tMetaFormatterErrorCode kErrorFailedCreateObjectBySchema = 0x04; -} - - /** - * @brief The base class for all JSON based formatters. - */ - class CFormatterJsonBase - { - private: - - /** - * @brief Constructor. - */ - CFormatterJsonBase(); - - /** - * @brief Copy constructor. - * - * @param obj Object to copy. - */ - CFormatterJsonBase(const CFormatterJsonBase &obj); - - protected: - - - public: - - /** - * @brief The method constructs a SmartObject from the input JSON object - * - * @param value Input JSON object. - * @param obj The resulting SmartObject. - */ - static void jsonValueToObj(const Json::Value &value, - NsSmartDeviceLink::NsSmartObjects::SmartObject &obj); - - /** - * @brief The method constructs a JSON object from the input SmartObject - * - * @param obj Input SmartObject. Can contain a complex structure of objects. - * @param value The resulting JSON object. It has the same structure as the input SmartObject. - */ - static void objToJsonValue(const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj, - Json::Value &value); - }; - + static void objToJsonValue( + const NsSmartDeviceLink::NsSmartObjects::SmartObject& obj, + Json::Value& value); +}; } } -} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters +} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters -#endif // __CFORMATTERJSONBASE_HPP__ +#endif // __CFORMATTERJSONBASE_HPP__ diff --git a/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.h b/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.h index 99f0a265e3..e78a115f6c 100644 --- a/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.h +++ b/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv1.h @@ -111,14 +111,15 @@ class CFormatterJsonSDLRPCv1 : public CFormatterJsonBase { static const std::string S_CORRELATION_ID; public: - static const int32_t kSuccess; static const int32_t kParsingError; static const int32_t kFunctionIdNotFound; static const int32_t kMessageTypeNotFound; static const int32_t kCorrelationIdNotFound; - typedef NsSmartDeviceLink::NsJSONHandler::Formatters::meta_formatter_error_code::tMetaFormatterErrorCode tMetaFormatterErrorCode; + typedef NsSmartDeviceLink::NsJSONHandler::Formatters:: + meta_formatter_error_code::tMetaFormatterErrorCode + tMetaFormatterErrorCode; /** * @brief Creates a JSON string from a SmartObject. @@ -128,7 +129,7 @@ class CFormatterJsonSDLRPCv1 : public CFormatterJsonBase { * @return true if success, false otherwise */ static bool toString( - const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& obj, std::string& outStr); /** @@ -138,15 +139,17 @@ class CFormatterJsonSDLRPCv1 : public CFormatterJsonBase { * @param out The resulting SmartObject * @return true if success, otherwise - false */ - template<typename FunctionId, typename MessageType> - static int32_t fromString(const std::string &str, - NsSmartDeviceLink::NsSmartObjects::SmartObject &out); + template <typename FunctionId, typename MessageType> + static int32_t fromString( + const std::string& str, + NsSmartDeviceLink::NsSmartObjects::SmartObject& out); /** * @brief Converts to string the smart object against the given schema * * @param object Original smart object - * @param schema Smart schema which describes 'fake' smart object to be formatted + * @param schema Smart schema which describes 'fake' smart object to be + *formatted * @param outStr Resulting JSON string * @return formatting error code */ @@ -154,12 +157,11 @@ class CFormatterJsonSDLRPCv1 : public CFormatterJsonBase { const NsSmartDeviceLink::NsSmartObjects::SmartObject& object, const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema, std::string& outStr); - }; // ---------------------------------------------------------------------------- -template<typename FunctionId, typename MessageType> +template <typename FunctionId, typename MessageType> int32_t Formatters::CFormatterJsonSDLRPCv1::fromString( const std::string& str, NsSmartDeviceLink::NsSmartObjects::SmartObject& out) { @@ -171,15 +173,15 @@ int32_t Formatters::CFormatterJsonSDLRPCv1::fromString( std::string type; if (false == reader.parse(str, root)) { - result = kParsingError | kMessageTypeNotFound | kFunctionIdNotFound - | kCorrelationIdNotFound; + result = kParsingError | kMessageTypeNotFound | kFunctionIdNotFound | + kCorrelationIdNotFound; } if (kSuccess == result) { type = getMessageType(root); if (true == type.empty()) { - result = kMessageTypeNotFound | kFunctionIdNotFound - | kCorrelationIdNotFound; + result = + kMessageTypeNotFound | kFunctionIdNotFound | kCorrelationIdNotFound; } } @@ -187,16 +189,18 @@ int32_t Formatters::CFormatterJsonSDLRPCv1::fromString( MessageType messageType = MessageType::INVALID_ENUM; if (kSuccess == result) { - if (!NsSmartObjects::EnumConversionHelper<MessageType>::StringToEnum(type, &messageType)) { - // If MessageType is not found than FunctionId and CorrelationId can not be found either - result = kMessageTypeNotFound | kFunctionIdNotFound - | kCorrelationIdNotFound; + if (!NsSmartObjects::EnumConversionHelper<MessageType>::StringToEnum( + type, &messageType)) { + // If MessageType is not found than FunctionId and CorrelationId can not + // be found either + result = + kMessageTypeNotFound | kFunctionIdNotFound | kCorrelationIdNotFound; } } if (kSuccess == result) { - if (!NsSmartObjects::EnumConversionHelper<FunctionId>::StringToEnum(root[type][S_NAME].asString(), - &functionId)) { + if (!NsSmartObjects::EnumConversionHelper<FunctionId>::StringToEnum( + root[type][S_NAME].asString(), &functionId)) { result = kFunctionIdNotFound; functionId = FunctionId::INVALID_ENUM; } @@ -210,13 +214,14 @@ int32_t Formatters::CFormatterJsonSDLRPCv1::fromString( out[S::S_PARAMS][S::S_MESSAGE_TYPE] = messageType; out[S::S_PARAMS][S::S_FUNCTION_ID] = functionId; if (true == root[type][S_CORRELATION_ID].empty()) { - if (type != S_NOTIFICATION) { // Notification may not have CorrelationId + if (type != + S_NOTIFICATION) { // Notification may not have CorrelationId result |= kCorrelationIdNotFound; out[S::S_PARAMS][S::S_CORRELATION_ID] = -1; } } else { - out[S::S_PARAMS][S::S_CORRELATION_ID] = root[type][S_CORRELATION_ID] - .asInt(); + out[S::S_PARAMS][S::S_CORRELATION_ID] = + root[type][S_CORRELATION_ID].asInt(); } out[S::S_PARAMS][S::S_PROTOCOL_TYPE] = 0; out[S::S_PARAMS][S::S_PROTOCOL_VERSION] = 1; @@ -227,9 +232,8 @@ int32_t Formatters::CFormatterJsonSDLRPCv1::fromString( return result; } - } } } // namespace NsSmartDeviceLink::NsJSONHandler::Formatters -#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV1_HPP__ +#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV1_HPP__ diff --git a/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.h b/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.h index 2d62fe2fcb..a260ecd080 100644 --- a/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.h +++ b/src/components/formatters/include/formatters/CFormatterJsonSDLRPCv2.h @@ -49,7 +49,6 @@ namespace Formatters { */ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { private: - /** * @brief Hidden constructor. * @@ -65,8 +64,9 @@ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { CFormatterJsonSDLRPCv2(const CFormatterJsonSDLRPCv2&); public: - - typedef NsSmartDeviceLink::NsJSONHandler::Formatters::meta_formatter_error_code::tMetaFormatterErrorCode tMetaFormatterErrorCode; + typedef NsSmartDeviceLink::NsJSONHandler::Formatters:: + meta_formatter_error_code::tMetaFormatterErrorCode + tMetaFormatterErrorCode; /** * @brief Creates a JSON string from a SmartObject. @@ -76,7 +76,7 @@ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { * @return true if success, false otherwise */ static bool toString( - const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj, + const NsSmartDeviceLink::NsSmartObjects::SmartObject& obj, std::string& outStr); /** @@ -84,14 +84,17 @@ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { * * @param str Input JSON string in SDLRPCv2 format * @param out Output SmartObject - * @param functionId The corresponding field in SmartObject is filled with this param. - * @param messageType The corresponding field in SmartObject is filled with this param. + * @param functionId The corresponding field in SmartObject is filled with + *this param. + * @param messageType The corresponding field in SmartObject is filled with + *this param. * @return true if success, otherwise - false */ - template<typename FunctionId, typename MessageType> - static bool fromString(const std::string &str, - NsSmartDeviceLink::NsSmartObjects::SmartObject &out, - FunctionId functionId, MessageType messageType); + template <typename FunctionId, typename MessageType> + static bool fromString(const std::string& str, + NsSmartDeviceLink::NsSmartObjects::SmartObject& out, + FunctionId functionId, + MessageType messageType); /** * @brief Creates a SmartObject from a JSON string. @@ -100,23 +103,28 @@ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { * * @param str Input JSON string in SDLRPCv2 format * @param out Output SmartObject - * @param functionId The corresponding field in SmartObject is filled with this param. - * @param messageType The corresponding field in SmartObject is filled with this param. - * @param correlatioId It's like sequence number. The corresponding field in SmartObject + * @param functionId The corresponding field in SmartObject is filled with + *this param. + * @param messageType The corresponding field in SmartObject is filled with + *this param. + * @param correlatioId It's like sequence number. The corresponding field in + *SmartObject * is filled with this param. * @return true if success, otherwise - false */ - template<typename FunctionId, typename MessageType> - static bool fromString(const std::string &str, - NsSmartDeviceLink::NsSmartObjects::SmartObject &out, - FunctionId functionId, MessageType messageType, + template <typename FunctionId, typename MessageType> + static bool fromString(const std::string& str, + NsSmartDeviceLink::NsSmartObjects::SmartObject& out, + FunctionId functionId, + MessageType messageType, int32_t correlationId); /** * @brief Converts to string the smart object against the given schema * * @param object Original smart object - * @param schema Smart schema which describes 'fake' smart object to be formatted + * @param schema Smart schema which describes 'fake' smart object to be + *formatted * @param outStr Resulting JSON string * @return formatting error code */ @@ -126,10 +134,12 @@ class CFormatterJsonSDLRPCv2 : public CFormatterJsonBase { std::string& outStr); }; -template<typename FunctionId, typename MessageType> +template <typename FunctionId, typename MessageType> inline bool CFormatterJsonSDLRPCv2::fromString( - const std::string& str, NsSmartDeviceLink::NsSmartObjects::SmartObject& out, - FunctionId functionId, MessageType messageType) { + const std::string& str, + NsSmartDeviceLink::NsSmartObjects::SmartObject& out, + FunctionId functionId, + MessageType messageType) { bool result = true; try { @@ -154,11 +164,13 @@ inline bool CFormatterJsonSDLRPCv2::fromString( return result; } -template<typename FunctionId, typename MessageType> +template <typename FunctionId, typename MessageType> inline bool CFormatterJsonSDLRPCv2::fromString( - const std::string& str, NsSmartDeviceLink::NsSmartObjects::SmartObject& out, - FunctionId functionId, MessageType messageType, int32_t correlationId) { - + const std::string& str, + NsSmartDeviceLink::NsSmartObjects::SmartObject& out, + FunctionId functionId, + MessageType messageType, + int32_t correlationId) { bool result = fromString(str, out, functionId, messageType); namespace strings = NsSmartDeviceLink::NsJSONHandler::strings; @@ -168,9 +180,8 @@ inline bool CFormatterJsonSDLRPCv2::fromString( return result; } - } } } // namespace NsSmartDeviceLink::NsJSONHandler::Formatters -#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV2_HPP__ +#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS__CFORMATTERJSONSDLRPCV2_HPP__ diff --git a/src/components/formatters/include/formatters/CSmartFactory.h b/src/components/formatters/include/formatters/CSmartFactory.h index 55f9a30385..223d22fbbe 100644 --- a/src/components/formatters/include/formatters/CSmartFactory.h +++ b/src/components/formatters/include/formatters/CSmartFactory.h @@ -40,389 +40,371 @@ #include <map> #include <string> -namespace NsSmartDeviceLink -{ - namespace NsJSONHandler - { - /** - * @brief String constants used by SmartFactory. - */ - namespace strings - { - /** - * @brief String constant for MSG_PARAMS. - */ - extern const std::string S_MSG_PARAMS; - - /** - * @brief String constant for PARAMS. - */ - extern const std::string S_PARAMS; - - /** - * @brief String constant for FUNCTION_ID. - */ - extern const std::string S_FUNCTION_ID; - - /** - * @brief String constant for MESSAGE_TYPE. - */ - extern const std::string S_MESSAGE_TYPE; - - /** - * @brief String constant for PROTOCOL_VERSION. - */ - extern const std::string S_PROTOCOL_VERSION; - - /** - * @brief String constant for PROTOCOL_TYPE. - */ - extern const std::string S_PROTOCOL_TYPE; - - /** - * @brief String constant for CORRELATION_ID. - */ - extern const std::string S_CORRELATION_ID; - - /** - * @brief String constant for "code" param name. - */ - extern const std::string kCode; - - /** - * @brief String constant for "message" param name. - */ - extern const std::string kMessage; - } - - /** - * @brief Smart Schema key. - * - * @tparam FunctionIdEnum Type of function ID enum. - * @tparam MessageTypeEnum Type of messageType enum. - */ - template <class FunctionIdEnum, class MessageTypeEnum> - struct SmartSchemaKey - { - /** - * @brief Value of function ID for the key. - */ - FunctionIdEnum functionId; - - /** - * @brief Value of messageType for the key. - */ - MessageTypeEnum messageType; - - /** - * @brief Constructor. - * - * @param functionIdParam Value of function ID. - * @param messageTypeParam Value of message type. - */ - SmartSchemaKey(FunctionIdEnum functionIdParam, MessageTypeEnum messageTypeParam); - }; - - /** - * @brief Smart Factory. - * - * This class is used as base class for generated factories. - * Clients should use methods of this class to access all - * SmartSchema validation features. - * - * @tparam FunctionIdEnum Type of function ID enum. - * @tparam MessageTypeEnum Type of messageType enum. - * @tparam StructIdEnum Type of StructId enum. - */ - template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> - class CSmartFactory - { - public: - - /** - * @brief Constructor. - */ - CSmartFactory(void); - - /** - * @brief Attach schema to the function SmartObject. - * - * @param object SmartObject to attach schema for. - * - * @param RemoveFakeParameters contains true if need - * to remove fake parameters from smart object otherwise contains false. - * - * @return True if operation was successful or false otherwise. - */ - bool attachSchema(NsSmartDeviceLink::NsSmartObjects::SmartObject& object, - const bool RemoveFakeParameters); - - /** - * @brief Attach schema to the struct SmartObject. - * - * @param struct_id Identifier of the struct. - * @param object SmartObject to attach schema for. - * - * @return True if operation was successful of false otherwise. - */ - bool AttachSchema(const StructIdEnum struct_id, - NsSmartDeviceLink::NsSmartObjects::SmartObject &object); - - - /** - * @brief Create new SmartObject with attached function SmartSchema. - * - * @param function_id FunctionID of the function. - * @param message_type messageType of the function. - * - * @return If function succeeded it returns new SmartObject with - * map type and attached SmartSchema. Client can use such - * object to store specific function and perform validation. - * Otherwise (if SmartSchema was not attached to the - * SmartObject) function returns empty SmartObject with - * null type. - */ - NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject( - const FunctionIdEnum function_id, - const MessageTypeEnum message_type); - - /** - * @brief Create new SmartObject with attached struct SmartSchema. - * - * @param struct_id Identifier of the struct. - * - * @return If function succeeded it returns new SmartObject with - * map type and attached SmartSchema. Client can use such - * object to store specific struct and perform validation. - * Otherwise (if SmartSchema was not attached to the - * SmartObject) function returns empty SmartObject with - * null type. - */ - NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject( - const StructIdEnum struct_id); - - /** - * @brief Get SmartSchema for specific function. - * - * @param function_id FunctionID of the function. - * @param message_type messageType of the function. - * @param[out] result This value will be copy of the desired - * function SmartSchema if it found (this - * function returns true) or unmodified if - * SmartSchema is not found (this function - * returns false). - * - * @return True if function schema for specified input parameters - * is found or false otherwise. - */ - bool GetSchema( - const FunctionIdEnum function_id, - const MessageTypeEnum message_type, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result); - - /** - * @brief Get SmartSchema for specific struct. - * - * @param struct_id Identifier of the struct. - * - * @param[out] result This value will be copy of the desired - * struct SmartSchema if it found (this - * function returns true) or unmodified if - * SmartSchema is not found (this function - * returns false). - * - * @return True if struct schema for specified input parameter is - * found or false otherwise. - */ - bool GetSchema( - const StructIdEnum struct_id, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result); - - protected: - - /** - * @brief Defines map of SmartSchemaKeys to the SmartSchemes. - * - * This container type should be used to store SmartSchemes of - * functions. - */ - typedef std::map<SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema> - FuncionsSchemesMap; - - /** - * @brief Defines map of StructIdEnum to the SmartSchemes. - * - * This container type should be used to store SmartSchemes of - * structs. - */ - typedef std::map<StructIdEnum, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema> - StructsSchemesMap; - - /** - * @brief Map of all function schemes for this factory. - */ - FuncionsSchemesMap functions_schemes_; - - /** - * @brief Map of all struct shemes for this factory. - */ - StructsSchemesMap structs_schemes_; - }; - - template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> - CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::CSmartFactory(void) - : functions_schemes_(), - structs_schemes_() - { - } - - template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> - bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - attachSchema(NsSmartDeviceLink::NsSmartObjects::SmartObject &object, - const bool RemoveFakeParameters) - { - if(false == object.keyExists(strings::S_PARAMS)) return false; - if(false == object[strings::S_PARAMS].keyExists(strings::S_MESSAGE_TYPE)) return false; - if(false == object[strings::S_PARAMS].keyExists(strings::S_FUNCTION_ID)) return false; - - MessageTypeEnum msgtype((MessageTypeEnum)object[strings::S_PARAMS][strings::S_MESSAGE_TYPE].asInt()); - FunctionIdEnum fid((FunctionIdEnum)object[strings::S_PARAMS][strings::S_FUNCTION_ID].asInt()); - - SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(fid, msgtype); - - typename FuncionsSchemesMap::iterator schemaIterator = functions_schemes_.find(key); - - if(schemaIterator == functions_schemes_.end()) - { - // Schema was not found - return false; - } - - object.setSchema(schemaIterator->second); - schemaIterator->second.applySchema(object, RemoveFakeParameters); - - return true; - } - - template <class FunctionIdEnum, - class MessageTypeEnum, - class StructIdEnum> - bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - AttachSchema( - const StructIdEnum struct_id, - NsSmartDeviceLink::NsSmartObjects::SmartObject &object) { - typename StructsSchemesMap::iterator structs_iterator = - structs_schemes_.find(struct_id); - - if (structs_iterator == structs_schemes_.end()) { - return false; - } - - object.setSchema(structs_iterator->second); - structs_iterator->second.applySchema(object, false); - - return true; - } - - template <class FunctionIdEnum, - class MessageTypeEnum, - class StructIdEnum> - NsSmartDeviceLink::NsSmartObjects::SmartObject - CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - CreateSmartObject( - const FunctionIdEnum function_id, - const MessageTypeEnum message_type) { - SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key( - function_id, message_type); - - typename FuncionsSchemesMap::iterator schema_iterator = - functions_schemes_.find(key); - - if(schema_iterator != functions_schemes_.end()) { - NsSmartDeviceLink::NsSmartObjects::SmartObject function_object( - NsSmartDeviceLink::NsSmartObjects::SmartType_Map); - function_object.setSchema(schema_iterator->second); - schema_iterator->second.applySchema(function_object, false); - return function_object; - } - - return NsSmartDeviceLink::NsSmartObjects::SmartObject(); - } - - template <class FunctionIdEnum, - class MessageTypeEnum, - class StructIdEnum> - NsSmartDeviceLink::NsSmartObjects::SmartObject - CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - CreateSmartObject(const StructIdEnum struct_id) { - NsSmartDeviceLink::NsSmartObjects::SmartObject struct_object( - NsSmartDeviceLink::NsSmartObjects::SmartType_Map); - if (AttachSchema(struct_id, struct_object)) { - return struct_object; - } - - return NsSmartDeviceLink::NsSmartObjects::SmartObject(); - } - - template <class FunctionIdEnum, - class MessageTypeEnum, - class StructIdEnum> - bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - GetSchema(const FunctionIdEnum function_id, - const MessageTypeEnum message_type, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result) { - SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(function_id, - message_type); - - typename FuncionsSchemesMap::iterator schema_iterator = - functions_schemes_.find(key); - - if(schema_iterator != functions_schemes_.end()) { - result = schema_iterator->second; - return true; - } - - return false; - } - - template <class FunctionIdEnum, - class MessageTypeEnum, - class StructIdEnum> - bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>:: - GetSchema(const StructIdEnum struct_id, - NsSmartDeviceLink::NsSmartObjects::CSmartSchema &result) { - typename StructsSchemesMap::iterator structs_iterator = - structs_schemes_.find(struct_id); - - if(structs_iterator != structs_schemes_.end()) { - result = structs_iterator->second; - return true; - } - - return false; - } - - template <class FunctionIdEnum, class MessageTypeEnum> - SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>::SmartSchemaKey(FunctionIdEnum functionIdParam, MessageTypeEnum messageTypeParam) - : functionId(functionIdParam) - , messageType(messageTypeParam) - { - - } - - template <class FunctionIdEnum, class MessageTypeEnum> - bool operator<(const SmartSchemaKey< FunctionIdEnum, MessageTypeEnum >& l, const SmartSchemaKey< FunctionIdEnum, MessageTypeEnum >& r) - { - if (l.functionId < r.functionId) return true; - if (l.functionId > r.functionId) return false; - - if (l.messageType < r.messageType) return true; - if (l.messageType > r.messageType) return false; - - return false; - } - } +namespace NsSmartDeviceLink { +namespace NsJSONHandler { +/** + * @brief String constants used by SmartFactory. + */ +namespace strings { +/** + * @brief String constant for MSG_PARAMS. + */ +extern const std::string S_MSG_PARAMS; + +/** + * @brief String constant for PARAMS. + */ +extern const std::string S_PARAMS; + +/** + * @brief String constant for FUNCTION_ID. + */ +extern const std::string S_FUNCTION_ID; + +/** + * @brief String constant for MESSAGE_TYPE. + */ +extern const std::string S_MESSAGE_TYPE; + +/** + * @brief String constant for PROTOCOL_VERSION. + */ +extern const std::string S_PROTOCOL_VERSION; + +/** + * @brief String constant for PROTOCOL_TYPE. + */ +extern const std::string S_PROTOCOL_TYPE; + +/** + * @brief String constant for CORRELATION_ID. + */ +extern const std::string S_CORRELATION_ID; + +/** + * @brief String constant for "code" param name. + */ +extern const std::string kCode; + +/** + * @brief String constant for "message" param name. + */ +extern const std::string kMessage; +} + +/** + * @brief Smart Schema key. + * + * @tparam FunctionIdEnum Type of function ID enum. + * @tparam MessageTypeEnum Type of messageType enum. + */ +template <class FunctionIdEnum, class MessageTypeEnum> +struct SmartSchemaKey { + /** + * @brief Value of function ID for the key. + */ + FunctionIdEnum functionId; + + /** + * @brief Value of messageType for the key. + */ + MessageTypeEnum messageType; + + /** + * @brief Constructor. + * + * @param functionIdParam Value of function ID. + * @param messageTypeParam Value of message type. + */ + SmartSchemaKey(FunctionIdEnum functionIdParam, + MessageTypeEnum messageTypeParam); +}; + +/** + * @brief Smart Factory. + * + * This class is used as base class for generated factories. + * Clients should use methods of this class to access all + * SmartSchema validation features. + * + * @tparam FunctionIdEnum Type of function ID enum. + * @tparam MessageTypeEnum Type of messageType enum. + * @tparam StructIdEnum Type of StructId enum. + */ +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +class CSmartFactory { + public: + /** + * @brief Constructor. + */ + CSmartFactory(void); + + /** + * @brief Attach schema to the function SmartObject. + * + * @param object SmartObject to attach schema for. + * + * @param RemoveFakeParameters contains true if need + * to remove fake parameters from smart object otherwise contains false. + * + * @return True if operation was successful or false otherwise. + */ + bool attachSchema(NsSmartDeviceLink::NsSmartObjects::SmartObject& object, + const bool RemoveFakeParameters); + + /** + * @brief Attach schema to the struct SmartObject. + * + * @param struct_id Identifier of the struct. + * @param object SmartObject to attach schema for. + * + * @return True if operation was successful of false otherwise. + */ + bool AttachSchema(const StructIdEnum struct_id, + NsSmartDeviceLink::NsSmartObjects::SmartObject& object); + + /** + * @brief Create new SmartObject with attached function SmartSchema. + * + * @param function_id FunctionID of the function. + * @param message_type messageType of the function. + * + * @return If function succeeded it returns new SmartObject with + * map type and attached SmartSchema. Client can use such + * object to store specific function and perform validation. + * Otherwise (if SmartSchema was not attached to the + * SmartObject) function returns empty SmartObject with + * null type. + */ + NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject( + const FunctionIdEnum function_id, const MessageTypeEnum message_type); + + /** + * @brief Create new SmartObject with attached struct SmartSchema. + * + * @param struct_id Identifier of the struct. + * + * @return If function succeeded it returns new SmartObject with + * map type and attached SmartSchema. Client can use such + * object to store specific struct and perform validation. + * Otherwise (if SmartSchema was not attached to the + * SmartObject) function returns empty SmartObject with + * null type. + */ + NsSmartDeviceLink::NsSmartObjects::SmartObject CreateSmartObject( + const StructIdEnum struct_id); + + /** + * @brief Get SmartSchema for specific function. + * + * @param function_id FunctionID of the function. + * @param message_type messageType of the function. + * @param[out] result This value will be copy of the desired + * function SmartSchema if it found (this + * function returns true) or unmodified if + * SmartSchema is not found (this function + * returns false). + * + * @return True if function schema for specified input parameters + * is found or false otherwise. + */ + bool GetSchema(const FunctionIdEnum function_id, + const MessageTypeEnum message_type, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema& result); + + /** + * @brief Get SmartSchema for specific struct. + * + * @param struct_id Identifier of the struct. + * + * @param[out] result This value will be copy of the desired + * struct SmartSchema if it found (this + * function returns true) or unmodified if + * SmartSchema is not found (this function + * returns false). + * + * @return True if struct schema for specified input parameter is + * found or false otherwise. + */ + bool GetSchema(const StructIdEnum struct_id, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema& result); + + protected: + /** + * @brief Defines map of SmartSchemaKeys to the SmartSchemes. + * + * This container type should be used to store SmartSchemes of + * functions. + */ + typedef std::map<SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema> + FuncionsSchemesMap; + + /** + * @brief Defines map of StructIdEnum to the SmartSchemes. + * + * This container type should be used to store SmartSchemes of + * structs. + */ + typedef std::map<StructIdEnum, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema> + StructsSchemesMap; + + /** + * @brief Map of all function schemes for this factory. + */ + FuncionsSchemesMap functions_schemes_; + + /** + * @brief Map of all struct shemes for this factory. + */ + StructsSchemesMap structs_schemes_; +}; + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::CSmartFactory( + void) + : functions_schemes_(), structs_schemes_() {} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::attachSchema( + NsSmartDeviceLink::NsSmartObjects::SmartObject& object, + const bool RemoveFakeParameters) { + if (false == object.keyExists(strings::S_PARAMS)) + return false; + if (false == object[strings::S_PARAMS].keyExists(strings::S_MESSAGE_TYPE)) + return false; + if (false == object[strings::S_PARAMS].keyExists(strings::S_FUNCTION_ID)) + return false; + + MessageTypeEnum msgtype( + (MessageTypeEnum) + object[strings::S_PARAMS][strings::S_MESSAGE_TYPE].asInt()); + FunctionIdEnum fid( + (FunctionIdEnum) + object[strings::S_PARAMS][strings::S_FUNCTION_ID].asInt()); + + SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(fid, msgtype); + + typename FuncionsSchemesMap::iterator schemaIterator = + functions_schemes_.find(key); + + if (schemaIterator == functions_schemes_.end()) { + // Schema was not found + return false; + } + + object.setSchema(schemaIterator->second); + schemaIterator->second.applySchema(object, RemoveFakeParameters); + + return true; +} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::AttachSchema( + const StructIdEnum struct_id, + NsSmartDeviceLink::NsSmartObjects::SmartObject& object) { + typename StructsSchemesMap::iterator structs_iterator = + structs_schemes_.find(struct_id); + + if (structs_iterator == structs_schemes_.end()) { + return false; + } + + object.setSchema(structs_iterator->second); + structs_iterator->second.applySchema(object, false); + + return true; +} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +NsSmartDeviceLink::NsSmartObjects::SmartObject +CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::CreateSmartObject( + const FunctionIdEnum function_id, const MessageTypeEnum message_type) { + SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(function_id, + message_type); + + typename FuncionsSchemesMap::iterator schema_iterator = + functions_schemes_.find(key); + + if (schema_iterator != functions_schemes_.end()) { + NsSmartDeviceLink::NsSmartObjects::SmartObject function_object( + NsSmartDeviceLink::NsSmartObjects::SmartType_Map); + function_object.setSchema(schema_iterator->second); + schema_iterator->second.applySchema(function_object, false); + return function_object; + } + + return NsSmartDeviceLink::NsSmartObjects::SmartObject(); +} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +NsSmartDeviceLink::NsSmartObjects::SmartObject +CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::CreateSmartObject( + const StructIdEnum struct_id) { + NsSmartDeviceLink::NsSmartObjects::SmartObject struct_object( + NsSmartDeviceLink::NsSmartObjects::SmartType_Map); + if (AttachSchema(struct_id, struct_object)) { + return struct_object; + } + + return NsSmartDeviceLink::NsSmartObjects::SmartObject(); +} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::GetSchema( + const FunctionIdEnum function_id, + const MessageTypeEnum message_type, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema& result) { + SmartSchemaKey<FunctionIdEnum, MessageTypeEnum> key(function_id, + message_type); + + typename FuncionsSchemesMap::iterator schema_iterator = + functions_schemes_.find(key); + + if (schema_iterator != functions_schemes_.end()) { + result = schema_iterator->second; + return true; + } + + return false; +} + +template <class FunctionIdEnum, class MessageTypeEnum, class StructIdEnum> +bool CSmartFactory<FunctionIdEnum, MessageTypeEnum, StructIdEnum>::GetSchema( + const StructIdEnum struct_id, + NsSmartDeviceLink::NsSmartObjects::CSmartSchema& result) { + typename StructsSchemesMap::iterator structs_iterator = + structs_schemes_.find(struct_id); + + if (structs_iterator != structs_schemes_.end()) { + result = structs_iterator->second; + return true; + } + + return false; +} + +template <class FunctionIdEnum, class MessageTypeEnum> +SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>::SmartSchemaKey( + FunctionIdEnum functionIdParam, MessageTypeEnum messageTypeParam) + : functionId(functionIdParam), messageType(messageTypeParam) {} + +template <class FunctionIdEnum, class MessageTypeEnum> +bool operator<(const SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>& l, + const SmartSchemaKey<FunctionIdEnum, MessageTypeEnum>& r) { + if (l.functionId < r.functionId) + return true; + if (l.functionId > r.functionId) + return false; + + if (l.messageType < r.messageType) + return true; + if (l.messageType > r.messageType) + return false; + + return false; +} +} } -#endif //__CSMARTFACTORY_HPP__ +#endif //__CSMARTFACTORY_HPP__ diff --git a/src/components/formatters/include/formatters/formatter_json_rpc.h b/src/components/formatters/include/formatters/formatter_json_rpc.h index b51f21a573..db122fa1a2 100644 --- a/src/components/formatters/include/formatters/formatter_json_rpc.h +++ b/src/components/formatters/include/formatters/formatter_json_rpc.h @@ -52,415 +52,415 @@ namespace Formatters { /** * @brief Formatter for JSON RPC format. */ -class FormatterJsonRpc: public CFormatterJsonBase { - public: - /** - * @brief No errors occurred during the parsing of the input JSON string. - */ - static const int32_t kSuccess = 0; - - /** - * @brief Input JSON string cannot be parsed. - */ - static const int32_t kParsingError = 1; - - /** - * @brief Input JSON string has invalid format. - */ - static const int32_t kInvalidFormat = 2; - - /** - * @brief Method in input JSON string is not - * specified or specified incorrectly. - */ - static const int32_t kMethodNotSpecified = 4; - - /** - * @brief Method is unknown. - */ - static const int32_t kUnknownMethod = 8; - - /** - * @brief Message type is unknown. - */ - static const int32_t kUnknownMessageType = 16; - - /** - * @brief Id of request or response is invalid. - */ - static const int32_t kInvalidId = 32; - - /** - * @brief Response code is not available. - */ - static const int32_t kResponseCodeNotAvailable = 64; - - /** - * @brief Message for error response is not available. - */ - static const int32_t kErrorResponseMessageNotAvailable = 128; - - /** - * @brief Creates a JSON string from a SmartObject. - * - * @param obj Input SmartObject. - * @param out_str Resulting JSON string. - * - * @return true if success, false otherwise. - */ - static bool ToString(const NsSmartObjects::SmartObject& obj, - std::string& out_str); - - /** - * @brief Creates a SmartObject from a JSON string. - * - * @tparam FunctionId Type of function id enumeration. - * @tparam MessageType Type of message type enumeration. - * - * @param str input JSON string. - * @param out The resulting SmartObject. - * - * @return An integer that is a bitwise-or of all error codes occurred - * during the parsing of the input string. 0 if no errors occurred. - */ - template <typename FunctionId, typename MessageType> - static int32_t FromString(const std::string& str, - NsSmartObjects::SmartObject& out); - - private: - /** - * @brief Request. - */ - static const char* kRequest; - - /** - * @brief Response. - */ - static const char* kResponse; - - /** - * @brief Notification. - */ - static const char* kNotification; - - /** - * @brief Error reponse. - */ - static const char* kErrorResponse; - - /** - * @brief Name of "jsonrpc" message field. - */ - static const char* kJsonRpc; - - /** - * @brief Expected value of "jsonrpc" message field ("2.0"). - */ - static const char* kJsonRpcExpectedValue; - - /** - * @brief Name of "id" message field. - */ - static const char* kId; - - /** - * @brief Name of "method" field. - */ - static const char* kMethod; - - /** - * @brief Name of "params" field. - */ - static const char* kParams; - - /** - * @brief Name of "result" field. - */ - static const char* kResult; - - /** - * @brief Name of "error" field. - */ - static const char* kError; - - /** - * @brief Name of "code" field. - */ - static const char* kCode; - - /** - * @brief Name of "data" field. - */ - static const char* kData; - - /** - * @brief Name of "message" field. - */ - static const char* kMessage; - - /** - * @brief Constructor. - */ - FormatterJsonRpc(); - - /** - * @brief Copy constructor. - * - * @param unused Unused parameter. - */ - FormatterJsonRpc(const FormatterJsonRpc& unused); - - /** - * @brief Parse function id. - * - * @tparam FunctionId Type of function id enumeration. - * - * @param method_value JSON value with function id. - * @param out The resulting SmartObject. - * - * @return An integer that is a bitwise-or of all error codes occurred - * during the parsing of the function id. 0 if no errors occurred. - */ - template <typename FunctionId> - static int32_t ParseFunctionId(const Json::Value& method_value, - NsSmartObjects::SmartObject& out); - - /** - * @brief Set method. - * - * Try to extract function id from the message object and set the "method" - * field of the container. - * - * @param params Message parameters object. - * @param method_container Container for the "method" field. - * - * @return true if function id was extracted successfully and set as a - * value of "method" field. - */ - static bool SetMethod(const NsSmartObjects::SmartObject& params, - Json::Value& method_container); - - /** - * @brief Set id. - * - * Try to extract request/response id from the message object and set the - * "id" field of the container. - * - * @param params Message parameters object. - * @param id_container Container for the "id" field. - * - * @return true if request/response id was extracted successfully and set - * as a value of "id" field. - */ - static bool SetId(const NsSmartObjects::SmartObject& params, - Json::Value& id_container); - - /** - * @brief Set message - * - * Try to extract message from response error object and set "message" field for the container - * - * @param params Message parameters object. - * @param id_container Container of the "message" field - * - * @return true if message string was extracted successfully and set - * as a value of "message" field. - */ - static bool SetMessage(const NsSmartObjects::SmartObject& params, - Json::Value& id_container); +class FormatterJsonRpc : public CFormatterJsonBase { + public: + /** + * @brief No errors occurred during the parsing of the input JSON string. + */ + static const int32_t kSuccess = 0; + + /** + * @brief Input JSON string cannot be parsed. + */ + static const int32_t kParsingError = 1; + + /** + * @brief Input JSON string has invalid format. + */ + static const int32_t kInvalidFormat = 2; + + /** + * @brief Method in input JSON string is not + * specified or specified incorrectly. + */ + static const int32_t kMethodNotSpecified = 4; + + /** + * @brief Method is unknown. + */ + static const int32_t kUnknownMethod = 8; + + /** + * @brief Message type is unknown. + */ + static const int32_t kUnknownMessageType = 16; + + /** + * @brief Id of request or response is invalid. + */ + static const int32_t kInvalidId = 32; + + /** + * @brief Response code is not available. + */ + static const int32_t kResponseCodeNotAvailable = 64; + + /** + * @brief Message for error response is not available. + */ + static const int32_t kErrorResponseMessageNotAvailable = 128; + + /** + * @brief Creates a JSON string from a SmartObject. + * + * @param obj Input SmartObject. + * @param out_str Resulting JSON string. + * + * @return true if success, false otherwise. + */ + static bool ToString(const NsSmartObjects::SmartObject& obj, + std::string& out_str); + + /** + * @brief Creates a SmartObject from a JSON string. + * + * @tparam FunctionId Type of function id enumeration. + * @tparam MessageType Type of message type enumeration. + * + * @param str input JSON string. + * @param out The resulting SmartObject. + * + * @return An integer that is a bitwise-or of all error codes occurred + * during the parsing of the input string. 0 if no errors occurred. + */ + template <typename FunctionId, typename MessageType> + static int32_t FromString(const std::string& str, + NsSmartObjects::SmartObject& out); + + private: + /** + * @brief Request. + */ + static const char* kRequest; + + /** + * @brief Response. + */ + static const char* kResponse; + + /** + * @brief Notification. + */ + static const char* kNotification; + + /** + * @brief Error reponse. + */ + static const char* kErrorResponse; + + /** + * @brief Name of "jsonrpc" message field. + */ + static const char* kJsonRpc; + + /** + * @brief Expected value of "jsonrpc" message field ("2.0"). + */ + static const char* kJsonRpcExpectedValue; + + /** + * @brief Name of "id" message field. + */ + static const char* kId; + + /** + * @brief Name of "method" field. + */ + static const char* kMethod; + + /** + * @brief Name of "params" field. + */ + static const char* kParams; + + /** + * @brief Name of "result" field. + */ + static const char* kResult; + + /** + * @brief Name of "error" field. + */ + static const char* kError; + + /** + * @brief Name of "code" field. + */ + static const char* kCode; + + /** + * @brief Name of "data" field. + */ + static const char* kData; + + /** + * @brief Name of "message" field. + */ + static const char* kMessage; + + /** + * @brief Constructor. + */ + FormatterJsonRpc(); + + /** + * @brief Copy constructor. + * + * @param unused Unused parameter. + */ + FormatterJsonRpc(const FormatterJsonRpc& unused); + + /** + * @brief Parse function id. + * + * @tparam FunctionId Type of function id enumeration. + * + * @param method_value JSON value with function id. + * @param out The resulting SmartObject. + * + * @return An integer that is a bitwise-or of all error codes occurred + * during the parsing of the function id. 0 if no errors occurred. + */ + template <typename FunctionId> + static int32_t ParseFunctionId(const Json::Value& method_value, + NsSmartObjects::SmartObject& out); + + /** + * @brief Set method. + * + * Try to extract function id from the message object and set the "method" + * field of the container. + * + * @param params Message parameters object. + * @param method_container Container for the "method" field. + * + * @return true if function id was extracted successfully and set as a + * value of "method" field. + */ + static bool SetMethod(const NsSmartObjects::SmartObject& params, + Json::Value& method_container); + + /** + * @brief Set id. + * + * Try to extract request/response id from the message object and set the + * "id" field of the container. + * + * @param params Message parameters object. + * @param id_container Container for the "id" field. + * + * @return true if request/response id was extracted successfully and set + * as a value of "id" field. + */ + static bool SetId(const NsSmartObjects::SmartObject& params, + Json::Value& id_container); + + /** + * @brief Set message + * + * Try to extract message from response error object and set "message" field + *for the container + * + * @param params Message parameters object. + * @param id_container Container of the "message" field + * + * @return true if message string was extracted successfully and set + * as a value of "message" field. + */ + static bool SetMessage(const NsSmartObjects::SmartObject& params, + Json::Value& id_container); }; template <typename FunctionId, typename MessageType> int32_t FormatterJsonRpc::FromString(const std::string& str, - NsSmartObjects::SmartObject& out) { + NsSmartObjects::SmartObject& out) { int32_t result = kSuccess; try { - Json::Value root; - Json::Reader reader; - namespace strings = NsSmartDeviceLink::NsJSONHandler::strings; + Json::Value root; + Json::Reader reader; + namespace strings = NsSmartDeviceLink::NsJSONHandler::strings; - if (false == reader.parse(str, root)) { - result = kParsingError | kMethodNotSpecified | kUnknownMethod | - kUnknownMessageType; - } else { - if (false == root.isMember(kJsonRpc)) { - result |= kInvalidFormat; + if (false == reader.parse(str, root)) { + result = kParsingError | kMethodNotSpecified | kUnknownMethod | + kUnknownMessageType; } else { - const Json::Value& jsonRpcValue = root[kJsonRpc]; - - if ((false == jsonRpcValue.isString()) || - (jsonRpcValue.asString() != kJsonRpcExpectedValue)) { + if (false == root.isMember(kJsonRpc)) { result |= kInvalidFormat; + } else { + const Json::Value& jsonRpcValue = root[kJsonRpc]; + + if ((false == jsonRpcValue.isString()) || + (jsonRpcValue.asString() != kJsonRpcExpectedValue)) { + result |= kInvalidFormat; + } } - } - std::string message_type_string; - Json::Value response_value; - bool response_value_found = false; - bool is_error_response = false; + std::string message_type_string; + Json::Value response_value; + bool response_value_found = false; + bool is_error_response = false; - if (false == root.isMember(kId)) { - message_type_string = kNotification; + if (false == root.isMember(kId)) { + message_type_string = kNotification; - if (false == root.isMember(kMethod)) { - result |= kMethodNotSpecified | kUnknownMethod; - } else { - result |= ParseFunctionId<FunctionId>(root[kMethod], out); - } - out[strings::S_MSG_PARAMS] - = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); - } else { - const Json::Value& id_value = root[kId]; - - if (true == id_value.isString()) { - out[strings::S_PARAMS][strings::S_CORRELATION_ID] = - id_value.asString(); - } else if (true == id_value.isInt()) { - out[strings::S_PARAMS][strings::S_CORRELATION_ID] = - id_value.asInt(); - } else if (true == id_value.isDouble()) { - out[strings::S_PARAMS][strings::S_CORRELATION_ID] = - id_value.asDouble(); - } else if (true == id_value.isNull()) { - out[strings::S_PARAMS][strings::S_CORRELATION_ID] = - NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Null); - } else { - result |= kInvalidFormat | kInvalidId; - } - - if (true == root.isMember(kMethod)) { - message_type_string = kRequest; - result |= ParseFunctionId<FunctionId>(root[kMethod], out); - out[strings::S_MSG_PARAMS] - = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); + if (false == root.isMember(kMethod)) { + result |= kMethodNotSpecified | kUnknownMethod; + } else { + result |= ParseFunctionId<FunctionId>(root[kMethod], out); + } + out[strings::S_MSG_PARAMS] = + NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); } else { - Json::Value method_container; - bool method_container_found = false; - - if (true == root.isMember(kResult)) { - out[strings::S_MSG_PARAMS] - = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); - - message_type_string = kResponse; - response_value = root[kResult]; - response_value_found = true; - method_container = root[kResult]; - method_container_found = true; - } else if (true == root.isMember(kError)) { - out[strings::S_MSG_PARAMS] - = NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); - message_type_string = kErrorResponse; - response_value = root[kError]; - response_value_found = true; - is_error_response = true; - - if (true == response_value.isObject()) { - if (true == response_value.isMember(kData)) { - method_container = response_value[kData]; - method_container_found = true; - } - } + const Json::Value& id_value = root[kId]; + + if (true == id_value.isString()) { + out[strings::S_PARAMS][strings::S_CORRELATION_ID] = + id_value.asString(); + } else if (true == id_value.isInt()) { + out[strings::S_PARAMS][strings::S_CORRELATION_ID] = id_value.asInt(); + } else if (true == id_value.isDouble()) { + out[strings::S_PARAMS][strings::S_CORRELATION_ID] = + id_value.asDouble(); + } else if (true == id_value.isNull()) { + out[strings::S_PARAMS][strings::S_CORRELATION_ID] = + NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Null); } else { - result |= kUnknownMessageType; + result |= kInvalidFormat | kInvalidId; } - if (false == method_container_found) { - result |= kMethodNotSpecified | kUnknownMethod; - } else if (false == method_container.isObject()) { - result |= kInvalidFormat | kMethodNotSpecified | kUnknownMethod; + if (true == root.isMember(kMethod)) { + message_type_string = kRequest; + result |= ParseFunctionId<FunctionId>(root[kMethod], out); + out[strings::S_MSG_PARAMS] = + NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); } else { - if (false == method_container.isMember(kMethod)) { + Json::Value method_container; + bool method_container_found = false; + + if (true == root.isMember(kResult)) { + out[strings::S_MSG_PARAMS] = + NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); + + message_type_string = kResponse; + response_value = root[kResult]; + response_value_found = true; + method_container = root[kResult]; + method_container_found = true; + } else if (true == root.isMember(kError)) { + out[strings::S_MSG_PARAMS] = + NsSmartObjects::SmartObject(NsSmartObjects::SmartType_Map); + message_type_string = kErrorResponse; + response_value = root[kError]; + response_value_found = true; + is_error_response = true; + + if (true == response_value.isObject()) { + if (true == response_value.isMember(kData)) { + method_container = response_value[kData]; + method_container_found = true; + } + } + } else { + result |= kUnknownMessageType; + } + + if (false == method_container_found) { result |= kMethodNotSpecified | kUnknownMethod; + } else if (false == method_container.isObject()) { + result |= kInvalidFormat | kMethodNotSpecified | kUnknownMethod; } else { - result |= ParseFunctionId<FunctionId>(method_container[kMethod], - out); + if (false == method_container.isMember(kMethod)) { + result |= kMethodNotSpecified | kUnknownMethod; + } else { + result |= + ParseFunctionId<FunctionId>(method_container[kMethod], out); + } } } } - } - if (0 == (result & kUnknownMessageType)) { - MessageType message_type; + if (0 == (result & kUnknownMessageType)) { + MessageType message_type; - if (!NsSmartObjects::EnumConversionHelper<MessageType>::StringToEnum( - message_type_string, &message_type)) { - result |= kUnknownMessageType; - } else { - out[strings::S_PARAMS][strings::S_MESSAGE_TYPE] = message_type; + if (!NsSmartObjects::EnumConversionHelper<MessageType>::StringToEnum( + message_type_string, &message_type)) { + result |= kUnknownMessageType; + } else { + out[strings::S_PARAMS][strings::S_MESSAGE_TYPE] = message_type; + } } - } - if (true == root.isMember(kParams)) { - const Json::Value& params_value = root[kParams]; - - if (false == params_value.isObject()) { - result |= kInvalidFormat; - } else { - jsonValueToObj(root[kParams], out[strings::S_MSG_PARAMS]); - } - } else if (true == root.isMember(kResult)) { - const Json::Value& result_value = root[kResult]; + if (true == root.isMember(kParams)) { + const Json::Value& params_value = root[kParams]; - if (false == result_value.isObject()) { - result |= kInvalidFormat; - } else { - jsonValueToObj(root[kResult], out[strings::S_MSG_PARAMS]); - } - } else if (true == is_error_response) { - jsonValueToObj(response_value[kData], out[strings::S_PARAMS][kData]); - } + if (false == params_value.isObject()) { + result |= kInvalidFormat; + } else { + jsonValueToObj(root[kParams], out[strings::S_MSG_PARAMS]); + } + } else if (true == root.isMember(kResult)) { + const Json::Value& result_value = root[kResult]; - if ((kResponse == message_type_string) || - (kErrorResponse == message_type_string)) { - if (true == out.keyExists(strings::S_MSG_PARAMS)) { - out[strings::S_MSG_PARAMS].erase(kMethod); - out[strings::S_MSG_PARAMS].erase(kCode); + if (false == result_value.isObject()) { + result |= kInvalidFormat; + } else { + jsonValueToObj(root[kResult], out[strings::S_MSG_PARAMS]); + } + } else if (true == is_error_response) { + jsonValueToObj(response_value[kData], out[strings::S_PARAMS][kData]); } - if (false == response_value_found) { - result |= kResponseCodeNotAvailable; - } else { - if (false == response_value.isObject()) { - result |= kInvalidFormat | kResponseCodeNotAvailable; + if ((kResponse == message_type_string) || + (kErrorResponse == message_type_string)) { + if (true == out.keyExists(strings::S_MSG_PARAMS)) { + out[strings::S_MSG_PARAMS].erase(kMethod); + out[strings::S_MSG_PARAMS].erase(kCode); + } - if (true == is_error_response) { - result |= kErrorResponseMessageNotAvailable; - } + if (false == response_value_found) { + result |= kResponseCodeNotAvailable; } else { - if (false == response_value.isMember(kCode)) { - result |= kResponseCodeNotAvailable; - } else { - const Json::Value& code_value = response_value[kCode]; - - if (false == code_value.isInt()) { - result |= kInvalidFormat | kResponseCodeNotAvailable; - } else { - out[strings::S_PARAMS][strings::kCode] = code_value.asInt(); - } - } + if (false == response_value.isObject()) { + result |= kInvalidFormat | kResponseCodeNotAvailable; - if (true == is_error_response) { - if (false == response_value.isMember(kMessage)) { + if (true == is_error_response) { result |= kErrorResponseMessageNotAvailable; + } + } else { + if (false == response_value.isMember(kCode)) { + result |= kResponseCodeNotAvailable; } else { - const Json::Value& message_value = response_value[kMessage]; + const Json::Value& code_value = response_value[kCode]; - if (false == message_value.isString()) { + if (false == code_value.isInt()) { + result |= kInvalidFormat | kResponseCodeNotAvailable; + } else { + out[strings::S_PARAMS][strings::kCode] = code_value.asInt(); + } + } + + if (true == is_error_response) { + if (false == response_value.isMember(kMessage)) { result |= kErrorResponseMessageNotAvailable; } else { - out[strings::S_PARAMS][strings::kMessage] = - message_value.asString(); + const Json::Value& message_value = response_value[kMessage]; + + if (false == message_value.isString()) { + result |= kErrorResponseMessageNotAvailable; + } else { + out[strings::S_PARAMS][strings::kMessage] = + message_value.asString(); + } } } } } } } - } - out[strings::S_PARAMS][strings::S_PROTOCOL_TYPE] = 1; - out[strings::S_PARAMS][strings::S_PROTOCOL_VERSION] = 2; - } catch(...) { + out[strings::S_PARAMS][strings::S_PROTOCOL_TYPE] = 1; + out[strings::S_PARAMS][strings::S_PROTOCOL_VERSION] = 2; + } catch (...) { result = kParsingError; } @@ -469,7 +469,7 @@ int32_t FormatterJsonRpc::FromString(const std::string& str, template <typename FunctionId> int32_t FormatterJsonRpc::ParseFunctionId(const Json::Value& method_value, - NsSmartObjects::SmartObject& out) { + NsSmartObjects::SmartObject& out) { int32_t result = kSuccess; if (false == method_value.isString()) { @@ -478,7 +478,7 @@ int32_t FormatterJsonRpc::ParseFunctionId(const Json::Value& method_value, FunctionId function_id; if (!NsSmartObjects::EnumConversionHelper<FunctionId>::CStringToEnum( - method_value.asCString(), &function_id)) { + method_value.asCString(), &function_id)) { result |= kUnknownMethod; } else { namespace strings = NsSmartDeviceLink::NsJSONHandler::strings; @@ -494,4 +494,4 @@ int32_t FormatterJsonRpc::ParseFunctionId(const Json::Value& method_value, } // namespace NsJSONHandler } // namespace NsSmartDeviceLink -#endif // SMARTDEVICELINK_COMPONENTS_JSONHANDLER_INCLUDE_FORMATTERS_FORMATTER_JSON_RPC_H_ +#endif // SMARTDEVICELINK_COMPONENTS_JSONHANDLER_INCLUDE_FORMATTERS_FORMATTER_JSON_RPC_H_ diff --git a/src/components/formatters/include/formatters/generic_json_formatter.h b/src/components/formatters/include/formatters/generic_json_formatter.h index e99f8b2f2f..580a49d73a 100644 --- a/src/components/formatters/include/formatters/generic_json_formatter.h +++ b/src/components/formatters/include/formatters/generic_json_formatter.h @@ -41,8 +41,8 @@ namespace NsSmartDeviceLink { namespace NsJSONHandler { namespace Formatters { -class GenericJsonFormatter: public CFormatterJsonBase { -public: +class GenericJsonFormatter : public CFormatterJsonBase { + public: /** * @brief Creates a JSON string from a SmartObject. * @@ -64,8 +64,8 @@ public: NsSmartObjects::SmartObject& out); }; -} // namespace Formatters -} // namespace NsJSONHandler -} // namespace NsSmartDeviceLink +} // namespace Formatters +} // namespace NsJSONHandler +} // namespace NsSmartDeviceLink -#endif // SMARTDEVICELINK_COMPONENTS_FORMATTERS_INCLUDE_FORMATTERS_GENERIC_JSON_FORMATTER_H_ +#endif // SMARTDEVICELINK_COMPONENTS_FORMATTERS_INCLUDE_FORMATTERS_GENERIC_JSON_FORMATTER_H_ diff --git a/src/components/formatters/include/formatters/meta_formatter.h b/src/components/formatters/include/formatters/meta_formatter.h index f9fd6fad72..65b8c19863 100644 --- a/src/components/formatters/include/formatters/meta_formatter.h +++ b/src/components/formatters/include/formatters/meta_formatter.h @@ -44,7 +44,8 @@ namespace NsJSONHandler { namespace Formatters { /** - * @brief Formats to string the smart object against given schema for given formatter + * @brief Formats to string the smart object against given schema for given + *formatter * * Sample usage: * CSmartFactory factory; @@ -54,7 +55,6 @@ namespace Formatters { */ class CMetaFormatter { public: - /** * @brief Creates smart object by the given schema having copied * matched tree elements from original object. @@ -66,13 +66,13 @@ class CMetaFormatter { * @return true if successful, false - otherwise */ static bool CreateObjectByPattern( - const NsSmartDeviceLink::NsSmartObjects::SmartObject& object, - const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema, - NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object); + const NsSmartDeviceLink::NsSmartObjects::SmartObject& object, + const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema, + NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object); }; -}// namespace NsSmartDeviceLink -}// namespace NsSmartDeviceLink::NsJSONHandler -}// namespace NsSmartDeviceLink::NsJSONHandler::Formatters +} // namespace NsSmartDeviceLink +} // namespace NsSmartDeviceLink::NsJSONHandler +} // namespace NsSmartDeviceLink::NsJSONHandler::Formatters -#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS_METAFORMATTER_H__ +#endif // __SMARTDEVICELINKCORE_JSONHANDLER_FORMATTERS_METAFORMATTER_H__ diff --git a/src/components/formatters/src/CFormatterJsonBase.cc b/src/components/formatters/src/CFormatterJsonBase.cc index 8c2a70f1d4..0a85a93d21 100644 --- a/src/components/formatters/src/CFormatterJsonBase.cc +++ b/src/components/formatters/src/CFormatterJsonBase.cc @@ -35,9 +35,9 @@ #include "formatters/CFormatterJsonBase.h" #include "utils/convert_utils.h" -void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::jsonValueToObj( - const Json::Value& value, - NsSmartDeviceLink::NsSmartObjects::SmartObject& obj) { +void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase:: + jsonValueToObj(const Json::Value& value, + NsSmartDeviceLink::NsSmartObjects::SmartObject& obj) { try { if (value.type() == Json::objectValue) { obj = NsSmartDeviceLink::NsSmartObjects::SmartObject( @@ -72,9 +72,9 @@ void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::jsonValue // ---------------------------------------------------------------------------- -void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::objToJsonValue( - const NsSmartDeviceLink::NsSmartObjects::SmartObject &obj, - Json::Value &item) { +void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase:: + objToJsonValue(const NsSmartDeviceLink::NsSmartObjects::SmartObject& obj, + Json::Value& item) { try { if (NsSmartDeviceLink::NsSmartObjects::SmartType_Array == obj.getType()) { item = Json::arrayValue; @@ -86,33 +86,34 @@ void NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonBase::objToJson item.append(value); } - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Map == + obj.getType()) { item = Json::objectValue; std::set<std::string> keys = obj.enumerate(); for (std::set<std::string>::const_iterator key = keys.begin(); - key != keys.end(); key++) { + key != keys.end(); + key++) { Json::Value value(Json::nullValue); objToJsonValue(obj.getElement(*key), value); item[*key] = value; } - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Boolean - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Boolean == + obj.getType()) { item = obj.asBool(); - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Integer - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Integer == + obj.getType()) { item = utils::ConvertInt64ToLongLongInt(obj.asInt()); - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_UInteger - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_UInteger == + obj.getType()) { item = utils::ConvertUInt64ToLongLongUInt(obj.asUInt()); - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Double - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Double == + obj.getType()) { item = obj.asDouble(); - } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Null - == obj.getType()) { + } else if (NsSmartDeviceLink::NsSmartObjects::SmartType_Null == + obj.getType()) { item = Json::nullValue; } else { item = obj.asString(); diff --git a/src/components/formatters/src/CFormatterJsonSDLRPCv1.cc b/src/components/formatters/src/CFormatterJsonSDLRPCv1.cc index f490b85ea6..b776b9abd8 100644 --- a/src/components/formatters/src/CFormatterJsonSDLRPCv1.cc +++ b/src/components/formatters/src/CFormatterJsonSDLRPCv1.cc @@ -59,7 +59,8 @@ const int32_t CFormatterJsonSDLRPCv1::kCorrelationIdNotFound = 1 << 3; const std::string CFormatterJsonSDLRPCv1::getMessageType( const smart_objects_ns::SmartObject& obj) { - return obj.getElement(strings::S_PARAMS).getElement(strings::S_MESSAGE_TYPE) + return obj.getElement(strings::S_PARAMS) + .getElement(strings::S_MESSAGE_TYPE) .asString(); } @@ -91,7 +92,8 @@ bool CFormatterJsonSDLRPCv1::toString(const smart_objects_ns::SmartObject& obj, Json::Value params(Json::objectValue); smart_objects_ns::SmartObject formattedObj(obj); - formattedObj.getSchema().unapplySchema(formattedObj); // converts enums(as int32_t) to strings + formattedObj.getSchema().unapplySchema( + formattedObj); // converts enums(as int32_t) to strings objToJsonValue(formattedObj.getElement(strings::S_MSG_PARAMS), params); @@ -104,8 +106,8 @@ bool CFormatterJsonSDLRPCv1::toString(const smart_objects_ns::SmartObject& obj, formattedObj[strings::S_PARAMS][strings::S_CORRELATION_ID].asInt()); } - root[type][S_NAME] = formattedObj[strings::S_PARAMS][strings::S_FUNCTION_ID] - .asString(); + root[type][S_NAME] = + formattedObj[strings::S_PARAMS][strings::S_FUNCTION_ID].asString(); outStr = root.toStyledString(); @@ -119,30 +121,33 @@ bool CFormatterJsonSDLRPCv1::toString(const smart_objects_ns::SmartObject& obj, // ---------------------------------------------------------------------------- -CFormatterJsonSDLRPCv1::tMetaFormatterErrorCode CFormatterJsonSDLRPCv1::MetaFormatToString( +CFormatterJsonSDLRPCv1::tMetaFormatterErrorCode +CFormatterJsonSDLRPCv1::MetaFormatToString( const smart_objects_ns::SmartObject& object, - const smart_objects_ns::CSmartSchema& schema, std::string& outStr) { + const smart_objects_ns::CSmartSchema& schema, + std::string& outStr) { meta_formatter_error_code::tMetaFormatterErrorCode result_code = meta_formatter_error_code::kErrorOk; smart_objects_ns::SmartObject tmp_object; - if (false - == CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) { + if (false == + CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) { result_code |= meta_formatter_error_code::kErrorFailedCreateObjectBySchema; return result_code; } // determine whether smart objects are functions // (in terms of SDLRPC communication) - bool is_root_object_created_by_schema = ((tmp_object.getType() - == smart_objects_ns::SmartType_Map) - && tmp_object.keyExists(strings::S_PARAMS) - && tmp_object.keyExists(strings::S_MSG_PARAMS)); + bool is_root_object_created_by_schema = + ((tmp_object.getType() == smart_objects_ns::SmartType_Map) && + tmp_object.keyExists(strings::S_PARAMS) && + tmp_object.keyExists(strings::S_MSG_PARAMS)); - bool is_root_object = ((object.getType() == smart_objects_ns::SmartType_Map) - && object.keyExists(strings::S_PARAMS) - && object.keyExists(strings::S_MSG_PARAMS)); + bool is_root_object = + ((object.getType() == smart_objects_ns::SmartType_Map) && + object.keyExists(strings::S_PARAMS) && + object.keyExists(strings::S_MSG_PARAMS)); if (false == is_root_object) { result_code |= meta_formatter_error_code::kErrorObjectIsNotFunction; @@ -155,7 +160,6 @@ CFormatterJsonSDLRPCv1::tMetaFormatterErrorCode CFormatterJsonSDLRPCv1::MetaForm return result_code; } - } } } diff --git a/src/components/formatters/src/CFormatterJsonSDLRPCv2.cc b/src/components/formatters/src/CFormatterJsonSDLRPCv2.cc index f4bc2f598f..9e177ea4a8 100644 --- a/src/components/formatters/src/CFormatterJsonSDLRPCv2.cc +++ b/src/components/formatters/src/CFormatterJsonSDLRPCv2.cc @@ -47,7 +47,8 @@ bool CFormatterJsonSDLRPCv2::toString(const smart_objects_ns::SmartObject& obj, Json::Value root(Json::objectValue); smart_objects_ns::SmartObject formattedObj(obj); - formattedObj.getSchema().unapplySchema(formattedObj); // converts enums(as int32_t) to strings + formattedObj.getSchema().unapplySchema( + formattedObj); // converts enums(as int32_t) to strings objToJsonValue(formattedObj.getElement(strings::S_MSG_PARAMS), root); @@ -63,31 +64,33 @@ bool CFormatterJsonSDLRPCv2::toString(const smart_objects_ns::SmartObject& obj, // ---------------------------------------------------------------------------- -CFormatterJsonSDLRPCv2::tMetaFormatterErrorCode CFormatterJsonSDLRPCv2::MetaFormatToString( +CFormatterJsonSDLRPCv2::tMetaFormatterErrorCode +CFormatterJsonSDLRPCv2::MetaFormatToString( const smart_objects_ns::SmartObject& object, - const smart_objects_ns::CSmartSchema& schema, std::string& outStr) { - + const smart_objects_ns::CSmartSchema& schema, + std::string& outStr) { meta_formatter_error_code::tMetaFormatterErrorCode result_code = meta_formatter_error_code::kErrorOk; smart_objects_ns::SmartObject tmp_object; - if (false - == CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) { + if (false == + CMetaFormatter::CreateObjectByPattern(object, schema, tmp_object)) { result_code |= meta_formatter_error_code::kErrorFailedCreateObjectBySchema; return result_code; } // determine whether smart objects are functions // (in terms of SDLRPC communication) - bool is_root_object_created_by_schema = ((tmp_object.getType() - == smart_objects_ns::SmartType_Map) - && tmp_object.keyExists(strings::S_PARAMS) - && tmp_object.keyExists(strings::S_MSG_PARAMS)); + bool is_root_object_created_by_schema = + ((tmp_object.getType() == smart_objects_ns::SmartType_Map) && + tmp_object.keyExists(strings::S_PARAMS) && + tmp_object.keyExists(strings::S_MSG_PARAMS)); - bool is_root_object = ((object.getType() == smart_objects_ns::SmartType_Map) - && object.keyExists(strings::S_PARAMS) - && object.keyExists(strings::S_MSG_PARAMS)); + bool is_root_object = + ((object.getType() == smart_objects_ns::SmartType_Map) && + object.keyExists(strings::S_PARAMS) && + object.keyExists(strings::S_MSG_PARAMS)); if (false == is_root_object) { result_code |= meta_formatter_error_code::kErrorObjectIsNotFunction; @@ -100,7 +103,6 @@ CFormatterJsonSDLRPCv2::tMetaFormatterErrorCode CFormatterJsonSDLRPCv2::MetaForm return result_code; } - } } } diff --git a/src/components/formatters/src/CSmartFactory.cc b/src/components/formatters/src/CSmartFactory.cc index a7b5bfd8d3..6b0808fbfa 100644 --- a/src/components/formatters/src/CSmartFactory.cc +++ b/src/components/formatters/src/CSmartFactory.cc @@ -34,13 +34,19 @@ #include "formatters/CSmartFactory.h" -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MSG_PARAMS("msg_params"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MSG_PARAMS( + "msg_params"); const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PARAMS("params"); -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_FUNCTION_ID("function_id"); -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE("message_type"); -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_VERSION("protocol_version"); -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_TYPE("protocol_type"); -const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID("correlation_id"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_FUNCTION_ID( + "function_id"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE( + "message_type"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_VERSION( + "protocol_version"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_TYPE( + "protocol_type"); +const std::string NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID( + "correlation_id"); const std::string NsSmartDeviceLink::NsJSONHandler::strings::kCode("code"); const std::string NsSmartDeviceLink::NsJSONHandler::strings::kMessage( "message"); diff --git a/src/components/formatters/src/generic_json_formatter.cc b/src/components/formatters/src/generic_json_formatter.cc index 6cc2266193..7789a915c2 100644 --- a/src/components/formatters/src/generic_json_formatter.cc +++ b/src/components/formatters/src/generic_json_formatter.cc @@ -58,6 +58,6 @@ bool GenericJsonFormatter::FromString(const std::string& str, return result; } -} // namespace Formatters -} // namespace NsJSONHandler -} // namespace NsSmartDeviceLink +} // namespace Formatters +} // namespace NsJSONHandler +} // namespace NsSmartDeviceLink diff --git a/src/components/formatters/src/meta_formatter.cc b/src/components/formatters/src/meta_formatter.cc index 8b24fd4b0e..fafb84e938 100644 --- a/src/components/formatters/src/meta_formatter.cc +++ b/src/components/formatters/src/meta_formatter.cc @@ -47,14 +47,13 @@ bool formatter_ns::CMetaFormatter::CreateObjectByPattern( const NsSmartDeviceLink::NsSmartObjects::SmartObject& object, const NsSmartDeviceLink::NsSmartObjects::CSmartSchema& schema, NsSmartDeviceLink::NsSmartObjects::SmartObject& result_object) { - if (smart_objects_ns::SmartType_Invalid == result_object.getType()) { return false; } - + schema.BuildObjectBySchema(object, result_object); result_object.setSchema(schema); return true; -} +} diff --git a/src/components/formatters/test/CFormatterJsonBase_test.cc b/src/components/formatters/test/CFormatterJsonBase_test.cc index 366c305e0b..ff1f60b8df 100644 --- a/src/components/formatters/test/CFormatterJsonBase_test.cc +++ b/src/components/formatters/test/CFormatterJsonBase_test.cc @@ -100,10 +100,12 @@ TEST(CFormatterJsonBaseTest, JSonSignedMaxIntValueToSmartObj_ExpectSuccessful) { EXPECT_EQ(ival, object.asInt()); } -TEST(CFormatterJsonBaseTest, JSonUnsignedMaxIntValueToSmartObj_ExpectSuccessful) { +TEST(CFormatterJsonBaseTest, + JSonUnsignedMaxIntValueToSmartObj_ExpectSuccessful) { // Arrange value Json::UInt ui_val = Json::Value::maxUInt; - Json::Value json_value(ui_val); // Json value from maximum possible unsigned int + Json::Value json_value( + ui_val); // Json value from maximum possible unsigned int SmartObject object; // Convert json to smart object CFormatterJsonBase::jsonValueToObj(json_value, object); @@ -162,7 +164,8 @@ TEST(CFormatterJsonBaseTest, JSonCStringValueToSmartObj_ExpectSuccessful) { TEST(CFormatterJsonBaseTest, JSonArrayValueToSmartObj_ExpectSuccessful) { // Arrange value - const char* json_array = "[\"test1\", \"test2\", \"test3\"]"; // Array in json format + const char* json_array = + "[\"test1\", \"test2\", \"test3\"]"; // Array in json format Json::Value json_value; // Json value from array. Will be initialized later SmartObject object; Json::Reader reader; // Json reader - Needed for correct parsing @@ -173,7 +176,7 @@ TEST(CFormatterJsonBaseTest, JSonArrayValueToSmartObj_ExpectSuccessful) { // Check conversion was successful EXPECT_TRUE(json_value.isArray()); EXPECT_EQ(3u, object.asArray()->size()); - SmartArray *ptr = NULL; // Smart Array pointer; + SmartArray* ptr = NULL; // Smart Array pointer; EXPECT_NE(ptr, object.asArray()); } @@ -294,13 +297,15 @@ TEST(CFormatterJsonBaseTest, CStringSmartObjectToJSon_ExpectSuccessful) { TEST(CFormatterJsonBaseTest, ArraySmartObjectToJSon_ExpectSuccessful) { // Arrange value - const char* json_array = "[\"test1\", \"test2\", \"test3\"]"; // Array in json format + const char* json_array = + "[\"test1\", \"test2\", \"test3\"]"; // Array in json format Json::Value json_value; // Json value from array. Will be initialized later - Json::Value result; // Json value from array. Will be initialized later + Json::Value result; // Json value from array. Will be initialized later SmartObject object; Json::Reader reader; // Json reader - Needed for correct parsing // Parse array to json value - ASSERT_TRUE(reader.parse(json_array, json_value)); // Convert json array to SmartObject + ASSERT_TRUE(reader.parse(json_array, + json_value)); // Convert json array to SmartObject // Convert json array to SmartObject CFormatterJsonBase::jsonValueToObj(json_value, object); // Convert SmartObject to JSon @@ -316,12 +321,15 @@ TEST(CFormatterJsonBaseTest, JSonObjectValueToObj_ExpectSuccessful) { "{ \"json_test_object\": [\"test1\", \"test2\", \"test3\"], " "\"json_test_object2\": [\"test11\", \"test12\", \"test13\" ]}"; Json::Value - json_value; // Json value from json object. Will be initialized later - Json::Value result; // Json value from Smart object. Will keep conversion result + json_value; // Json value from json object. Will be initialized later + Json::Value + result; // Json value from Smart object. Will keep conversion result SmartObject object; Json::Reader reader; // Json reader - Needed for correct parsing // Parse json object to correct json value - ASSERT_TRUE(reader.parse(json_object, json_value)); // If parsing not successful - no sense to continue + ASSERT_TRUE(reader.parse( + json_object, + json_value)); // If parsing not successful - no sense to continue // Convert json array to SmartObject CFormatterJsonBase::jsonValueToObj(json_value, object); // Convert SmartObject to JSon diff --git a/src/components/formatters/test/CSmartFactory_test.cc b/src/components/formatters/test/CSmartFactory_test.cc index 745b960533..a75a367b96 100644 --- a/src/components/formatters/test/CSmartFactory_test.cc +++ b/src/components/formatters/test/CSmartFactory_test.cc @@ -51,7 +51,8 @@ TEST(CSmartFactoryTest, CreateSmartFactory_ExpectCreated) { EXPECT_EQ(2u, test_factory.structs_schemes().size()); } -TEST(CSmartFactoryTest, CreateSmartObjWithSchema1_ExpectCreatedObjectToCorrespondSmSchema1) { +TEST(CSmartFactoryTest, + CreateSmartObjWithSchema1_ExpectCreatedObjectToCorrespondSmSchema1) { CSmartFactoryTest test_factory; // Create SmartObject with attached SmartChmema SmartObject obj = test_factory.CreateSmartObject(FunctionIdTest::Function1, @@ -70,7 +71,8 @@ TEST(CSmartFactoryTest, CreateSmartObjWithSchema1_ExpectCreatedObjectToCorrespon EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObjWithNotExistedSchema_ExpectCreatedObjectNotValid) { +TEST(CSmartFactoryTest, + CreateSmartObjWithNotExistedSchema_ExpectCreatedObjectNotValid) { CSmartFactoryTest test_factory; // Create SmartObject with attached SmartChmema SmartObject obj = test_factory.CreateSmartObject( @@ -81,7 +83,9 @@ TEST(CSmartFactoryTest, CreateSmartObjWithNotExistedSchema_ExpectCreatedObjectNo EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_MissedOneField_ExpectCreatedNotCorrespondSmartSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObjectWithSchema1_MissedOneField_ExpectCreatedNotCorrespondSmartSchema) { CSmartFactoryTest test_factory; // Create SmartObject with attached SmartChmema SmartObject obj = test_factory.CreateSmartObject(FunctionIdTest::Function1, @@ -99,7 +103,9 @@ TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_MissedOneField_ExpectCreate EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_AddOutOfRangeValue_ExpectCreatedNotCorrespondSmartSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObjectWithSchema1_AddOutOfRangeValue_ExpectCreatedNotCorrespondSmartSchema) { CSmartFactoryTest test_factory; // Create SmartObject with attached SmartChmema SmartObject obj = test_factory.CreateSmartObject(FunctionIdTest::Function1, @@ -118,7 +124,9 @@ TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_AddOutOfRangeValue_ExpectCr EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_AddInvalidValue_ExpectCreatedNotCorrespondSmartSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObjectWithSchema1_AddInvalidValue_ExpectCreatedNotCorrespondSmartSchema) { CSmartFactoryTest test_factory; // Create SmartObject with attached SmartChmema SmartObject obj = test_factory.CreateSmartObject(FunctionIdTest::Function1, @@ -137,7 +145,8 @@ TEST(CSmartFactoryTest, CreateSmartObjectWithSchema1_AddInvalidValue_ExpectCreat EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespondsSmSchema1) { +TEST(CSmartFactoryTest, + CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespondsSmSchema1) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -158,7 +167,9 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespo EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_MissOneField_ExpectCreatedObjectNotCorrespondsSmSchema1) { +TEST( + CSmartFactoryTest, + CreateSmartObj_AttachSchema1_MissOneField_ExpectCreatedObjectNotCorrespondsSmSchema1) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -178,7 +189,8 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_MissOneField_ExpectCreatedO EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachNotExistedSchema_ExpectSmSchemaNotAttached) { +TEST(CSmartFactoryTest, + CreateSmartObj_AttachNotExistedSchema_ExpectSmSchemaNotAttached) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -190,7 +202,9 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachNotExistedSchema_ExpectSmSchemaNotA EXPECT_TRUE(SmartType::SmartType_Map == obj.getType()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_AddInvalidValue_ExpectCreatedObjectNotCorrespondsSmSchema1) { +TEST( + CSmartFactoryTest, + CreateSmartObj_AttachSchema1_AddInvalidValue_ExpectCreatedObjectNotCorrespondsSmSchema1) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -211,7 +225,8 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_AddInvalidValue_ExpectCreat EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespondsSmSchema) { +TEST(CSmartFactoryTest, + CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -225,7 +240,9 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_ExpectCreatedObjectCorrespo EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_OneMandatoryFieldMissed_ExpectCreatedObjectNotCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_AttachSchema1_OneMandatoryFieldMissed_ExpectCreatedObjectNotCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -238,7 +255,8 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema1_OneMandatoryFieldMissed_Exp EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema2_ExpectCreatedObjectCorrespondsSmSchema) { +TEST(CSmartFactoryTest, + CreateSmartObj_AttachSchema2_ExpectCreatedObjectCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -252,7 +270,8 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema2_ExpectCreatedObjectCorrespo EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema_ExpectCreatedObjectCorrespondsSmSchema) { +TEST(CSmartFactoryTest, + CreateSmartObj_AttachSchema_ExpectCreatedObjectCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject without any schema SmartObject obj; @@ -269,11 +288,13 @@ TEST(CSmartFactoryTest, CreateSmartObj_AttachSchema_ExpectCreatedObjectCorrespon EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId_ExpectCreatedObjectCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_WithSchemaFromStructId_ExpectCreatedObjectCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject with schema correspopnding StructId - SmartObject obj = test_factory.CreateSmartObject( - StructIdentifiersTest::Common_1); + SmartObject obj = + test_factory.CreateSmartObject(StructIdentifiersTest::Common_1); // Add fields obj["text"] = "test"; obj["position"] = 200; @@ -288,11 +309,13 @@ TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId_ExpectCreatedObjec EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId_MissedOneField_ExpectCreatedObjectNotCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_WithSchemaFromStructId_MissedOneField_ExpectCreatedObjectNotCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject with schema correspopnding StructId - SmartObject obj = test_factory.CreateSmartObject( - StructIdentifiersTest::Common_1); + SmartObject obj = + test_factory.CreateSmartObject(StructIdentifiersTest::Common_1); // Add fields. One missed. obj["text"] = "test"; obj["image"]["text"] = "test2"; @@ -306,11 +329,13 @@ TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId_MissedOneField_Exp EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_ExpectCreatedObjectCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_WithSchemaFromStructId2_ExpectCreatedObjectCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject with schema correspopnding StructId - SmartObject obj = test_factory.CreateSmartObject( - StructIdentifiersTest::Common_2); + SmartObject obj = + test_factory.CreateSmartObject(StructIdentifiersTest::Common_2); // Add fields obj["text"] = "test"; obj["position"] = 200; @@ -325,11 +350,13 @@ TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_ExpectCreatedObje EXPECT_TRUE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_MissedOneField_ExpectCreatedObjectNotCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_WithSchemaFromStructId2_MissedOneField_ExpectCreatedObjectNotCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject with schema correspopnding StructId - SmartObject obj = test_factory.CreateSmartObject( - StructIdentifiersTest::Common_2); + SmartObject obj = + test_factory.CreateSmartObject(StructIdentifiersTest::Common_2); // Add fields. One missed. obj["text"] = "test"; obj["image"]["text"] = "test2"; @@ -340,11 +367,13 @@ TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_MissedOneField_Ex EXPECT_FALSE(obj.isValid()); } -TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_InvalidValueAdded_ExpectCreatedObjectNotCorrespondsSmSchema) { +TEST( + CSmartFactoryTest, + CreateSmartObj_WithSchemaFromStructId2_InvalidValueAdded_ExpectCreatedObjectNotCorrespondsSmSchema) { CSmartFactoryTest test_factory; // Create empty SmartObject with schema correspopnding StructId - SmartObject obj = test_factory.CreateSmartObject( - StructIdentifiersTest::Common_2); + SmartObject obj = + test_factory.CreateSmartObject(StructIdentifiersTest::Common_2); // Add fields. One missed. obj["text"] = 111; obj["position"] = 200; @@ -359,32 +388,34 @@ TEST(CSmartFactoryTest, CreateSmartObj_WithSchemaFromStructId2_InvalidValueAdded TEST(CSmartFactoryTest, GetSchemaWithSmartFactory_ExpectReceivedSchema) { CSmartFactoryTest test_factory; CSmartSchema schema; - EXPECT_TRUE( - test_factory.GetSchema(FunctionIdTest::Function1, - MessageTypeTest::request, schema)); + EXPECT_TRUE(test_factory.GetSchema( + FunctionIdTest::Function1, MessageTypeTest::request, schema)); } -TEST(CSmartFactoryTest, GetNotExistedSchemaWithSmartFactory_ExpectNotReceivedSchema) { +TEST(CSmartFactoryTest, + GetNotExistedSchemaWithSmartFactory_ExpectNotReceivedSchema) { CSmartFactoryTest test_factory; CSmartSchema schema; - EXPECT_FALSE( - test_factory.GetSchema(FunctionIdTest::Function1, - MessageTypeTest::INVALID_ENUM, schema)); + EXPECT_FALSE(test_factory.GetSchema( + FunctionIdTest::Function1, MessageTypeTest::INVALID_ENUM, schema)); } -TEST(CSmartFactoryTest, GetSchemaWithSmartFactoryWithStructId1_ExpectReceivedSchema) { +TEST(CSmartFactoryTest, + GetSchemaWithSmartFactoryWithStructId1_ExpectReceivedSchema) { CSmartFactoryTest test_factory; CSmartSchema schema; EXPECT_TRUE(test_factory.GetSchema(StructIdentifiersTest::Common_1, schema)); } -TEST(CSmartFactoryTest, GetSchemaWithSmartFactoryWithStructId2_ExpectReceivedSchema) { +TEST(CSmartFactoryTest, + GetSchemaWithSmartFactoryWithStructId2_ExpectReceivedSchema) { CSmartFactoryTest test_factory; CSmartSchema schema; EXPECT_TRUE(test_factory.GetSchema(StructIdentifiersTest::Common_2, schema)); } -TEST(CSmartFactoryTest, GetNotExistedSchemaWithSmartFactoryWithStructId_ExpectNotReceivedSchema) { +TEST(CSmartFactoryTest, + GetNotExistedSchemaWithSmartFactoryWithStructId_ExpectNotReceivedSchema) { CSmartFactoryTest test_factory; CSmartSchema schema; EXPECT_FALSE( @@ -394,4 +425,3 @@ TEST(CSmartFactoryTest, GetNotExistedSchemaWithSmartFactoryWithStructId_ExpectNo } // namespace formatters } // namespace components } // namespace test - diff --git a/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc b/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc index 27c41f717b..50c6c27f44 100644 --- a/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc +++ b/src/components/formatters/test/cFormatterJsonSDLRPCv1_test.cc @@ -89,7 +89,8 @@ TEST(CFormatterJsonSDLRPCv1Test, SmObjWithRequestWithoutMsgNotValid_ToString) { EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv1Test, SmObjWithRequestWithEmptyMsgWithTestSchemaToString) { +TEST(CFormatterJsonSDLRPCv1Test, + SmObjWithRequestWithEmptyMsgWithTestSchemaToString) { SmartObject srcObj; CSmartSchema schema = initObjectSchema(); srcObj.setSchema(schema); @@ -121,7 +122,8 @@ TEST(CFormatterJsonSDLRPCv1Test, SmObjWithRequestWithEmptyMsgWithTestSchemaToStr EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv1Test, SmObjWithRequestWithNonemptyMsgWithTestSchemaToString) { +TEST(CFormatterJsonSDLRPCv1Test, + SmObjWithRequestWithNonemptyMsgWithTestSchemaToString) { SmartObject srcObj; CSmartSchema schema = initObjectSchema(); srcObj.setSchema(schema); @@ -278,7 +280,8 @@ TEST(CFormatterJsonSDLRPCv1Test, SmObjWithResponseToString) { EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv1Test, SmObjWithResponseWithoutSchemaWithoutParamsToString) { +TEST(CFormatterJsonSDLRPCv1Test, + SmObjWithResponseWithoutSchemaWithoutParamsToString) { SmartObject srcObj; srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::response; std::string jsonString; @@ -326,7 +329,8 @@ TEST(CFormatterJsonSDLRPCv1Test, StringRequestToSmObj) { obj.setSchema(schema); bool result = CFormatterJsonSDLRPCv1::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj); + MessageTypeTest::eType>( + inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kSuccess, result); EXPECT_EQ(Errors::eType::OK, obj.validate()); @@ -369,7 +373,8 @@ TEST(CFormatterJsonSDLRPCv1Test, StringRequestWithoutNameToSmartObject) { SmartObject obj; bool result = CFormatterJsonSDLRPCv1::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj); + MessageTypeTest::eType>( + inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kParsingError, result); @@ -410,7 +415,8 @@ TEST(CFormatterJsonSDLRPCv1Test, StringRequestWithIncorrectCorIDToSmartObject) { SmartObject obj; bool result = CFormatterJsonSDLRPCv1::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj); + MessageTypeTest::eType>( + inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kParsingError, result); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::request); @@ -440,7 +446,8 @@ TEST(CFormatterJsonSDLRPCv1Test, StringResponceToSmartObject) { obj.setSchema(schema); bool result = CFormatterJsonSDLRPCv1::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj); + MessageTypeTest::eType>( + inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kSuccess, result); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::response); EXPECT_EQ(obj[S_PARAMS][S_FUNCTION_ID], 0); @@ -467,7 +474,8 @@ TEST(CFormatterJsonSDLRPCv1Test, StringNotificationToSmartObject) { obj.setSchema(schema); bool result = CFormatterJsonSDLRPCv1::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj); + MessageTypeTest::eType>( + inputJsonString, obj); EXPECT_EQ(CFormatterJsonSDLRPCv1::kSuccess, result); EXPECT_EQ(Errors::eType::OK, obj.validate()); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::notification); @@ -497,6 +505,6 @@ TEST(CFormatterJsonSDLRPCv1Test, MetaFormatToString) { EXPECT_EQ(meta_formatter_error_code::kErrorOk, result); } -} // namespace formatters -} // namespace components -} // namespace test +} // namespace formatters +} // namespace components +} // namespace test diff --git a/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc b/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc index 090d01c82f..b191ae4d90 100644 --- a/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc +++ b/src/components/formatters/test/cFormatterJsonSDLRPCv2_test.cc @@ -75,7 +75,8 @@ TEST(CFormatterJsonSDLRPCv2Test, SmObjWithRequestWithoutMsgNotValid_ToString) { EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv2Test, SmObjWithRequestWithEmptyMsgWithTestSchemaToString) { +TEST(CFormatterJsonSDLRPCv2Test, + SmObjWithRequestWithEmptyMsgWithTestSchemaToString) { SmartObject srcObj; CSmartSchema schema = initObjectSchema(); srcObj.setSchema(schema); @@ -100,7 +101,8 @@ TEST(CFormatterJsonSDLRPCv2Test, SmObjWithRequestWithEmptyMsgWithTestSchemaToStr EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv2Test, SmObjWithRequestWithNonemptyMsgWithTestSchemaToString) { +TEST(CFormatterJsonSDLRPCv2Test, + SmObjWithRequestWithNonemptyMsgWithTestSchemaToString) { SmartObject srcObj; CSmartSchema schema = initObjectSchema(); srcObj.setSchema(schema); @@ -216,7 +218,8 @@ TEST(CFormatterJsonSDLRPCv2Test, SmObjWithResponseToString) { EXPECT_EQ(expectOutputJsonString, jsonString); } -TEST(CFormatterJsonSDLRPCv2Test, SmObjWithResponseWithoutSchemaWithoutParamsToString) { +TEST(CFormatterJsonSDLRPCv2Test, + SmObjWithResponseWithoutSchemaWithoutParamsToString) { SmartObject srcObj; srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::response; std::string jsonString; @@ -252,9 +255,11 @@ TEST(CFormatterJsonSDLRPCv2Test, StringRequestWithoutCorIdToSmObj) { obj.setSchema(schema); bool result = CFormatterJsonSDLRPCv2::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj, - FunctionIDTest::RegisterAppInterface, - MessageTypeTest::request); + MessageTypeTest::eType>( + inputJsonString, + obj, + FunctionIDTest::RegisterAppInterface, + MessageTypeTest::request); EXPECT_EQ(true, result); EXPECT_EQ(Errors::eType::MISSING_MANDATORY_PARAMETER, obj.validate()); @@ -294,9 +299,12 @@ TEST(CFormatterJsonSDLRPCv2Test, StringRequestWithCorIdToSmObj) { obj.setSchema(schema); int32_t corId = 10; bool result = CFormatterJsonSDLRPCv2::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj, - FunctionIDTest::RegisterAppInterface, - MessageTypeTest::request, corId); + MessageTypeTest::eType>( + inputJsonString, + obj, + FunctionIDTest::RegisterAppInterface, + MessageTypeTest::request, + corId); EXPECT_EQ(true, result); EXPECT_EQ(Errors::eType::OK, obj.validate()); @@ -328,9 +336,12 @@ TEST(CFormatterJsonSDLRPCv2Test, StringResponceWithCorIdToSmartObject) { obj.setSchema(schema); int32_t corId = 10; bool result = CFormatterJsonSDLRPCv2::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj, - FunctionIDTest::RegisterAppInterface, - MessageTypeTest::response, corId); + MessageTypeTest::eType>( + inputJsonString, + obj, + FunctionIDTest::RegisterAppInterface, + MessageTypeTest::response, + corId); EXPECT_EQ(true, result); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::response); @@ -354,9 +365,12 @@ TEST(CFormatterJsonSDLRPCv2Test, StringNotificationToSmartObject) { obj.setSchema(schema); int32_t corId = 10; bool result = CFormatterJsonSDLRPCv2::fromString<FunctionIDTest::eType, - MessageTypeTest::eType>(inputJsonString, obj, - FunctionIDTest::SetGlobalProperties, - MessageTypeTest::notification, corId); + MessageTypeTest::eType>( + inputJsonString, + obj, + FunctionIDTest::SetGlobalProperties, + MessageTypeTest::notification, + corId); EXPECT_EQ(true, result); EXPECT_EQ(Errors::eType::OK, obj.validate()); EXPECT_EQ(obj[S_PARAMS][S_MESSAGE_TYPE], MessageTypeTest::notification); diff --git a/src/components/formatters/test/formatter_json_rpc_test.cc b/src/components/formatters/test/formatter_json_rpc_test.cc index 3650fb14d6..c2b0d73394 100644 --- a/src/components/formatters/test/formatter_json_rpc_test.cc +++ b/src/components/formatters/test/formatter_json_rpc_test.cc @@ -60,7 +60,7 @@ void CompactJson(std::string& str) { Json::FastWriter writer; str = writer.write(root); if (str[str.size() - 1] == '\n') { - str.erase(str.size()-1,1); + str.erase(str.size() - 1, 1); } } @@ -69,11 +69,14 @@ const int64_t big_64int = 100000000000; const std::string str_with_big_int64 = "100000000000"; } // namespace -TEST(FormatterJsonRPCTest, CheckCompactJson){ +TEST(FormatterJsonRPCTest, CheckCompactJson) { std::string before_compact( - "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"BasicCommunication.OnSystemRequest\"," - "\n \"params\" : {\n \"fileName\" : \"file \n Name\",\n \"length\" : 100000000000,\n" - "\"offset\" : 100000000000,\n \"requestType\" : \"PROPRIETARY\"\n }\n}\n"); + "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : " + "\"BasicCommunication.OnSystemRequest\"," + "\n \"params\" : {\n \"fileName\" : \"file \n Name\",\n " + "\"length\" : 100000000000,\n" + "\"offset\" : 100000000000,\n \"requestType\" : \"PROPRIETARY\"\n " + "}\n}\n"); std::string after_compact = before_compact; CompactJson(after_compact); @@ -278,7 +281,8 @@ TEST(FormatterJsonRPCTest, RequestWithoutCorID_ToString_Fail) { EXPECT_FALSE(FormatterJsonRpc::ToString(obj, result)); CompactJson(result); - const std::string json_string("{\"jsonrpc\":\"2.0\",\"method\":\"AddCommandID\"}"); + const std::string json_string( + "{\"jsonrpc\":\"2.0\",\"method\":\"AddCommandID\"}"); EXPECT_EQ(json_string, result); } diff --git a/src/components/formatters/test/generic_json_formatter_test.cc b/src/components/formatters/test/generic_json_formatter_test.cc index 51da8c91ff..41ecfd9ee3 100644 --- a/src/components/formatters/test/generic_json_formatter_test.cc +++ b/src/components/formatters/test/generic_json_formatter_test.cc @@ -76,18 +76,20 @@ TEST(GenericJsonFormatter, ToString) { obj["subobject"]["arrayField"][1] = 'c'; obj["subobject"]["arrayField"][2][0] = 10.0; formatters::GenericJsonFormatter::ToString(obj, result); - ASSERT_STREQ("{\n" - " \"intField\" : 100500,\n" - " \"stringField\" : \"s\",\n" - " \"subobject\" : {\n" - " \"arrayField\" : [\n" - " 0,\n" - " \"c\",\n" - " [ 10.0 ]\n" - " ],\n" - " \"boolField\" : false\n" - " }\n" - "}\n", result.c_str()); + ASSERT_STREQ( + "{\n" + " \"intField\" : 100500,\n" + " \"stringField\" : \"s\",\n" + " \"subobject\" : {\n" + " \"arrayField\" : [\n" + " 0,\n" + " \"c\",\n" + " [ 10.0 ]\n" + " ],\n" + " \"boolField\" : false\n" + " }\n" + "}\n", + result.c_str()); } TEST(GenericJsonFormatter, FromString) { @@ -120,8 +122,8 @@ TEST(GenericJsonFormatter, FromString) { ASSERT_EQ(smartobj::SmartType_String, result.getType()); ASSERT_STREQ("str", result.asString().c_str()); - ASSERT_TRUE(formatters::GenericJsonFormatter::FromString("[true, null, 10]", - result)); + ASSERT_TRUE( + formatters::GenericJsonFormatter::FromString("[true, null, 10]", result)); ASSERT_EQ(smartobj::SmartType_Array, result.getType()); ASSERT_EQ(smartobj::SmartType_Boolean, result.getElement(0U).getType()); ASSERT_EQ(true, result.getElement(0U).asBool()); @@ -129,15 +131,15 @@ TEST(GenericJsonFormatter, FromString) { ASSERT_EQ(smartobj::SmartType_Integer, result.getElement(2U).getType()); ASSERT_EQ(10, result.getElement(2U).asInt()); - ASSERT_TRUE( - formatters::GenericJsonFormatter::FromString("{" - " \"intField\": 100500," - " \"subobject\": {" - " \"arrayField\": [1, null]," - " \"strField\": \"str\"" - " }" - "}", - result)); + ASSERT_TRUE(formatters::GenericJsonFormatter::FromString( + "{" + " \"intField\": 100500," + " \"subobject\": {" + " \"arrayField\": [1, null]," + " \"strField\": \"str\"" + " }" + "}", + result)); ASSERT_EQ(smartobj::SmartType_Map, result.getType()); ASSERT_EQ(smartobj::SmartType_Integer, result.getElement("intField").getType()); @@ -146,17 +148,27 @@ TEST(GenericJsonFormatter, FromString) { ASSERT_EQ(smartobj::SmartType_Array, result.getElement("subobject").getElement("arrayField").getType()); ASSERT_EQ(smartobj::SmartType_Integer, - result.getElement("subobject").getElement("arrayField").getElement(0U).getType()); - ASSERT_EQ(1, result.getElement("subobject").getElement("arrayField").getElement(0U).asInt()); + result.getElement("subobject") + .getElement("arrayField") + .getElement(0U) + .getType()); + ASSERT_EQ(1, + result.getElement("subobject") + .getElement("arrayField") + .getElement(0U) + .asInt()); ASSERT_EQ(smartobj::SmartType_Null, - result.getElement("subobject").getElement("arrayField").getElement(1U).getType()); + result.getElement("subobject") + .getElement("arrayField") + .getElement(1U) + .getType()); ASSERT_EQ(smartobj::SmartType_String, result.getElement("subobject").getElement("strField").getType()); ASSERT_STREQ( - "str", - result.getElement("subobject").getElement("strField").asString().c_str()); + "str", + result.getElement("subobject").getElement("strField").asString().c_str()); } -} // formatters -} // components -} // test +} // formatters +} // components +} // test diff --git a/src/components/formatters/test/include/SmartFactoryTestHelper.h b/src/components/formatters/test/include/SmartFactoryTestHelper.h index e9bb32255a..d195fe1833 100644 --- a/src/components/formatters/test/include/SmartFactoryTestHelper.h +++ b/src/components/formatters/test/include/SmartFactoryTestHelper.h @@ -74,12 +74,7 @@ enum eType { } // namespace TestType namespace FunctionIdTest { -enum eType { - INVALID_ENUM = -1, - Function1, - Function2, - Function3 -}; +enum eType { INVALID_ENUM = -1, Function1, Function2, Function3 }; } // namespace FunctionIdTest namespace MessageTypeTest { @@ -93,69 +88,67 @@ enum eType { } // namespace MessageTypeTest namespace StructIdentifiersTest { -enum eType { - INVALID_ENUM = -1, - Common_1, - Common_2, - Common_3 -}; +enum eType { INVALID_ENUM = -1, Common_1, Common_2, Common_3 }; } // namespace StructIdentifiersTest class CSmartFactoryTest : public CSmartFactory<FunctionIdTest::eType, - MessageTypeTest::eType, StructIdentifiersTest::eType> { + MessageTypeTest::eType, + StructIdentifiersTest::eType> { public: CSmartFactoryTest(); std::map<SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>, - CSmartSchema> function_schemes() { + CSmartSchema> + function_schemes() { return functions_schemes_; } std::map<StructIdentifiersTest::eType, CSmartSchema> structs_schemes() { return structs_schemes_; } + protected: typedef std::map<const StructIdentifiersTest::eType, - utils::SharedPtr<ISchemaItem> > TStructsSchemaItems; + utils::SharedPtr<ISchemaItem> > TStructsSchemaItems; static utils::SharedPtr<ISchemaItem> ProvideObjectSchemaItemForStruct( - TStructsSchemaItems &struct_schema_items, + TStructsSchemaItems& struct_schema_items, const StructIdentifiersTest::eType struct_id); - void InitStructSchemes(TStructsSchemaItems &struct_schema_items); + void InitStructSchemes(TStructsSchemaItems& struct_schema_items); void InitFunctionSchemes( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function1_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function1_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function2_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function2_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function3_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static CSmartSchema InitFunction_Function3_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items); + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items); static utils::SharedPtr<ISchemaItem> InitStructSchemaItem_Common_1( - TStructsSchemaItems &struct_schema_items); + TStructsSchemaItems& struct_schema_items); static utils::SharedPtr<ISchemaItem> InitStructSchemaItem_Common_2(); }; diff --git a/src/components/formatters/test/include/create_smartSchema.h b/src/components/formatters/test/include/create_smartSchema.h index 4498c5d333..3514b7fe94 100644 --- a/src/components/formatters/test/include/create_smartSchema.h +++ b/src/components/formatters/test/include/create_smartSchema.h @@ -54,18 +54,10 @@ enum eType { } namespace Language { -enum eType { - INVALID_ENUM = -1, - EN_EU, - RU_RU -}; +enum eType { INVALID_ENUM = -1, EN_EU, RU_RU }; } namespace AppTypeTest { -enum eType { - INVALID_ENUM = -1, - SYSTEM, - MEDIA -}; +enum eType { INVALID_ENUM = -1, SYSTEM, MEDIA }; } namespace SpeechCapabilities { enum eType { @@ -75,11 +67,7 @@ enum eType { } namespace StructIdentifiers { -enum eType { - INVALID_ENUM = -1, - Struct1, - Struct2 -}; +enum eType { INVALID_ENUM = -1, Struct1, Struct2 }; } CSmartSchema initObjectSchema(); diff --git a/src/components/formatters/test/include/meta_formatter_test_helper.h b/src/components/formatters/test/include/meta_formatter_test_helper.h index a1111e2a49..1494c75c4b 100644 --- a/src/components/formatters/test/include/meta_formatter_test_helper.h +++ b/src/components/formatters/test/include/meta_formatter_test_helper.h @@ -46,7 +46,6 @@ namespace formatters { class CMetaFormatterTestHelper : public ::testing::Test { protected: - virtual void SetUp(); virtual void TearDown(); @@ -80,4 +79,4 @@ class CMetaFormatterTestHelper : public ::testing::Test { } // namespace components } // namespace test -#endif // SRC_COMPONENTS_FORMATTERS_TEST_INCLUDE_METAFORMATTERTESTHELPER_H_ +#endif // SRC_COMPONENTS_FORMATTERS_TEST_INCLUDE_METAFORMATTERTESTHELPER_H_ diff --git a/src/components/formatters/test/meta_formatter_test.cc b/src/components/formatters/test/meta_formatter_test.cc index 17c2506ac6..b5691c2c90 100644 --- a/src/components/formatters/test/meta_formatter_test.cc +++ b/src/components/formatters/test/meta_formatter_test.cc @@ -38,11 +38,13 @@ namespace test { namespace components { namespace formatters { -TEST_F(CMetaFormatterTestHelper, inputObjectIdenticalToSchemaWithAndWithoutMandatoryParams) { +TEST_F(CMetaFormatterTestHelper, + inputObjectIdenticalToSchemaWithAndWithoutMandatoryParams) { Json::Value value; Json::Reader reader; - CSmartFactory<FunctionIDTest::eType, MessageTypeTest::eType, - StructIdentifiers::eType> factory_; + CSmartFactory<FunctionIDTest::eType, + MessageTypeTest::eType, + StructIdentifiers::eType> factory_; SmartObject object1 = factory_.CreateSmartObject( FunctionIDTest::RegisterAppInterface, MessageTypeTest::request); @@ -59,31 +61,32 @@ TEST_F(CMetaFormatterTestHelper, inputObjectIdenticalToSchemaWithAndWithoutManda FillObjectIdenticalToSchema(object1); FillObjectIdenticalToSchemaWithoutNoMandatoriesParams(object2); bool creationresult; - creationresult = CMetaFormatter::CreateObjectByPattern(object1, schema, - result_object1); + creationresult = + CMetaFormatter::CreateObjectByPattern(object1, schema, result_object1); EXPECT_TRUE(creationresult); - creationresult = CMetaFormatter::CreateObjectByPattern(object2, schema, - result_object2); + creationresult = + CMetaFormatter::CreateObjectByPattern(object2, schema, result_object2); EXPECT_TRUE(creationresult); // Uncomment code to print objects in console -// std::string formatted_string; -// CFormatterJsonSDLRPCv1::toString(object1, formatted_string); -// printf("object1 %s\n", formatted_string.c_str()); -// -// CFormatterJsonSDLRPCv1::toString(result_object1, formatted_string); -// printf("result_object1 %s\n", formatted_string.c_str()); -// -// CFormatterJsonSDLRPCv1::toString(object2, formatted_string); -// printf("object2 %s\n", formatted_string.c_str()); -// -// CFormatterJsonSDLRPCv1::toString(result_object2, formatted_string); -// printf("result_object2 %s\n", formatted_string.c_str()); + // std::string formatted_string; + // CFormatterJsonSDLRPCv1::toString(object1, formatted_string); + // printf("object1 %s\n", formatted_string.c_str()); + // + // CFormatterJsonSDLRPCv1::toString(result_object1, formatted_string); + // printf("result_object1 %s\n", formatted_string.c_str()); + // + // CFormatterJsonSDLRPCv1::toString(object2, formatted_string); + // printf("object2 %s\n", formatted_string.c_str()); + // + // CFormatterJsonSDLRPCv1::toString(result_object2, formatted_string); + // printf("result_object2 %s\n", formatted_string.c_str()); CompareObjects(object1, result_object1); CompareObjects(object2, result_object2); - // Enums must be unapplied (converted to string) in order to be compared against strings + // Enums must be unapplied (converted to string) in order to be compared + // against strings result_object1.getSchema().unapplySchema(result_object1); EXPECT_EQ("request", result_object1[S_PARAMS][S_MESSAGE_TYPE].asString()); EXPECT_EQ("RegisterAppInterface", @@ -102,25 +105,24 @@ TEST_F(CMetaFormatterTestHelper, NormalSchemaWithEmptyObject) { // Get schema CSmartSchema schema = initSchemaForMetaFormatter(); - bool create_object_result = CMetaFormatter::CreateObjectByPattern( - object, schema, result_object); + bool create_object_result = + CMetaFormatter::CreateObjectByPattern(object, schema, result_object); EXPECT_TRUE(create_object_result); FillObjectWithDefaultValues(expected_object); CompareObjects(expected_object, result_object); -// Uncomment code to print objects in console -// std::string str; -// AnyObjectToJsonString(result_object, str); -// printf("result_object(default) %s", str.c_str()); -// AnyObjectToJsonString(expected_object, str); -// printf("expected_object %s", str.c_str()); - - + // Uncomment code to print objects in console + // std::string str; + // AnyObjectToJsonString(result_object, str); + // printf("result_object(default) %s", str.c_str()); + // AnyObjectToJsonString(expected_object, str); + // printf("expected_object %s", str.c_str()); } -TEST_F(CMetaFormatterTestHelper, NormalSchemaWithObjectWithoutSomeMandatoryFields) { +TEST_F(CMetaFormatterTestHelper, + NormalSchemaWithObjectWithoutSomeMandatoryFields) { SmartObject object; SmartObject result_object; @@ -137,58 +139,61 @@ TEST_F(CMetaFormatterTestHelper, NormalSchemaWithObjectWithoutSomeMandatoryField EXPECT_EQ( 0, result_object[S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"].asInt()); -// Uncomment code to print object in console -// std::string str; -// AnyObjectToJsonString(result_object, str); -// printf("result_object %s", str.c_str()); - + // Uncomment code to print object in console + // std::string str; + // AnyObjectToJsonString(result_object, str); + // printf("result_object %s", str.c_str()); } TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyMap) { std::map<std::string, CObjectSchemaItem::SMember> schemaMembersMap; - CSmartSchema map_schema = CSmartSchema( - CObjectSchemaItem::create(schemaMembersMap)); + CSmartSchema map_schema = + CSmartSchema(CObjectSchemaItem::create(schemaMembersMap)); SmartObject object; SmartObject result_object_empty_map; SmartObject object_empty_map = SmartObject(SmartType_Map); - CMetaFormatter::CreateObjectByPattern(object_empty_map, map_schema, - result_object_empty_map); - EXPECT_EQ(SmartType_Map, result_object_empty_map.getType())<< "smartObject is not map type"; - EXPECT_EQ(0u, result_object_empty_map.length())<< "non empty map"; - - CMetaFormatter::CreateObjectByPattern(object, map_schema, - result_object_empty_map); - EXPECT_EQ(SmartType_Map, result_object_empty_map.getType())<< "smartObject is not map type"; - EXPECT_EQ(0u, result_object_empty_map.length())<< "non empty map"; + CMetaFormatter::CreateObjectByPattern( + object_empty_map, map_schema, result_object_empty_map); + EXPECT_EQ(SmartType_Map, result_object_empty_map.getType()) + << "smartObject is not map type"; + EXPECT_EQ(0u, result_object_empty_map.length()) << "non empty map"; + + CMetaFormatter::CreateObjectByPattern( + object, map_schema, result_object_empty_map); + EXPECT_EQ(SmartType_Map, result_object_empty_map.getType()) + << "smartObject is not map type"; + EXPECT_EQ(0u, result_object_empty_map.length()) << "non empty map"; object["field1"] = 0; object["field2"] = SmartObject(); - CMetaFormatter::CreateObjectByPattern(object, map_schema, - result_object_empty_map); - EXPECT_EQ(SmartType_Map, result_object_empty_map.getType())<< "smartObject is not map type"; - EXPECT_EQ(0u, result_object_empty_map.length())<< "non empty map"; + CMetaFormatter::CreateObjectByPattern( + object, map_schema, result_object_empty_map); + EXPECT_EQ(SmartType_Map, result_object_empty_map.getType()) + << "smartObject is not map type"; + EXPECT_EQ(0u, result_object_empty_map.length()) << "non empty map"; // Fill object with any values. Result must be the same FillObjectIdenticalToSchema(object); - CMetaFormatter::CreateObjectByPattern(object, map_schema, - result_object_empty_map); - EXPECT_EQ(SmartType_Map, result_object_empty_map.getType())<< "smartObject is not map type"; - EXPECT_EQ(0u, result_object_empty_map.length())<< "non empty map"; + CMetaFormatter::CreateObjectByPattern( + object, map_schema, result_object_empty_map); + EXPECT_EQ(SmartType_Map, result_object_empty_map.getType()) + << "smartObject is not map type"; + EXPECT_EQ(0u, result_object_empty_map.length()) << "non empty map"; // Fill object with any values. Result must be the same FillObjectIdenticalToSchemaWithoutNoMandatoriesParams(object); - CMetaFormatter::CreateObjectByPattern(object, map_schema, - result_object_empty_map); - EXPECT_EQ(SmartType_Map, result_object_empty_map.getType())<< "smartObject is not map type"; - EXPECT_EQ(0u, result_object_empty_map.length())<< "non empty map"; - -// Uncomment code to print object in console -// std::string str; -// AnyObjectToJsonString(result_object_empty_map, str); -// printf("result_object(empty map) %s", str.c_str()); - + CMetaFormatter::CreateObjectByPattern( + object, map_schema, result_object_empty_map); + EXPECT_EQ(SmartType_Map, result_object_empty_map.getType()) + << "smartObject is not map type"; + EXPECT_EQ(0u, result_object_empty_map.length()) << "non empty map"; + + // Uncomment code to print object in console + // std::string str; + // AnyObjectToJsonString(result_object_empty_map, str); + // printf("result_object(empty map) %s", str.c_str()); } TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArray) { @@ -199,38 +204,42 @@ TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArray) { SmartObject object_empty_aray = SmartObject(SmartType_Array); - CMetaFormatter::CreateObjectByPattern(object_empty_aray, array_schema, - result_object_empty_array); - EXPECT_EQ(SmartType_Array, result_object_empty_array.getType())<< "smartObject is not array type"; - EXPECT_EQ(0u, result_object_empty_array.length())<< "non empty array"; + CMetaFormatter::CreateObjectByPattern( + object_empty_aray, array_schema, result_object_empty_array); + EXPECT_EQ(SmartType_Array, result_object_empty_array.getType()) + << "smartObject is not array type"; + EXPECT_EQ(0u, result_object_empty_array.length()) << "non empty array"; - CMetaFormatter::CreateObjectByPattern(object, array_schema, - result_object_empty_array); - EXPECT_EQ(SmartType_Array, result_object_empty_array.getType())<< "smartObject is not array type"; - EXPECT_EQ(0u, result_object_empty_array.length())<< "non empty array"; + CMetaFormatter::CreateObjectByPattern( + object, array_schema, result_object_empty_array); + EXPECT_EQ(SmartType_Array, result_object_empty_array.getType()) + << "smartObject is not array type"; + EXPECT_EQ(0u, result_object_empty_array.length()) << "non empty array"; // Fill object with any values. Result must be the same FillObjectIdenticalToSchema(object); - CMetaFormatter::CreateObjectByPattern(object, array_schema, - result_object_empty_array); - EXPECT_EQ(SmartType_Array, result_object_empty_array.getType())<< "smartObject is not array type"; - EXPECT_EQ(0u, result_object_empty_array.length())<< "non empty array"; + CMetaFormatter::CreateObjectByPattern( + object, array_schema, result_object_empty_array); + EXPECT_EQ(SmartType_Array, result_object_empty_array.getType()) + << "smartObject is not array type"; + EXPECT_EQ(0u, result_object_empty_array.length()) << "non empty array"; // Fill object with any values. Result must be the same FillObjectWithoutSomeMandatoryFields(object); - CMetaFormatter::CreateObjectByPattern(object, array_schema, - result_object_empty_array); - EXPECT_EQ(SmartType_Array, result_object_empty_array.getType())<< "smartObject is not array type"; - EXPECT_EQ(0u, result_object_empty_array.length())<< "non empty array"; - -// Uncomment code to print object in console -// std::string str; -// AnyObjectToJsonString(result_object_empty_array, str); -// printf("result_object(empty array) %s", str.c_str()); - + CMetaFormatter::CreateObjectByPattern( + object, array_schema, result_object_empty_array); + EXPECT_EQ(SmartType_Array, result_object_empty_array.getType()) + << "smartObject is not array type"; + EXPECT_EQ(0u, result_object_empty_array.length()) << "non empty array"; + + // Uncomment code to print object in console + // std::string str; + // AnyObjectToJsonString(result_object_empty_array, str); + // printf("result_object(empty array) %s", str.c_str()); } -TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArrayAndEmptyMapWithOtherParameters) { +TEST_F(CMetaFormatterTestHelper, + ObjectWithEmptyArrayAndEmptyMapWithOtherParameters) { // Arrange SmartObject result_object; SmartObject object; @@ -254,8 +263,8 @@ TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArrayAndEmptyMapWithOtherParamet TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), TSchemaItemParameter<int>(2)), false); - paramsMembersMap[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), false); + paramsMembersMap[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), false); std::map<std::string, CObjectSchemaItem::SMember> schemaMembersMap; @@ -286,7 +295,8 @@ TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArrayAndEmptyMapWithOtherParamet schemaMembersMap["non_mandatory_string"] = CObjectSchemaItem::SMember( CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(500), + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(500), TSchemaItemParameter<std::string>("ignoredDefValue")), false); @@ -313,13 +323,12 @@ TEST_F(CMetaFormatterTestHelper, ObjectWithEmptyArrayAndEmptyMapWithOtherParamet CMetaFormatter::CreateObjectByPattern(object, schema, result_object); -// Uncomment code to print object in console -// std::string str; -// AnyObjectToJsonString(object, str); -// printf("object %s", str.c_str()); -// AnyObjectToJsonString(result_object, str); -// printf("result_object %s", str.c_str()); - + // Uncomment code to print object in console + // std::string str; + // AnyObjectToJsonString(object, str); + // printf("object %s", str.c_str()); + // AnyObjectToJsonString(result_object, str); + // printf("result_object %s", str.c_str()); // Assert EXPECT_EQ(500, result_object[S_PARAMS][S_FUNCTION_ID].asInt()); diff --git a/src/components/formatters/test/src/SmartFactoryTestHelper.cc b/src/components/formatters/test/src/SmartFactoryTestHelper.cc index 8f601afc29..8216c5372d 100644 --- a/src/components/formatters/test/src/SmartFactoryTestHelper.cc +++ b/src/components/formatters/test/src/SmartFactoryTestHelper.cc @@ -34,23 +34,34 @@ using namespace test::components::formatters; -template<> -const EnumConversionHelper<TestType::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::TestType::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::TestType::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<TestType::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::TestType::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::TestType::eType>::InitCStringToEnumMap(); - -template<> +template <> +const EnumConversionHelper<TestType::eType>::EnumToCStringMap + EnumConversionHelper< + test::components::formatters::TestType::eType>::enum_to_cstring_map_ = + EnumConversionHelper<test::components::formatters::TestType::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<TestType::eType>::CStringToEnumMap + EnumConversionHelper< + test::components::formatters::TestType::eType>::cstring_to_enum_map_ = + EnumConversionHelper<test::components::formatters::TestType::eType>:: + InitCStringToEnumMap(); + +template <> const char* const EnumConversionHelper<TestType::eType>::cstring_values_[] = { - "APPLICATION_NOT_REGISTERED", "SUCCESS", "TOO_MANY_PENDING_REQUESTS", - "REJECTED", "INVALID_DATA", "OUT_OF_MEMORY", "ABORTED", "USER_DISALLOWED", - "GENERIC_ERROR", "DISALLOWED" }; - -template<> + "APPLICATION_NOT_REGISTERED", + "SUCCESS", + "TOO_MANY_PENDING_REQUESTS", + "REJECTED", + "INVALID_DATA", + "OUT_OF_MEMORY", + "ABORTED", + "USER_DISALLOWED", + "GENERIC_ERROR", + "DISALLOWED"}; + +template <> const TestType::eType EnumConversionHelper<TestType::eType>::enum_values_[] = { test::components::formatters::TestType::APPLICATION_NOT_REGISTERED, test::components::formatters::TestType::SUCCESS, @@ -61,51 +72,64 @@ const TestType::eType EnumConversionHelper<TestType::eType>::enum_values_[] = { test::components::formatters::TestType::ABORTED, test::components::formatters::TestType::USER_DISALLOWED, test::components::formatters::TestType::GENERIC_ERROR, - test::components::formatters::TestType::DISALLOWED }; - -template<> -const EnumConversionHelper<FunctionIdTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::FunctionIdTest::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::FunctionIdTest::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<FunctionIdTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::FunctionIdTest::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::FunctionIdTest::eType>::InitCStringToEnumMap(); - -template<> -const char* const EnumConversionHelper<FunctionIdTest::eType>::cstring_values_[] = - { "Function1", "Function2", "Function3" }; - -template<> -const FunctionIdTest::eType EnumConversionHelper<FunctionIdTest::eType>::enum_values_[] = - { test::components::formatters::FunctionIdTest::Function1, + test::components::formatters::TestType::DISALLOWED}; + +template <> +const EnumConversionHelper<FunctionIdTest::eType>::EnumToCStringMap + EnumConversionHelper<test::components::formatters::FunctionIdTest::eType>:: + enum_to_cstring_map_ = EnumConversionHelper< + test::components::formatters::FunctionIdTest::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<FunctionIdTest::eType>::CStringToEnumMap + EnumConversionHelper<test::components::formatters::FunctionIdTest::eType>:: + cstring_to_enum_map_ = EnumConversionHelper< + test::components::formatters::FunctionIdTest::eType>:: + InitCStringToEnumMap(); + +template <> +const char* const + EnumConversionHelper<FunctionIdTest::eType>::cstring_values_[] = { + "Function1", "Function2", "Function3"}; + +template <> +const FunctionIdTest::eType + EnumConversionHelper<FunctionIdTest::eType>::enum_values_[] = { + test::components::formatters::FunctionIdTest::Function1, test::components::formatters::FunctionIdTest::Function2, - test::components::formatters::FunctionIdTest::Function3 }; - -template<> -const EnumConversionHelper<MessageTypeTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::MessageTypeTest::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::MessageTypeTest::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<MessageTypeTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::MessageTypeTest::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::MessageTypeTest::eType>::InitCStringToEnumMap(); - -template<> -const char* const EnumConversionHelper<MessageTypeTest::eType>::cstring_values_[] = - { "request", "response", "notification" }; - -template<> -const MessageTypeTest::eType EnumConversionHelper<MessageTypeTest::eType>::enum_values_[] = - { test::components::formatters::MessageTypeTest::request, + test::components::formatters::FunctionIdTest::Function3}; + +template <> +const EnumConversionHelper<MessageTypeTest::eType>::EnumToCStringMap + EnumConversionHelper<test::components::formatters::MessageTypeTest::eType>:: + enum_to_cstring_map_ = EnumConversionHelper< + test::components::formatters::MessageTypeTest::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<MessageTypeTest::eType>::CStringToEnumMap + EnumConversionHelper<test::components::formatters::MessageTypeTest::eType>:: + cstring_to_enum_map_ = EnumConversionHelper< + test::components::formatters::MessageTypeTest::eType>:: + InitCStringToEnumMap(); + +template <> +const char* const + EnumConversionHelper<MessageTypeTest::eType>::cstring_values_[] = { + "request", "response", "notification"}; + +template <> +const MessageTypeTest::eType + EnumConversionHelper<MessageTypeTest::eType>::enum_values_[] = { + test::components::formatters::MessageTypeTest::request, test::components::formatters::MessageTypeTest::response, - test::components::formatters::MessageTypeTest::notification }; + test::components::formatters::MessageTypeTest::notification}; CSmartFactoryTest::CSmartFactoryTest() - : CSmartFactory<FunctionIdTest::eType, MessageTypeTest::eType, - StructIdentifiersTest::eType>() { + : CSmartFactory<FunctionIdTest::eType, + MessageTypeTest::eType, + StructIdentifiersTest::eType>() { TStructsSchemaItems struct_schema_items; InitStructSchemes(struct_schema_items); std::set<FunctionIdTest::eType> function_id_items; @@ -118,51 +142,49 @@ CSmartFactoryTest::CSmartFactoryTest() message_type_items.insert(MessageTypeTest::response); message_type_items.insert(MessageTypeTest::notification); message_type_items.insert(MessageTypeTest::error_response); - InitFunctionSchemes(struct_schema_items, function_id_items, - message_type_items); + InitFunctionSchemes( + struct_schema_items, function_id_items, message_type_items); } void CSmartFactoryTest::InitStructSchemes( - TStructsSchemaItems &struct_schema_items) { + TStructsSchemaItems& struct_schema_items) { utils::SharedPtr<ISchemaItem> struct_schema_item_Common_1 = InitStructSchemaItem_Common_1(struct_schema_items); - struct_schema_items.insert( - std::make_pair(StructIdentifiersTest::Common_1, - struct_schema_item_Common_1)); + struct_schema_items.insert(std::make_pair(StructIdentifiersTest::Common_1, + struct_schema_item_Common_1)); structs_schemes_.insert( std::make_pair(StructIdentifiersTest::Common_1, CSmartSchema(struct_schema_item_Common_1))); utils::SharedPtr<ISchemaItem> struct_schema_item_Common_2 = InitStructSchemaItem_Common_2(); - struct_schema_items.insert( - std::make_pair(StructIdentifiersTest::Common_2, - struct_schema_item_Common_2)); + struct_schema_items.insert(std::make_pair(StructIdentifiersTest::Common_2, + struct_schema_item_Common_2)); structs_schemes_.insert( std::make_pair(StructIdentifiersTest::Common_2, CSmartSchema(struct_schema_item_Common_2))); } void CSmartFactoryTest::InitFunctionSchemes( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { CObjectSchemaItem::Members params_members; params_members[S_FUNCTION_ID] = CObjectSchemaItem::SMember( TEnumSchemaItem<FunctionIdTest::eType>::create(function_id_items), true); params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[kCode] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[kMessage] = CObjectSchemaItem::SMember( - CStringSchemaItem::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[kCode] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[kMessage] = + CObjectSchemaItem::SMember(CStringSchemaItem::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[NsSmartDeviceLink::NsJSONHandler::strings::S_PARAMS] = @@ -172,68 +194,52 @@ void CSmartFactoryTest::InitFunctionSchemes( CSmartSchema error_response_schema( CObjectSchemaItem::create(root_members_map)); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function1, MessageTypeTest::error_response), - error_response_schema)); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function1, MessageTypeTest::request), - InitFunction_Function1_request(function_id_items, - message_type_items))); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function1, MessageTypeTest::response), - InitFunction_Function1_response(struct_schema_items, - function_id_items, - message_type_items))); - - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function2, MessageTypeTest::error_response), - error_response_schema)); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function2, MessageTypeTest::request), - InitFunction_Function2_request(function_id_items, - message_type_items))); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function2, MessageTypeTest::response), - InitFunction_Function2_response(struct_schema_items, - function_id_items, - message_type_items))); - - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function3, MessageTypeTest::error_response), - error_response_schema)); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function3, MessageTypeTest::request), - InitFunction_Function3_request(function_id_items, - message_type_items))); - functions_schemes_.insert( - std::make_pair( - SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( - FunctionIdTest::Function3, MessageTypeTest::response), - InitFunction_Function3_response(struct_schema_items, - function_id_items, - message_type_items))); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function1, MessageTypeTest::error_response), + error_response_schema)); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function1, MessageTypeTest::request), + InitFunction_Function1_request(function_id_items, message_type_items))); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function1, MessageTypeTest::response), + InitFunction_Function1_response( + struct_schema_items, function_id_items, message_type_items))); + + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function2, MessageTypeTest::error_response), + error_response_schema)); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function2, MessageTypeTest::request), + InitFunction_Function2_request(function_id_items, message_type_items))); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function2, MessageTypeTest::response), + InitFunction_Function2_response( + struct_schema_items, function_id_items, message_type_items))); + + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function3, MessageTypeTest::error_response), + error_response_schema)); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function3, MessageTypeTest::request), + InitFunction_Function3_request(function_id_items, message_type_items))); + functions_schemes_.insert(std::make_pair( + SmartSchemaKey<FunctionIdTest::eType, MessageTypeTest::eType>( + FunctionIdTest::Function3, MessageTypeTest::response), + InitFunction_Function3_response( + struct_schema_items, function_id_items, message_type_items))); } CSmartSchema CSmartFactoryTest::InitFunction_Function1_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { - + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { CObjectSchemaItem::Members schema_members; CObjectSchemaItem::Members params_members; @@ -242,12 +248,12 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function1_request( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -259,17 +265,17 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function1_request( } CSmartSchema CSmartFactoryTest::InitFunction_Function1_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { // Function parameter available. - utils::SharedPtr<ISchemaItem> available_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); + utils::SharedPtr<ISchemaItem> available_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); CObjectSchemaItem::Members schema_members; - schema_members["available"] = CObjectSchemaItem::SMember(available_SchemaItem, - true); + schema_members["available"] = + CObjectSchemaItem::SMember(available_SchemaItem, true); CObjectSchemaItem::Members params_members; params_members[S_FUNCTION_ID] = CObjectSchemaItem::SMember( @@ -277,14 +283,14 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function1_response( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[kCode] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[kCode] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -296,8 +302,8 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function1_response( } CSmartSchema CSmartFactoryTest::InitFunction_Function2_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { CObjectSchemaItem::Members schema_members; CObjectSchemaItem::Members params_members; @@ -306,12 +312,12 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function2_request( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -323,17 +329,17 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function2_request( } CSmartSchema CSmartFactoryTest::InitFunction_Function2_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { // Function parameter available. - utils::SharedPtr<ISchemaItem> available_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); + utils::SharedPtr<ISchemaItem> available_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); CObjectSchemaItem::Members schema_members; - schema_members["available"] = CObjectSchemaItem::SMember(available_SchemaItem, - true); + schema_members["available"] = + CObjectSchemaItem::SMember(available_SchemaItem, true); CObjectSchemaItem::Members params_members; params_members[S_FUNCTION_ID] = CObjectSchemaItem::SMember( @@ -341,14 +347,14 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function2_response( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[kCode] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[kCode] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -360,8 +366,8 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function2_response( } CSmartSchema CSmartFactoryTest::InitFunction_Function3_request( - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { CObjectSchemaItem::Members schema_members; CObjectSchemaItem::Members params_members; @@ -370,12 +376,12 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function3_request( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -387,19 +393,19 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function3_request( } CSmartSchema CSmartFactoryTest::InitFunction_Function3_response( - const TStructsSchemaItems &struct_schema_items, - const std::set<FunctionIdTest::eType> &function_id_items, - const std::set<MessageTypeTest::eType> &message_type_items) { + const TStructsSchemaItems& struct_schema_items, + const std::set<FunctionIdTest::eType>& function_id_items, + const std::set<MessageTypeTest::eType>& message_type_items) { // Function parameter available. // // Must be true if VR is present and ready to communicate with SDL. - utils::SharedPtr<ISchemaItem> available_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); + utils::SharedPtr<ISchemaItem> available_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); CObjectSchemaItem::Members schema_members; - schema_members["available"] = CObjectSchemaItem::SMember(available_SchemaItem, - true); + schema_members["available"] = + CObjectSchemaItem::SMember(available_SchemaItem, true); CObjectSchemaItem::Members params_members; params_members[S_FUNCTION_ID] = CObjectSchemaItem::SMember( @@ -407,14 +413,14 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function3_response( params_members[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create(message_type_items), true); - params_members[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); - params_members[kCode] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + params_members[kCode] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); CObjectSchemaItem::Members root_members_map; root_members_map[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -426,13 +432,14 @@ CSmartSchema CSmartFactoryTest::InitFunction_Function3_response( } utils::SharedPtr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_1( - TStructsSchemaItems &struct_schema_items) { + TStructsSchemaItems& struct_schema_items) { // Struct member text. // // Text to display - utils::SharedPtr<ISchemaItem> text_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(1), TSchemaItemParameter<size_t>(500), - TSchemaItemParameter<std::string>()); + utils::SharedPtr<ISchemaItem> text_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(1), + TSchemaItemParameter<size_t>(500), + TSchemaItemParameter<std::string>()); // Struct member image. // @@ -454,8 +461,8 @@ utils::SharedPtr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_1( CObjectSchemaItem::Members schema_members; schema_members["text"] = CObjectSchemaItem::SMember(text_SchemaItem, true); - schema_members["position"] = CObjectSchemaItem::SMember(position_SchemaItem, - true); + schema_members["position"] = + CObjectSchemaItem::SMember(position_SchemaItem, true); CObjectSchemaItem::Members root_members_map; root_members_map[""] = CObjectSchemaItem::SMember( @@ -465,13 +472,15 @@ utils::SharedPtr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_1( return CObjectSchemaItem::create(schema_members); } -utils::SharedPtr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_2() { +utils::SharedPtr<ISchemaItem> +CSmartFactoryTest::InitStructSchemaItem_Common_2() { // Struct member text. // // Text to display - utils::SharedPtr<ISchemaItem> text_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(1), TSchemaItemParameter<size_t>(500), - TSchemaItemParameter<std::string>()); + utils::SharedPtr<ISchemaItem> text_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(1), + TSchemaItemParameter<size_t>(500), + TSchemaItemParameter<std::string>()); // Struct member position. // // Position to display item @@ -482,20 +491,20 @@ utils::SharedPtr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_2() CObjectSchemaItem::Members schema_members; schema_members["text"] = CObjectSchemaItem::SMember(text_SchemaItem, true); - schema_members["position"] = CObjectSchemaItem::SMember(position_SchemaItem, - true); + schema_members["position"] = + CObjectSchemaItem::SMember(position_SchemaItem, true); return CObjectSchemaItem::create(schema_members); } -utils::SharedPtr<ISchemaItem> CSmartFactoryTest::ProvideObjectSchemaItemForStruct( - TStructsSchemaItems &struct_schema_items, +utils::SharedPtr<ISchemaItem> +CSmartFactoryTest::ProvideObjectSchemaItemForStruct( + TStructsSchemaItems& struct_schema_items, const StructIdentifiersTest::eType struct_id) { - const TStructsSchemaItems::const_iterator it = struct_schema_items.find( - struct_id); + const TStructsSchemaItems::const_iterator it = + struct_schema_items.find(struct_id); if (it != struct_schema_items.end()) { return it->second; } return NsSmartDeviceLink::NsSmartObjects::CAlwaysFalseSchemaItem::create(); } - diff --git a/src/components/formatters/test/src/create_smartSchema.cc b/src/components/formatters/test/src/create_smartSchema.cc index 9d44567dcd..4c221ff255 100644 --- a/src/components/formatters/test/src/create_smartSchema.cc +++ b/src/components/formatters/test/src/create_smartSchema.cc @@ -39,82 +39,105 @@ using namespace NsSmartDeviceLink::NsJSONHandler::strings; using namespace NsSmartDeviceLink::NsJSONHandler::Formatters; using namespace NsSmartDeviceLink::NsSmartObjects; -template<> -const EnumConversionHelper<FunctionIDTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::FunctionIDTest::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::FunctionIDTest::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<FunctionIDTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::FunctionIDTest::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::FunctionIDTest::eType>::InitCStringToEnumMap(); - -template<> -const char* const EnumConversionHelper<FunctionIDTest::eType>::cstring_values_[] = - { "RegisterAppInterface", "UnregisterAppInterface", "SetGlobalProperties" }; - -template<> -const FunctionIDTest::eType EnumConversionHelper<FunctionIDTest::eType>::enum_values_[] = - { test::components::formatters::FunctionIDTest::RegisterAppInterface, +template <> +const EnumConversionHelper<FunctionIDTest::eType>::EnumToCStringMap + EnumConversionHelper<test::components::formatters::FunctionIDTest::eType>:: + enum_to_cstring_map_ = EnumConversionHelper< + test::components::formatters::FunctionIDTest::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<FunctionIDTest::eType>::CStringToEnumMap + EnumConversionHelper<test::components::formatters::FunctionIDTest::eType>:: + cstring_to_enum_map_ = EnumConversionHelper< + test::components::formatters::FunctionIDTest::eType>:: + InitCStringToEnumMap(); + +template <> +const char* const + EnumConversionHelper<FunctionIDTest::eType>::cstring_values_[] = { + "RegisterAppInterface", + "UnregisterAppInterface", + "SetGlobalProperties"}; + +template <> +const FunctionIDTest::eType + EnumConversionHelper<FunctionIDTest::eType>::enum_values_[] = { + test::components::formatters::FunctionIDTest::RegisterAppInterface, test::components::formatters::FunctionIDTest::UnregisterAppInterface, - test::components::formatters::FunctionIDTest::SetGlobalProperties }; - -template<> -const EnumConversionHelper<Language::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::Language::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::Language::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<Language::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::Language::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::Language::eType>::InitCStringToEnumMap(); - -template<> -const char* const EnumConversionHelper<Language::eType>::cstring_values_[] = - { "EN_EU", "RU_RU"}; - -template<> -const Language::eType EnumConversionHelper<Language::eType>::enum_values_[] = - { test::components::formatters::Language::EN_EU, - test::components::formatters::Language::RU_RU}; - -template<> -const EnumConversionHelper<SpeechCapabilities::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::SpeechCapabilities::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::SpeechCapabilities::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<SpeechCapabilities::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::SpeechCapabilities::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::SpeechCapabilities::eType>::InitCStringToEnumMap(); - -template<> -const char* const EnumConversionHelper<SpeechCapabilities::eType>::cstring_values_[] = - { "SC_TEXT"}; - -template<> -const SpeechCapabilities::eType EnumConversionHelper<SpeechCapabilities::eType>::enum_values_[] = - { test::components::formatters::SpeechCapabilities::SC_TEXT}; - -template<> -const EnumConversionHelper<AppTypeTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::formatters::AppTypeTest::eType>::enum_to_cstring_map_ = - EnumConversionHelper<test::components::formatters::AppTypeTest::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper<AppTypeTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::formatters::AppTypeTest::eType>::cstring_to_enum_map_ = - EnumConversionHelper<test::components::formatters::AppTypeTest::eType>::InitCStringToEnumMap(); - -template<> + test::components::formatters::FunctionIDTest::SetGlobalProperties}; + +template <> +const EnumConversionHelper<Language::eType>::EnumToCStringMap + EnumConversionHelper< + test::components::formatters::Language::eType>::enum_to_cstring_map_ = + EnumConversionHelper<test::components::formatters::Language::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<Language::eType>::CStringToEnumMap + EnumConversionHelper< + test::components::formatters::Language::eType>::cstring_to_enum_map_ = + EnumConversionHelper<test::components::formatters::Language::eType>:: + InitCStringToEnumMap(); + +template <> +const char* const EnumConversionHelper<Language::eType>::cstring_values_[] = { + "EN_EU", "RU_RU"}; + +template <> +const Language::eType EnumConversionHelper<Language::eType>::enum_values_[] = { + test::components::formatters::Language::EN_EU, + test::components::formatters::Language::RU_RU}; + +template <> +const EnumConversionHelper<SpeechCapabilities::eType>::EnumToCStringMap + EnumConversionHelper<test::components::formatters::SpeechCapabilities:: + eType>::enum_to_cstring_map_ = + EnumConversionHelper<test::components::formatters::SpeechCapabilities:: + eType>::InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<SpeechCapabilities::eType>::CStringToEnumMap + EnumConversionHelper<test::components::formatters::SpeechCapabilities:: + eType>::cstring_to_enum_map_ = + EnumConversionHelper<test::components::formatters::SpeechCapabilities:: + eType>::InitCStringToEnumMap(); + +template <> +const char* const + EnumConversionHelper<SpeechCapabilities::eType>::cstring_values_[] = { + "SC_TEXT"}; + +template <> +const SpeechCapabilities::eType + EnumConversionHelper<SpeechCapabilities::eType>::enum_values_[] = { + test::components::formatters::SpeechCapabilities::SC_TEXT}; + +template <> +const EnumConversionHelper<AppTypeTest::eType>::EnumToCStringMap + EnumConversionHelper<test::components::formatters::AppTypeTest::eType>:: + enum_to_cstring_map_ = EnumConversionHelper< + test::components::formatters::AppTypeTest::eType>:: + InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<AppTypeTest::eType>::CStringToEnumMap + EnumConversionHelper<test::components::formatters::AppTypeTest::eType>:: + cstring_to_enum_map_ = EnumConversionHelper< + test::components::formatters::AppTypeTest::eType>:: + InitCStringToEnumMap(); + +template <> const char* const EnumConversionHelper<AppTypeTest::eType>::cstring_values_[] = - { "SYSTEM", "MEDIA"}; + {"SYSTEM", "MEDIA"}; -template<> -const AppTypeTest::eType EnumConversionHelper<AppTypeTest::eType>::enum_values_[] = - { test::components::formatters::AppTypeTest::SYSTEM, - test::components::formatters::AppTypeTest::MEDIA, - }; +template <> +const AppTypeTest::eType + EnumConversionHelper<AppTypeTest::eType>::enum_values_[] = { + test::components::formatters::AppTypeTest::SYSTEM, + test::components::formatters::AppTypeTest::MEDIA, +}; CSmartSchema initObjectSchema() { std::set<TestType::eType> resultCode_allowedEnumSubsetValues; @@ -147,50 +170,52 @@ CSmartSchema initObjectSchema() { messageType_allowedEnumSubsetValues.insert(MessageTypeTest::notification); // Create result item - ISchemaItemPtr success_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); + ISchemaItemPtr success_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); ISchemaItemPtr resultCode_SchemaItem = TEnumSchemaItem<TestType::eType>::create( resultCode_allowedEnumSubsetValues, TSchemaItemParameter<TestType::eType>()); // Create info value with min 0 length and max 1000 - ISchemaItemPtr info_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); + ISchemaItemPtr info_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); - ISchemaItemPtr tryAgainTime_SchemaItem = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(0), TSchemaItemParameter<int>(2000000000), - TSchemaItemParameter<int>()); + ISchemaItemPtr tryAgainTime_SchemaItem = + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(0), + TSchemaItemParameter<int>(2000000000), + TSchemaItemParameter<int>()); // Map of parameters std::map<std::string, CObjectSchemaItem::SMember> schemaMembersMap; - schemaMembersMap["success"] = CObjectSchemaItem::SMember(success_SchemaItem, - false); - schemaMembersMap["resultCode"] = CObjectSchemaItem::SMember( - resultCode_SchemaItem, false); + schemaMembersMap["success"] = + CObjectSchemaItem::SMember(success_SchemaItem, false); + schemaMembersMap["resultCode"] = + CObjectSchemaItem::SMember(resultCode_SchemaItem, false); schemaMembersMap["info"] = CObjectSchemaItem::SMember(info_SchemaItem, false); - schemaMembersMap["tryAgainTime"] = CObjectSchemaItem::SMember( - tryAgainTime_SchemaItem, false); + schemaMembersMap["tryAgainTime"] = + CObjectSchemaItem::SMember(tryAgainTime_SchemaItem, false); std::map<std::string, CObjectSchemaItem::SMember> paramsMembersMap; - paramsMembersMap[S_FUNCTION_ID] = CObjectSchemaItem::SMember( - TEnumSchemaItem<FunctionIDTest::eType>::create( - functionId_allowedEnumSubsetValues), - true); + paramsMembersMap[S_FUNCTION_ID] = + CObjectSchemaItem::SMember(TEnumSchemaItem<FunctionIDTest::eType>::create( + functionId_allowedEnumSubsetValues), + true); paramsMembersMap[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create( messageType_allowedEnumSubsetValues), true); - paramsMembersMap[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + paramsMembersMap[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); paramsMembersMap[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), TSchemaItemParameter<int>(2)), true); - paramsMembersMap[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + paramsMembersMap[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); std::map<std::string, CObjectSchemaItem::SMember> rootMembersMap; rootMembersMap[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -200,7 +225,6 @@ CSmartSchema initObjectSchema() { return CSmartSchema(CObjectSchemaItem::create(rootMembersMap)); }; - CSmartSchema initSchemaForMetaFormatter() { std::set<TestType::eType> resultCode_allowedEnumSubsetValues; resultCode_allowedEnumSubsetValues.insert( @@ -229,13 +253,14 @@ CSmartSchema initSchemaForMetaFormatter() { languageDesired_allowedEnumSubsetValues.insert(Language::RU_RU); languageDesired_allowedEnumSubsetValues.insert(Language::EN_EU); - std::set<AppTypeTest::eType> appType_allowedEnumSubsetValues; appType_allowedEnumSubsetValues.insert(AppTypeTest::SYSTEM); appType_allowedEnumSubsetValues.insert(AppTypeTest::MEDIA); - std::set<SpeechCapabilities::eType> speechCapabilities_allowedEnumSubsetValues; - speechCapabilities_allowedEnumSubsetValues.insert(SpeechCapabilities::SC_TEXT); + std::set<SpeechCapabilities::eType> + speechCapabilities_allowedEnumSubsetValues; + speechCapabilities_allowedEnumSubsetValues.insert( + SpeechCapabilities::SC_TEXT); // Possible message types std::set<MessageTypeTest::eType> messageType_allowedEnumSubsetValues; @@ -244,21 +269,25 @@ CSmartSchema initSchemaForMetaFormatter() { messageType_allowedEnumSubsetValues.insert(MessageTypeTest::notification); // Create param items - ISchemaItemPtr appID_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); - ISchemaItemPtr appName_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); - ISchemaItemPtr isMediaApplication_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); - ISchemaItemPtr ngnMediaScreenAppName_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); - - ISchemaItemPtr ttsNameItem_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); + ISchemaItemPtr appID_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); + ISchemaItemPtr appName_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); + ISchemaItemPtr isMediaApplication_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); + ISchemaItemPtr ngnMediaScreenAppName_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); + + ISchemaItemPtr ttsNameItem_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); ISchemaItemPtr ttstype_SchemaItem = TEnumSchemaItem<SpeechCapabilities::eType>::create( @@ -266,10 +295,9 @@ CSmartSchema initSchemaForMetaFormatter() { TSchemaItemParameter<SpeechCapabilities::eType>()); std::map<std::string, CObjectSchemaItem::SMember> ttsMap; - ttsMap["text"]=CObjectSchemaItem::SMember(ttsNameItem_SchemaItem, - false); - ttsMap["type"]=CObjectSchemaItem::SMember(ttstype_SchemaItem, - false);; + ttsMap["text"] = CObjectSchemaItem::SMember(ttsNameItem_SchemaItem, false); + ttsMap["type"] = CObjectSchemaItem::SMember(ttstype_SchemaItem, false); + ; ISchemaItemPtr hmiDisplayLanguageDesired_SchemaItem = TEnumSchemaItem<Language::eType>::create( @@ -281,9 +309,10 @@ CSmartSchema initSchemaForMetaFormatter() { languageDesired_allowedEnumSubsetValues, TSchemaItemParameter<Language::eType>()); - ISchemaItemPtr vrElementSchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); + ISchemaItemPtr vrElementSchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); ISchemaItemPtr appTypeElementSchemaItem = TEnumSchemaItem<AppTypeTest::eType>::create( @@ -294,75 +323,81 @@ CSmartSchema initSchemaForMetaFormatter() { ISchemaItemPtr ttsName_SchemaItem = CArraySchemaItem::create(ttsElementSchemaItem, - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000)); + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000)); ISchemaItemPtr vrSynonyms_SchemaItem = CArraySchemaItem::create(vrElementSchemaItem, - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000)); + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000)); ISchemaItemPtr appType_SchemaItem = CArraySchemaItem::create(appTypeElementSchemaItem, - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000)); - + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000)); ISchemaItemPtr majorVersion_SchemaItem = TNumberSchemaItem<int>::create(); ISchemaItemPtr minorVersion_SchemaItem = TNumberSchemaItem<int>::create(); - ISchemaItemPtr syncMsg_SchemaItem =CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); + ISchemaItemPtr syncMsg_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); ISchemaItemPtr syncMsgVersion_SchemaItem = CArraySchemaItem::create(syncMsg_SchemaItem, - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000)); + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000)); // Creation map for syncMsgVersion std::map<std::string, CObjectSchemaItem::SMember> schemaSyncMsgVersionMap; - schemaSyncMsgVersionMap["majorVersion"]=CObjectSchemaItem::SMember(majorVersion_SchemaItem, - false); - schemaSyncMsgVersionMap["minorVersion"]=CObjectSchemaItem::SMember(minorVersion_SchemaItem, - false);; + schemaSyncMsgVersionMap["majorVersion"] = + CObjectSchemaItem::SMember(majorVersion_SchemaItem, false); + schemaSyncMsgVersionMap["minorVersion"] = + CObjectSchemaItem::SMember(minorVersion_SchemaItem, false); + ; // Map of parameters std::map<std::string, CObjectSchemaItem::SMember> schemaMembersMap; - schemaMembersMap["appID"] = CObjectSchemaItem::SMember(appID_SchemaItem, - false); - schemaMembersMap["appName"] = CObjectSchemaItem::SMember(appName_SchemaItem, - false); - schemaMembersMap["appType"] = CObjectSchemaItem::SMember(appType_SchemaItem, - false); - schemaMembersMap["hmiDisplayLanguageDesired"] = CObjectSchemaItem::SMember(hmiDisplayLanguageDesired_SchemaItem, - false); - schemaMembersMap["isMediaApplication"] = CObjectSchemaItem::SMember(isMediaApplication_SchemaItem, - false); - schemaMembersMap["languageDesired"] = CObjectSchemaItem::SMember(languageDesired_SchemaItem, - false); - schemaMembersMap["ngnMediaScreenAppName"] = CObjectSchemaItem::SMember(ngnMediaScreenAppName_SchemaItem, - false); - schemaMembersMap["syncMsgVersion"] = CObjectSchemaItem::SMember(CObjectSchemaItem::create(schemaSyncMsgVersionMap), - false); - schemaMembersMap["ttsName"] = CObjectSchemaItem::SMember(ttsName_SchemaItem, - false); - schemaMembersMap["vrSynonyms"] = CObjectSchemaItem::SMember(vrSynonyms_SchemaItem, false); + schemaMembersMap["appID"] = + CObjectSchemaItem::SMember(appID_SchemaItem, false); + schemaMembersMap["appName"] = + CObjectSchemaItem::SMember(appName_SchemaItem, false); + schemaMembersMap["appType"] = + CObjectSchemaItem::SMember(appType_SchemaItem, false); + schemaMembersMap["hmiDisplayLanguageDesired"] = + CObjectSchemaItem::SMember(hmiDisplayLanguageDesired_SchemaItem, false); + schemaMembersMap["isMediaApplication"] = + CObjectSchemaItem::SMember(isMediaApplication_SchemaItem, false); + schemaMembersMap["languageDesired"] = + CObjectSchemaItem::SMember(languageDesired_SchemaItem, false); + schemaMembersMap["ngnMediaScreenAppName"] = + CObjectSchemaItem::SMember(ngnMediaScreenAppName_SchemaItem, false); + schemaMembersMap["syncMsgVersion"] = CObjectSchemaItem::SMember( + CObjectSchemaItem::create(schemaSyncMsgVersionMap), false); + schemaMembersMap["ttsName"] = + CObjectSchemaItem::SMember(ttsName_SchemaItem, false); + schemaMembersMap["vrSynonyms"] = + CObjectSchemaItem::SMember(vrSynonyms_SchemaItem, false); std::map<std::string, CObjectSchemaItem::SMember> paramsMembersMap; - paramsMembersMap[S_FUNCTION_ID] = CObjectSchemaItem::SMember( - TEnumSchemaItem<FunctionIDTest::eType>::create( - functionId_allowedEnumSubsetValues), - true); + paramsMembersMap[S_FUNCTION_ID] = + CObjectSchemaItem::SMember(TEnumSchemaItem<FunctionIDTest::eType>::create( + functionId_allowedEnumSubsetValues), + true); paramsMembersMap[S_MESSAGE_TYPE] = CObjectSchemaItem::SMember( TEnumSchemaItem<MessageTypeTest::eType>::create( messageType_allowedEnumSubsetValues), true); - paramsMembersMap[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + paramsMembersMap[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); paramsMembersMap[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), TSchemaItemParameter<int>(2)), true); - paramsMembersMap[S_PROTOCOL_TYPE] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + paramsMembersMap[S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); std::map<std::string, CObjectSchemaItem::SMember> rootMembersMap; rootMembersMap[S_MSG_PARAMS] = CObjectSchemaItem::SMember( @@ -372,8 +407,6 @@ CSmartSchema initSchemaForMetaFormatter() { return CSmartSchema(CObjectSchemaItem::create(rootMembersMap)); }; - - } // namespace formatters } // namespace components } // namespace test diff --git a/src/components/formatters/test/src/meta_formatter_test_helper.cc b/src/components/formatters/test/src/meta_formatter_test_helper.cc index 3445d948bb..66a39df7d5 100644 --- a/src/components/formatters/test/src/meta_formatter_test_helper.cc +++ b/src/components/formatters/test/src/meta_formatter_test_helper.cc @@ -58,7 +58,6 @@ void CMetaFormatterTestHelper::TearDown() { void CMetaFormatterTestHelper::AnyObjectToJsonString( const SmartObject& obj, std::string& result_string) { - Json::Value params(Json::objectValue); SmartObject formattedObj(obj); @@ -71,7 +70,6 @@ void CMetaFormatterTestHelper::AnyObjectToJsonString( //----------------------------------------------------------- void CMetaFormatterTestHelper::FillObjectIdenticalToSchema(SmartObject& obj) { - obj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request; obj[S_PARAMS][S_FUNCTION_ID] = FunctionIDTest::RegisterAppInterface; obj[S_PARAMS][S_CORRELATION_ID] = 12; @@ -95,8 +93,8 @@ void CMetaFormatterTestHelper::FillObjectIdenticalToSchema(SmartObject& obj) { } //----------------------------------------------------------- -void CMetaFormatterTestHelper::FillObjectIdenticalToSchemaWithoutNoMandatoriesParams( - SmartObject& obj) { +void CMetaFormatterTestHelper:: + FillObjectIdenticalToSchemaWithoutNoMandatoriesParams(SmartObject& obj) { obj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request; obj[S_PARAMS][S_FUNCTION_ID] = FunctionIDTest::RegisterAppInterface; obj[S_PARAMS][S_CORRELATION_ID] = 12; @@ -113,16 +111,15 @@ void CMetaFormatterTestHelper::FillObjectIdenticalToSchemaWithoutNoMandatoriesPa obj[S_MSG_PARAMS]["appID"] = "APP ID"; // Commented not mandatory params for check creation object without them -// obj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC"; -// obj[S_MSG_PARAMS]["ttsName"][0]["type"] = -// SpeechCapabilities::SC_TEXT; - -// obj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1"; -// obj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2"; + // obj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC"; + // obj[S_MSG_PARAMS]["ttsName"][0]["type"] = + // SpeechCapabilities::SC_TEXT; -// obj[S_MSG_PARAMS]["appType"][0] = AppTypeTest::SYSTEM; // not mandatory -// obj[S_MSG_PARAMS]["appType"][1] = AppTypeTest::MEDIA; + // obj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1"; + // obj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2"; + // obj[S_MSG_PARAMS]["appType"][0] = AppTypeTest::SYSTEM; // not mandatory + // obj[S_MSG_PARAMS]["appType"][1] = AppTypeTest::MEDIA; } void CMetaFormatterTestHelper::FillObjectWithoutSomeMandatoryFields( @@ -133,10 +130,10 @@ void CMetaFormatterTestHelper::FillObjectWithoutSomeMandatoryFields( obj[S_PARAMS][S_PROTOCOL_VERSION] = 1; obj[S_PARAMS][S_PROTOCOL_TYPE] = 0; -// Commented mandatory params for check creation object without them -// obj[S_PARAMS][S_CORRELATION_ID] = 12; -// obj[S_MSG_PARAMS]["syncMsgVersion"]["majorVersion"] = 2; -// obj[S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"] = 10; + // Commented mandatory params for check creation object without them + // obj[S_PARAMS][S_CORRELATION_ID] = 12; + // obj[S_MSG_PARAMS]["syncMsgVersion"]["majorVersion"] = 2; + // obj[S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"] = 10; obj[S_MSG_PARAMS]["appName"] = "APP NAME"; obj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC"; @@ -156,7 +153,6 @@ void CMetaFormatterTestHelper::FillObjectWithoutSomeMandatoryFields( void CMetaFormatterTestHelper::CompareObjects(const SmartObject& first, const SmartObject& second) { - if (SmartType_Array == first.getType()) { ASSERT_EQ(SmartType_Array, second.getType()); for (size_t i = 0; i < first.length(); i++) { @@ -164,10 +160,11 @@ void CMetaFormatterTestHelper::CompareObjects(const SmartObject& first, } } else if (SmartType_Map == first.getType()) { ASSERT_EQ(SmartType_Map, second.getType()); - std::set < std::string > keys = first.enumerate(); + std::set<std::string> keys = first.enumerate(); for (std::set<std::string>::const_iterator key = keys.begin(); - key != keys.end(); key++) { + key != keys.end(); + key++) { CompareObjects(first.getElement(*key), second.getElement(*key)); } } else if (SmartType_Boolean == first.getType()) { @@ -181,14 +178,13 @@ void CMetaFormatterTestHelper::CompareObjects(const SmartObject& first, } else if (SmartType_Null == first.getType()) { ASSERT_EQ(SmartType_Null, second.getType()); } else { - FAIL()<< "Unknown SmartObject type: " << first.getType(); + FAIL() << "Unknown SmartObject type: " << first.getType(); } } //----------------------------------------------------------- void CMetaFormatterTestHelper::FillObjectWithDefaultValues(SmartObject& obj) { - obj[S_PARAMS][S_MESSAGE_TYPE] = -1; obj[S_PARAMS][S_FUNCTION_ID] = -1; obj[S_PARAMS][S_CORRELATION_ID] = 0; @@ -204,17 +200,16 @@ void CMetaFormatterTestHelper::FillObjectWithDefaultValues(SmartObject& obj) { obj[S_MSG_PARAMS]["hmiDisplayLanguageDesired"] = -1; obj[S_MSG_PARAMS]["appID"] = ""; -// Commented params for check creation object with only default values -// obj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC"; -// obj[S_MSG_PARAMS]["ttsName"][0]["type"] = -// SpeechCapabilities::SC_TEXT; - -// obj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1"; -// obj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2"; + // Commented params for check creation object with only default values + // obj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC"; + // obj[S_MSG_PARAMS]["ttsName"][0]["type"] = + // SpeechCapabilities::SC_TEXT; -// obj[S_MSG_PARAMS]["appType"][0] = AppTypeTest::SYSTEM; -// obj[S_MSG_PARAMS]["appType"][1] = AppTypeTest::MEDIA; + // obj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1"; + // obj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2"; + // obj[S_MSG_PARAMS]["appType"][0] = AppTypeTest::SYSTEM; + // obj[S_MSG_PARAMS]["appType"][1] = AppTypeTest::MEDIA; } } // namespace formatters diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h b/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h index 1d0793c0ad..4dc74f71e8 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/dbus_message_adapter.h @@ -45,9 +45,8 @@ namespace smart_objects = NsSmartDeviceLink::NsSmartObjects; /** * \brief adapter for DBus */ -class DBusMessageAdapter - : public HMIMessageAdapterImpl, - public dbus::DBusMessageController { +class DBusMessageAdapter : public HMIMessageAdapterImpl, + public dbus::DBusMessageController { public: typedef utils::SharedPtr<application_manager::Message> MessageSharedPointer; explicit DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler); @@ -69,7 +68,7 @@ class DBusMessageAdapter * \brief sends request to HMI * \param obj request */ - void Request(const smart_objects::SmartObject &obj); + void Request(const smart_objects::SmartObject& obj); /** * \brief sends notification to HMI @@ -81,7 +80,7 @@ class DBusMessageAdapter * \brief sends response to HMI * \param obj response */ - void Response(const smart_objects::SmartObject &obj); + void Response(const smart_objects::SmartObject& obj); /** * \brief sends error response to HMI @@ -93,7 +92,7 @@ class DBusMessageAdapter * \brief sends message to core * \param obj */ - void SendMessageToCore(const smart_objects::SmartObject &obj); + void SendMessageToCore(const smart_objects::SmartObject& obj); }; } // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h index 2f235aa968..3b829b0f27 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h @@ -45,7 +45,6 @@ namespace hmi_message_handler { - namespace impl { /* * These dummy classes are here to locally impose strong typing on different @@ -54,35 +53,38 @@ namespace impl { * TODO(ik): replace these with globally defined message types * when we have them. */ -struct MessageFromHmi: public MessageSharedPointer { +struct MessageFromHmi : public MessageSharedPointer { MessageFromHmi() {} explicit MessageFromHmi(const MessageSharedPointer& message) : MessageSharedPointer(message) {} // PrioritizedQueue requres this method to decide which priority to assign - size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } + size_t PriorityOrder() const { + return (*this)->Priority().OrderingValue(); + } }; -struct MessageToHmi: public MessageSharedPointer { +struct MessageToHmi : public MessageSharedPointer { MessageToHmi() {} explicit MessageToHmi(const MessageSharedPointer& message) : MessageSharedPointer(message) {} // PrioritizedQueue requres this method to decide which priority to assign - size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } + size_t PriorityOrder() const { + return (*this)->Priority().OrderingValue(); + } }; -typedef threads::MessageLoopThread< - utils::PrioritizedQueue<MessageFromHmi> > FromHmiQueue; -typedef threads::MessageLoopThread< - utils::PrioritizedQueue<MessageToHmi> > ToHmiQueue; +typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageFromHmi> > + FromHmiQueue; +typedef threads::MessageLoopThread<utils::PrioritizedQueue<MessageToHmi> > + ToHmiQueue; } class ToHMIThreadImpl; class FromHMIThreadImpl; -class HMIMessageHandlerImpl - : public HMIMessageHandler, - public impl::FromHmiQueue::Handler, - public impl::ToHmiQueue::Handler { +class HMIMessageHandlerImpl : public HMIMessageHandler, + public impl::FromHmiQueue::Handler, + public impl::ToHmiQueue::Handler { public: explicit HMIMessageHandlerImpl(const HMIMessageHandlerSettings& settings); @@ -98,13 +100,13 @@ class HMIMessageHandlerImpl #ifdef BUILD_TESTS std::set<HMIMessageAdapter*> message_adapters() const { - return message_adapters_; + return message_adapters_; } HMIMessageObserver* observer() const { - return observer_; + return observer_; } -#endif // BUILD_TESTS +#endif // BUILD_TESTS private: // threads::MessageLoopThread<*>::Handler implementations @@ -113,6 +115,7 @@ class HMIMessageHandlerImpl virtual void Handle(const impl::MessageFromHmi message) OVERRIDE; // CALLED ON messages_to_hmi_ THREAD! virtual void Handle(const impl::MessageToHmi message) OVERRIDE; + private: const HMIMessageHandlerSettings& settings_; HMIMessageObserver* observer_; diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h index d704a4df65..f00b493aa1 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_sender.h @@ -36,13 +36,12 @@ #include "application_manager/message.h" namespace hmi_message_handler { - typedef utils::SharedPtr<application_manager::Message> MessageSharedPointer; +typedef utils::SharedPtr<application_manager::Message> MessageSharedPointer; class HMIMessageSender { public: virtual void SendMessageToHMI(MessageSharedPointer message) = 0; }; - } #endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_HMI_MESSAGE_SENDER_H_ diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h b/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h index 74a6ed872c..f582cb2b81 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h @@ -42,18 +42,20 @@ namespace hmi_message_handler { class MessageBrokerAdapter : public HMIMessageAdapterImpl, - public NsMessageBroker::CMessageBrokerController, - public threads::SingleThreadValidator { + public NsMessageBroker::CMessageBrokerController, + public threads::SingleThreadValidator { public: - MessageBrokerAdapter(HMIMessageHandler* handler_param, const std::string& - server_address, uint16_t port); + MessageBrokerAdapter(HMIMessageHandler* handler_param, + const std::string& server_address, + uint16_t port); ~MessageBrokerAdapter(); void SendMessageToHMI(MessageSharedPointer message); /*Methods from CMessageBrokerController*/ /** * \brief Called on receiving response message from RPCBus. - * \param method Name of corresponding request method that was sent previously to RPCBus. + * \param method Name of corresponding request method that was sent previously + * to RPCBus. * \param root Received Json object. */ void processResponse(std::string method, Json::Value& root); diff --git a/src/components/hmi_message_handler/src/dbus_message_adapter.cc b/src/components/hmi_message_handler/src/dbus_message_adapter.cc index 7087eb6e13..6a5bda5bfb 100644 --- a/src/components/hmi_message_handler/src/dbus_message_adapter.cc +++ b/src/components/hmi_message_handler/src/dbus_message_adapter.cc @@ -43,29 +43,31 @@ namespace hmi_message_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") const std::string DBusMessageAdapter::SDL_SERVICE_NAME = "com.ford.sdl.core"; -const std::string DBusMessageAdapter::SDL_OBJECT_PATH = "/"; +const std::string DBusMessageAdapter::SDL_OBJECT_PATH = "/"; const std::string DBusMessageAdapter::HMI_SERVICE_NAME = "com.ford.sdl.hmi"; -const std::string DBusMessageAdapter::HMI_OBJECT_PATH = "/"; - -std::vector<std::string> &split(const std::string &s, char delim, - std::vector<std::string> &elems) { - std::stringstream ss(s); - std::string item; - while (std::getline(ss, item, delim)) { - elems.push_back(item); - } - return elems; +const std::string DBusMessageAdapter::HMI_OBJECT_PATH = "/"; + +std::vector<std::string>& split(const std::string& s, + char delim, + std::vector<std::string>& elems) { + std::stringstream ss(s); + std::string item; + while (std::getline(ss, item, delim)) { + elems.push_back(item); + } + return elems; } DBusMessageAdapter::DBusMessageAdapter(HMIMessageHandler* hmi_msg_handler) - : HMIMessageAdapterImpl(hmi_msg_handler), - DBusMessageController(SDL_SERVICE_NAME, SDL_OBJECT_PATH, - HMI_SERVICE_NAME, HMI_OBJECT_PATH) { + : HMIMessageAdapterImpl(hmi_msg_handler) + , DBusMessageController(SDL_SERVICE_NAME, + SDL_OBJECT_PATH, + HMI_SERVICE_NAME, + HMI_OBJECT_PATH) { LOG4CXX_INFO(logger_, "Created DBusMessageAdapter"); } -DBusMessageAdapter::~DBusMessageAdapter() { -} +DBusMessageAdapter::~DBusMessageAdapter() {} void DBusMessageAdapter::SendMessageToHMI(MessageSharedPointer message) { LOG4CXX_INFO(logger_, "DBusMessageAdapter::sendMessageToHMI"); @@ -108,16 +110,22 @@ void DBusMessageAdapter::SubscribeTo() { DBusMessageController::SubscribeTo("VR", "OnLanguageChange"); DBusMessageController::SubscribeTo("BasicCommunication", "OnReady"); DBusMessageController::SubscribeTo("BasicCommunication", "OnAppDeactivated"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnStartDeviceDiscovery"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnUpdateDeviceList"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnFindApplications"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnStartDeviceDiscovery"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnUpdateDeviceList"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnFindApplications"); DBusMessageController::SubscribeTo("BasicCommunication", "OnAppActivated"); DBusMessageController::SubscribeTo("BasicCommunication", "OnExitApplication"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnExitAllApplications"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnExitAllApplications"); DBusMessageController::SubscribeTo("BasicCommunication", "OnDeviceChosen"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnIgnitionCycleOver"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnIgnitionCycleOver"); DBusMessageController::SubscribeTo("BasicCommunication", "OnSystemRequest"); - DBusMessageController::SubscribeTo("BasicCommunication", "OnSystemInfoChanged"); + DBusMessageController::SubscribeTo("BasicCommunication", + "OnSystemInfoChanged"); DBusMessageController::SubscribeTo("BasicCommunication", "OnPhoneCall"); DBusMessageController::SubscribeTo("BasicCommunication", "OnEmergencyEvent"); DBusMessageController::SubscribeTo("TTS", "Started"); @@ -144,7 +152,7 @@ void DBusMessageAdapter::SubscribeTo() { DBusMessageController::SubscribeTo("VehicleInfo", "OnAccPedalPosition"); DBusMessageController::SubscribeTo("VehicleInfo", "OnSteeringWheelAngle"); DBusMessageController::SubscribeTo("VehicleInfo", "OnMyKey"); - DBusMessageController::SubscribeTo("Navigation", "OnTBTClientState"); + DBusMessageController::SubscribeTo("Navigation", "OnTBTClientState"); DBusMessageController::SubscribeTo("Navigation", "OnWayPointChange"); DBusMessageController::SubscribeTo("SDL", "OnAllowSDLFunctionality"); DBusMessageController::SubscribeTo("SDL", "OnReceivedPolicyUpdate"); @@ -157,7 +165,8 @@ void DBusMessageAdapter::SubscribeTo() { LOG4CXX_INFO(logger_, "Subscribed to notifications."); } -void DBusMessageAdapter::SendMessageToCore(const smart_objects::SmartObject& obj) { +void DBusMessageAdapter::SendMessageToCore( + const smart_objects::SmartObject& obj) { LOG4CXX_AUTO_TRACE(logger_); if (!handler()) { @@ -165,7 +174,13 @@ void DBusMessageAdapter::SendMessageToCore(const smart_objects::SmartObject& obj return; } - MessageSharedPointer message = new application_manager::Message(protocol_handler::MessagePriority::kDefault);//todo: ykazakov constant is a temp solution to finish merge MessagePriority::FromServiceType(message.servicetype) shall be used instead + MessageSharedPointer message = new application_manager::Message( + protocol_handler::MessagePriority::kDefault); // todo: ykazakov constant + // is a temp solution to + // finish + // merge + // MessagePriority::FromServiceType(message.servicetype) + // shall be used instead message->set_protocol_version(application_manager::ProtocolVersion::kHMI); message->set_smart_object(obj); handler()->OnMessageReceived(message); @@ -181,7 +196,7 @@ void DBusMessageAdapter::Request(const smart_objects::SmartObject& obj) { MethodCall(id, func_id, name, obj[sos::S_MSG_PARAMS]); } -void DBusMessageAdapter::Notification(const smart_objects::SmartObject &obj) { +void DBusMessageAdapter::Notification(const smart_objects::SmartObject& obj) { LOG4CXX_AUTO_TRACE(logger_); dbus::MessageId func_id = static_cast<dbus::MessageId>( obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); @@ -192,13 +207,13 @@ void DBusMessageAdapter::Notification(const smart_objects::SmartObject &obj) { void DBusMessageAdapter::Response(const smart_objects::SmartObject& obj) { LOG4CXX_AUTO_TRACE(logger_); dbus::MessageId func_id = static_cast<dbus::MessageId>( - obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); + obj[sos::S_PARAMS][sos::S_FUNCTION_ID].asInt()); dbus::MessageName name = get_schema().getMessageName(func_id); uint id = obj[sos::S_PARAMS][sos::S_CORRELATION_ID].asInt(); MethodReturn(id, func_id, name, obj[sos::S_MSG_PARAMS]); } -void DBusMessageAdapter::ErrorResponse(const smart_objects::SmartObject &obj) { +void DBusMessageAdapter::ErrorResponse(const smart_objects::SmartObject& obj) { LOG4CXX_DEBUG(logger_, "Error"); std::string error = obj[sos::S_PARAMS][sos::kCode].asString(); std::string description = obj[sos::S_PARAMS][sos::kMessage].asString(); diff --git a/src/components/hmi_message_handler/src/hmi_message_adapter_impl.cc b/src/components/hmi_message_handler/src/hmi_message_adapter_impl.cc index a2b6eb21fa..48874618a0 100644 --- a/src/components/hmi_message_handler/src/hmi_message_adapter_impl.cc +++ b/src/components/hmi_message_handler/src/hmi_message_adapter_impl.cc @@ -36,6 +36,8 @@ namespace hmi_message_handler { HMIMessageAdapterImpl::HMIMessageAdapterImpl(HMIMessageHandler* handler) : handler_(handler) {} -HMIMessageAdapterImpl::~HMIMessageAdapterImpl() { handler_ = 0; } +HMIMessageAdapterImpl::~HMIMessageAdapterImpl() { + handler_ = 0; +} } // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc b/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc index 4081facb4e..4e0d8e45ba 100644 --- a/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc +++ b/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc @@ -39,15 +39,16 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") HMIMessageHandlerImpl::HMIMessageHandlerImpl( const HMIMessageHandlerSettings& settings) - : settings_(settings) - , observer_(NULL) - , messages_to_hmi_("HMH ToHMI", this, - threads::ThreadOptions( - get_settings().thread_min_stack_size())) - , messages_from_hmi_("HMH FromHMI", this, - threads::ThreadOptions( - get_settings().thread_min_stack_size())){ -} + : settings_(settings) + , observer_(NULL) + , messages_to_hmi_( + "HMH ToHMI", + this, + threads::ThreadOptions(get_settings().thread_min_stack_size())) + , messages_from_hmi_( + "HMH FromHMI", + this, + threads::ThreadOptions(get_settings().thread_min_stack_size())) {} HMIMessageHandlerImpl::~HMIMessageHandlerImpl() { LOG4CXX_AUTO_TRACE(logger_); @@ -87,8 +88,7 @@ void HMIMessageHandlerImpl::OnErrorSending(MessageSharedPointer message) { observer_->OnErrorSending(message); } -void HMIMessageHandlerImpl::AddHMIMessageAdapter( - HMIMessageAdapter* adapter) { +void HMIMessageHandlerImpl::AddHMIMessageAdapter(HMIMessageAdapter* adapter) { LOG4CXX_AUTO_TRACE(logger_); if (!adapter) { LOG4CXX_WARN(logger_, "HMIMessageAdapter is not valid!"); @@ -108,7 +108,7 @@ void HMIMessageHandlerImpl::RemoveHMIMessageAdapter( } const HMIMessageHandlerSettings& HMIMessageHandlerImpl::get_settings() const { - return settings_; + return settings_; } void HMIMessageHandlerImpl::Handle(const impl::MessageFromHmi message) { @@ -121,16 +121,13 @@ void HMIMessageHandlerImpl::Handle(const impl::MessageFromHmi message) { observer_->OnMessageReceived(message); LOG4CXX_INFO(logger_, "Message from hmi given away."); - } void HMIMessageHandlerImpl::Handle(const impl::MessageToHmi message) { - for (std::set<HMIMessageAdapter*>::iterator it = - message_adapters_.begin(); - it != message_adapters_.end(); - ++it) { + for (std::set<HMIMessageAdapter*>::iterator it = message_adapters_.begin(); + it != message_adapters_.end(); + ++it) { (*it)->SendMessageToHMI(message); } } - } // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/src/messagebroker_adapter.cc b/src/components/hmi_message_handler/src/messagebroker_adapter.cc index bcdc4186a9..27cf9df8cd 100644 --- a/src/components/hmi_message_handler/src/messagebroker_adapter.cc +++ b/src/components/hmi_message_handler/src/messagebroker_adapter.cc @@ -44,8 +44,8 @@ typedef NsMessageBroker::CMessageBrokerController MessageBrokerController; MessageBrokerAdapter::MessageBrokerAdapter(HMIMessageHandler* handler_param, const std::string& server_address, uint16_t port) - : HMIMessageAdapterImpl(handler_param), - MessageBrokerController(server_address, port, "SDL") { + : HMIMessageAdapterImpl(handler_param) + , MessageBrokerController(server_address, port, "SDL") { LOG4CXX_TRACE(logger_, "Created MessageBrokerAdapter"); } diff --git a/src/components/hmi_message_handler/src/mqueue_adapter.cc b/src/components/hmi_message_handler/src/mqueue_adapter.cc index ea11c597b3..4cfebbe9e8 100644 --- a/src/components/hmi_message_handler/src/mqueue_adapter.cc +++ b/src/components/hmi_message_handler/src/mqueue_adapter.cc @@ -47,8 +47,8 @@ class ReceiverThreadDelegate : public threads::ThreadDelegate { public: ReceiverThreadDelegate(mqd_t mqueue_descriptor, HMIMessageHandler* hmi_message_handler) - : mqueue_descriptor_(mqueue_descriptor), - hmi_message_handler_(hmi_message_handler) {} + : mqueue_descriptor_(mqueue_descriptor) + , hmi_message_handler_(hmi_message_handler) {} private: virtual void threadMain() { @@ -75,31 +75,33 @@ class ReceiverThreadDelegate : public threads::ThreadDelegate { }; MqueueAdapter::MqueueAdapter(HMIMessageHandler* hmi_message_handler) - : HMIMessageAdapterImpl(hmi_message_handler), - sdl_to_hmi_mqueue_(-1), - hmi_to_sdl_mqueue_(-1), - receiver_thread_(NULL) { + : HMIMessageAdapterImpl(hmi_message_handler) + , sdl_to_hmi_mqueue_(-1) + , hmi_to_sdl_mqueue_(-1) + , receiver_thread_(NULL) { mq_attr mq_attributes; mq_attributes.mq_maxmsg = kMqueueSize; mq_attributes.mq_msgsize = kMqueueMessageSize; sdl_to_hmi_mqueue_ = mq_open(kSdlToHmiQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes); if (-1 == sdl_to_hmi_mqueue_) { - LOG4CXX_ERROR(logger_, "Could not open message queue " - << kSdlToHmiQueue << ", error " << errno); + LOG4CXX_ERROR(logger_, + "Could not open message queue " << kSdlToHmiQueue + << ", error " << errno); return; } hmi_to_sdl_mqueue_ = mq_open(kHmiToSdlQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes); if (-1 == hmi_to_sdl_mqueue_) { - LOG4CXX_ERROR(logger_, "Could not open message queue " - << kHmiToSdlQueue << ", error " << errno); + LOG4CXX_ERROR(logger_, + "Could not open message queue " << kHmiToSdlQueue + << ", error " << errno); return; } - receiver_thread_delegate_ = new ReceiverThreadDelegate(hmi_to_sdl_mqueue_, - hmi_message_handler); - receiver_thread_ = threads::CreateThread("MqueueAdapter", - receiver_thread_delegate_); + receiver_thread_delegate_ = + new ReceiverThreadDelegate(hmi_to_sdl_mqueue_, hmi_message_handler); + receiver_thread_ = + threads::CreateThread("MqueueAdapter", receiver_thread_delegate_); receiver_thread_->start(); } @@ -107,8 +109,10 @@ MqueueAdapter::~MqueueAdapter() { receiver_thread_->join(); delete receiver_thread_delegate_; threads::DeleteThread(receiver_thread_); - if (-1 != hmi_to_sdl_mqueue_) mq_close(hmi_to_sdl_mqueue_); - if (-1 != sdl_to_hmi_mqueue_) mq_close(sdl_to_hmi_mqueue_); + if (-1 != hmi_to_sdl_mqueue_) + mq_close(hmi_to_sdl_mqueue_); + if (-1 != sdl_to_hmi_mqueue_) + mq_close(sdl_to_hmi_mqueue_); mq_unlink(kHmiToSdlQueue); mq_unlink(kSdlToHmiQueue); } diff --git a/src/components/hmi_message_handler/test/dbus_message_adapter_test.cc b/src/components/hmi_message_handler/test/dbus_message_adapter_test.cc index 6699f788dd..ac9a36aa16 100644 --- a/src/components/hmi_message_handler/test/dbus_message_adapter_test.cc +++ b/src/components/hmi_message_handler/test/dbus_message_adapter_test.cc @@ -38,15 +38,14 @@ namespace Json { class Value; } -class MockDBusMessageController : - public ::dbus::DBusMessageController { +class MockDBusMessageController : public ::dbus::DBusMessageController { public: MockDBusMessageController(const std::string& serviceName, const std::string& path, - const std::string& hmiserviceName, - const std::string& hmipath) - : DBusMessageController(serviceName, path, hmiserviceName,hmipath), - thread_() {} + const std::string& hmiserviceName, + const std::string& hmipath) + : DBusMessageController(serviceName, path, hmiserviceName, hmipath) + , thread_() {} virtual void processResponse(std::string method, Json::Value& root) {} virtual void processRequest(Json::Value& root) {} @@ -54,13 +53,15 @@ class MockDBusMessageController : bool Init() { return ::dbus::DBusMessageController::Init() && - pthread_create(&thread_, 0, &Run, this) == 0; + pthread_create(&thread_, 0, &Run, this) == 0; } + private: pthread_t thread_; static void* Run(void* data) { if (NULL != data) { - static_cast<MockDBusMessageController*>(data)->MethodForReceiverThread(nullptr); + static_cast<MockDBusMessageController*>(data) + ->MethodForReceiverThread(nullptr); } return 0; } diff --git a/src/components/hmi_message_handler/test/hmi_message_adapter_test.cc b/src/components/hmi_message_handler/test/hmi_message_adapter_test.cc index 3130702559..b0f63c6a0c 100644 --- a/src/components/hmi_message_handler/test/hmi_message_adapter_test.cc +++ b/src/components/hmi_message_handler/test/hmi_message_adapter_test.cc @@ -49,12 +49,15 @@ typedef utils::SharedPtr<MockHMIMessageAdapterImpl> MockHMIMessageAdapterImplSPtr; TEST(HMIMessageAdapterImplTest, Handler_CorrectPointer_CorrectReturnedPointer) { - testing::NiceMock<MockHMIMessageHandlerSettings> mock_hmi_message_handler_settings; - const uint64_t stack_size =1000u; + testing::NiceMock<MockHMIMessageHandlerSettings> + mock_hmi_message_handler_settings; + const uint64_t stack_size = 1000u; ON_CALL(mock_hmi_message_handler_settings, thread_min_stack_size()) .WillByDefault(ReturnRef(stack_size)); - HMIMessageHandler* message_handler = new hmi_message_handler::HMIMessageHandlerImpl( - mock_hmi_message_handler_settings);; + HMIMessageHandler* message_handler = + new hmi_message_handler::HMIMessageHandlerImpl( + mock_hmi_message_handler_settings); + ; MockHMIMessageAdapterImplSPtr message_adapter_impl = utils::MakeShared<MockHMIMessageAdapterImpl>(message_handler); diff --git a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h index 7512f2ab19..eb449f7121 100644 --- a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h +++ b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_dbus_message_controller.h @@ -36,15 +36,14 @@ #include <pthread.h> #include "hmi_message_handler/dbus_message_controller.h" -class MockDBusMessageController : - public ::hmi_message_handler::DBusMessageController { +class MockDBusMessageController + : public ::hmi_message_handler::DBusMessageController { public: MOCK_METHOD1(Recv, void(std::string&)); MockDBusMessageController(const std::string& serviceName, const std::string& path) - : DBusMessageController(serviceName, path), - thread_() {} + : DBusMessageController(serviceName, path), thread_() {} virtual void processResponse(std::string method, Json::Value& root) {} virtual void processRequest(Json::Value& root) {} @@ -52,17 +51,18 @@ class MockDBusMessageController : bool Init() { return ::hmi_message_handler::DBusMessageController::Init() && - pthread_create(&thread_, 0, &Run, this) == 0; + pthread_create(&thread_, 0, &Run, this) == 0; } + private: pthread_t thread_; static void* Run(void* data) { if (NULL != data) { - static_cast<MockDBusMessageController*>(data)->MethodForReceiverThread(nullptr); + static_cast<MockDBusMessageController*>(data) + ->MethodForReceiverThread(nullptr); } return 0; } }; - #endif // TEST_COMPONENTS_HMI_MESSAGE_HANDLER_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_DBUS_MESSAGE_CONTROLLER_H_ diff --git a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_hmi_message_observer.h b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_hmi_message_observer.h index cee922cdaa..09a8935ae7 100644 --- a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_hmi_message_observer.h +++ b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_hmi_message_observer.h @@ -44,15 +44,14 @@ namespace hmi_message_handler { using ::hmi_message_handler::HMIMessageObserver; class MockHMIMessageObserver : public HMIMessageObserver, - public utils::Singleton<MockHMIMessageObserver> { + public utils::Singleton<MockHMIMessageObserver> { public: MOCK_METHOD1(OnMessageReceived, - void(utils::SharedPtr<application_manager::Message> message)); + void(utils::SharedPtr<application_manager::Message> message)); MOCK_METHOD1(OnErrorSending, - void(utils::SharedPtr<application_manager::Message> message)); + void(utils::SharedPtr<application_manager::Message> message)); virtual ~MockHMIMessageObserver() {} }; -} // namespace hmi_message_handler - +} // namespace hmi_message_handler #endif // SRC_COMPONENTS_HMI_MESSAGE_HANDLER_TEST_INCLUDE_HMI_MESSAGE_HANDLER_MOCK_HMI_MESSAGE_OBSERVER_H_ diff --git a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.cc b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.cc index 3f1235bea9..c52d47b008 100644 --- a/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.cc +++ b/src/components/hmi_message_handler/test/include/hmi_message_handler/mock_subscriber.cc @@ -33,27 +33,21 @@ #include <dbus/dbus.h> #include "include/mock_subscriber.h" - namespace test { namespace components { namespace hmi_message_handler { -MockSubscriber::MockSubscriber( - const std::string & nameService, const std::string & path) - : nameService_(nameService), - path_(path), - conn_(NULL) { -} +MockSubscriber::MockSubscriber(const std::string& nameService, + const std::string& path) + : nameService_(nameService), path_(path), conn_(NULL) {} -MockSubscriber::~MockSubscriber() { -} +MockSubscriber::~MockSubscriber() {} -void MockSubscriber::Receive() { -} +void MockSubscriber::Receive() {} bool MockSubscriber::Start() { DBusError err; - //int ret; + // int ret; dbus_error_init(&err); conn_ = dbus_bus_get(DBUS_BUS_SESSION, &err); if (dbus_error_is_set(&err)) { @@ -61,19 +55,18 @@ bool MockSubscriber::Start() { return false; } - std::string rule = "type='signal',interface='" + nameService_ + "'"; dbus_bus_add_match(conn_, rule.c_str(), &err); dbus_connection_flush(conn_); if (dbus_error_is_set(&err)) { - dbus_error_free(&err); + dbus_error_free(&err); return false; } return true; } void MockSubscriber::Send(const std::string& message) { - // int a = message.length(); + // int a = message.length(); } } // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/test/include/mock_subscriber.h b/src/components/hmi_message_handler/test/include/mock_subscriber.h index 27e7cad1be..4a6b8070ef 100644 --- a/src/components/hmi_message_handler/test/include/mock_subscriber.h +++ b/src/components/hmi_message_handler/test/include/mock_subscriber.h @@ -43,7 +43,7 @@ namespace hmi_message_handler { class MockSubscriber { public: - MockSubscriber(const std::string &nameService, const std::string & path); + MockSubscriber(const std::string& nameService, const std::string& path); virtual ~MockSubscriber(); virtual void Receive(); bool Start(); diff --git a/src/components/hmi_message_handler/test/mock_subscriber.cc b/src/components/hmi_message_handler/test/mock_subscriber.cc index 3f1235bea9..c52d47b008 100644 --- a/src/components/hmi_message_handler/test/mock_subscriber.cc +++ b/src/components/hmi_message_handler/test/mock_subscriber.cc @@ -33,27 +33,21 @@ #include <dbus/dbus.h> #include "include/mock_subscriber.h" - namespace test { namespace components { namespace hmi_message_handler { -MockSubscriber::MockSubscriber( - const std::string & nameService, const std::string & path) - : nameService_(nameService), - path_(path), - conn_(NULL) { -} +MockSubscriber::MockSubscriber(const std::string& nameService, + const std::string& path) + : nameService_(nameService), path_(path), conn_(NULL) {} -MockSubscriber::~MockSubscriber() { -} +MockSubscriber::~MockSubscriber() {} -void MockSubscriber::Receive() { -} +void MockSubscriber::Receive() {} bool MockSubscriber::Start() { DBusError err; - //int ret; + // int ret; dbus_error_init(&err); conn_ = dbus_bus_get(DBUS_BUS_SESSION, &err); if (dbus_error_is_set(&err)) { @@ -61,19 +55,18 @@ bool MockSubscriber::Start() { return false; } - std::string rule = "type='signal',interface='" + nameService_ + "'"; dbus_bus_add_match(conn_, rule.c_str(), &err); dbus_connection_flush(conn_); if (dbus_error_is_set(&err)) { - dbus_error_free(&err); + dbus_error_free(&err); return false; } return true; } void MockSubscriber::Send(const std::string& message) { - // int a = message.length(); + // int a = message.length(); } } // namespace hmi_message_handler diff --git a/src/components/hmi_message_handler/test/mqueue_adapter_test.cc b/src/components/hmi_message_handler/test/mqueue_adapter_test.cc index 87fb3a3539..e5c5d2a396 100644 --- a/src/components/hmi_message_handler/test/mqueue_adapter_test.cc +++ b/src/components/hmi_message_handler/test/mqueue_adapter_test.cc @@ -51,8 +51,8 @@ class MockHandler : public HMIMessageHandler { MOCK_METHOD1(SendMessageToHMI, void(MessageSharedPointer message)); }; -//TODO{ALeshin}: APPLINK-10846 -//TEST(MqueueAdapter, Send) { +// TODO{ALeshin}: APPLINK-10846 +// TEST(MqueueAdapter, Send) { // MockHandler handler; // HMIMessageAdapter* adapter = new MqueueAdapter(&handler); @@ -71,8 +71,8 @@ class MockHandler : public HMIMessageHandler { // delete adapter; //} -//TODO{ALeshin}: APPLINK-10846 -//TEST(MqueueAdapter, Receive) { +// TODO{ALeshin}: APPLINK-10846 +// TEST(MqueueAdapter, Receive) { // MockHandler handler; // HMIMessageAdapter* adapter = new MqueueAdapter(&handler); diff --git a/src/components/include/protocol/common.h b/src/components/include/protocol/common.h index 91bc53652c..ce4c4adf6f 100644 --- a/src/components/include/protocol/common.h +++ b/src/components/include/protocol/common.h @@ -79,12 +79,14 @@ enum { *@brief Constant: number of protocol version (4). * This protocol is compatibility with version 3 * Support SSL with Encryption, Video and Audio services - * Support ControlFrame, End Service to/from mobile support, HeartBeat feature, + * Support ControlFrame, End Service to/from mobile support, HeartBeat + *feature, * SDL4.0 feature. */ PROTOCOL_VERSION_4 = 0x04, /** - *\brief Maximum value of packet version field (size 4-bit) specified AppLink Protocol v.7 + *\brief Maximum value of packet version field (size 4-bit) specified AppLink + *Protocol v.7 */ PROTOCOL_VERSION_MAX = 0x0F }; @@ -93,7 +95,7 @@ enum { *\brief Flag of protection packet * 1-bit field of AppLink protocol packet */ -const bool PROTECTION_ON = true; +const bool PROTECTION_ON = true; const bool PROTECTION_OFF = false; /** @@ -184,7 +186,8 @@ enum { */ FRAME_DATA_LAST_CONSECUTIVE = 0x00, /** - *\brief Maximum of consecutive frame numbers after which count has to roll over to 0x01 + *\brief Maximum of consecutive frame numbers after which count has to roll + *over to 0x01 */ FRAME_DATA_MAX_CONSECUTIVE = 0xFF, diff --git a/src/components/include/protocol/message_priority.h b/src/components/include/protocol/message_priority.h index baed0d89c4..c672af3a37 100644 --- a/src/components/include/protocol/message_priority.h +++ b/src/components/include/protocol/message_priority.h @@ -50,16 +50,17 @@ class MessagePriority { static MessagePriority FromServiceType(ServiceType service_type); // Trivial inline copy constructor - MessagePriority(const MessagePriority &that); + MessagePriority(const MessagePriority& that); // Ordering value which is used by queues to order messages // Higher value means higher prioirty size_t OrderingValue() const; + private: // Constructor is private to prevent creation // of random priorities in the code please use static constructor if you // need priority value - explicit MessagePriority(int32_t value): value_(value) {} + explicit MessagePriority(int32_t value) : value_(value) {} size_t value_; }; } // namespace protocol_handler diff --git a/src/components/include/protocol/raw_message.h b/src/components/include/protocol/raw_message.h index f9a035e174..99cb73ce67 100644 --- a/src/components/include/protocol/raw_message.h +++ b/src/components/include/protocol/raw_message.h @@ -54,8 +54,10 @@ class RawMessage { * \param dataSize Message size * \param payload_size Received data size */ - RawMessage(uint32_t connection_key, uint32_t protocol_version, - const uint8_t *const data_param, uint32_t data_size, + RawMessage(uint32_t connection_key, + uint32_t protocol_version, + const uint8_t* const data_param, + uint32_t data_size, uint8_t type = ServiceType::kRpc, uint32_t payload_size = 0); /** @@ -74,11 +76,11 @@ class RawMessage { /** * \brief Getter for message string data */ - uint8_t *data() const; + uint8_t* data() const; /** * \brief Getter for message size */ - size_t data_size() const; + size_t data_size() const; /** * \brief Getter for actual data size */ @@ -104,7 +106,7 @@ class RawMessage { private: uint32_t connection_key_; - uint8_t *data_; + uint8_t* data_; size_t data_size_; uint32_t protocol_version_; ServiceType service_type_; @@ -112,6 +114,6 @@ class RawMessage { bool waiting_; DISALLOW_COPY_AND_ASSIGN(RawMessage); }; -typedef utils::SharedPtr<RawMessage> RawMessagePtr; +typedef utils::SharedPtr<RawMessage> RawMessagePtr; } // namespace protocol_handler #endif // SRC_COMPONENTS_INCLUDE_PROTOCOL_RAW_MESSAGE_H_ diff --git a/src/components/include/protocol/rpc_type.h b/src/components/include/protocol/rpc_type.h index 5419bb5fce..db4a808cfd 100644 --- a/src/components/include/protocol/rpc_type.h +++ b/src/components/include/protocol/rpc_type.h @@ -40,8 +40,8 @@ namespace protocol_handler { // AppLink protocol 4.1.3 RpcType field enum RpcType { - kRpcTypeRequest = 0x0, - kRpcTypeResponse = 0x1, + kRpcTypeRequest = 0x0, + kRpcTypeResponse = 0x1, kRpcTypeNotification = 0x2, kRpcTypeReserved }; @@ -51,8 +51,8 @@ RpcType RpcTypeFromByte(uint8_t byte); // Check and convert RpcType to byte value ready to be transmitted uint8_t RpcTypeToByte(RpcType type); -const char *RpcTypeToString(RpcType type); +const char* RpcTypeToString(RpcType type); -std::ostream &operator<<(std::ostream &os, RpcType rpc_type); +std::ostream& operator<<(std::ostream& os, RpcType rpc_type); } // namespace protocol_handler #endif // SRC_COMPONENTS_INCLUDE_PROTOCOL_RPC_TYPE_H_ diff --git a/src/components/include/protocol/service_type.h b/src/components/include/protocol/service_type.h index b5870e0af1..803b8106b8 100644 --- a/src/components/include/protocol/service_type.h +++ b/src/components/include/protocol/service_type.h @@ -66,11 +66,11 @@ const uint8_t SERVICE_TYPE_BULK = 0x0F; Navi for video streaming, bulk for PutFile. */ enum ServiceType { - kControl = SERVICE_TYPE_CONTROL, - kRpc = SERVICE_TYPE_RPC, - kAudio = SERVICE_TYPE_AUDIO, + kControl = SERVICE_TYPE_CONTROL, + kRpc = SERVICE_TYPE_RPC, + kAudio = SERVICE_TYPE_AUDIO, kMobileNav = SERVICE_TYPE_NAVI, - kBulk = SERVICE_TYPE_BULK, + kBulk = SERVICE_TYPE_BULK, kInvalidServiceType }; diff --git a/src/components/include/protocol_handler/protocol_handler.h b/src/components/include/protocol_handler/protocol_handler.h index 9ffdc67053..183db21532 100644 --- a/src/components/include/protocol_handler/protocol_handler.h +++ b/src/components/include/protocol_handler/protocol_handler.h @@ -55,14 +55,14 @@ class ProtocolHandler { * \param observer Pointer to object of the class implementing * IProtocolObserver */ - virtual void AddProtocolObserver(ProtocolObserver *observer) = 0; + virtual void AddProtocolObserver(ProtocolObserver* observer) = 0; /** * \brief Removes pointer to higher layer handler for message exchange * \param observer Pointer to object of the class implementing * IProtocolObserver. */ - virtual void RemoveProtocolObserver(ProtocolObserver *observer) = 0; + virtual void RemoveProtocolObserver(ProtocolObserver* observer) = 0; /** * \brief Method for sending message to Mobile Application. @@ -112,8 +112,7 @@ class ProtocolHandler { /** * \brief Destructor */ - virtual ~ProtocolHandler() { - } + virtual ~ProtocolHandler() {} }; } // namespace protocol_handler #endif // SRC_COMPONENTS_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_HANDLER_H_ diff --git a/src/components/include/protocol_handler/protocol_observer.h b/src/components/include/protocol_handler/protocol_observer.h index 3879a4057e..ca60052cc4 100644 --- a/src/components/include/protocol_handler/protocol_observer.h +++ b/src/components/include/protocol_handler/protocol_observer.h @@ -55,13 +55,13 @@ class ProtocolObserver { */ virtual void OnMessageReceived(const RawMessagePtr message) = 0; - virtual void OnMobileMessageSent(const RawMessagePtr message) = 0; + virtual void OnMobileMessageSent(const RawMessagePtr message) = 0; + protected: /** * \brief Destructor */ - virtual ~ProtocolObserver() { - } + virtual ~ProtocolObserver() {} }; } // namespace protocol_handler diff --git a/src/components/include/protocol_handler/session_observer.h b/src/components/include/protocol_handler/session_observer.h index cbc0555425..5e630c6c74 100644 --- a/src/components/include/protocol_handler/session_observer.h +++ b/src/components/include/protocol_handler/session_observer.h @@ -39,27 +39,25 @@ #ifdef ENABLE_SECURITY #include "security_manager/ssl_context.h" #endif // ENABLE_SECURITY -/** - *\namespace protocol_handlerHandler - *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality. - */ + /** + *\namespace protocol_handlerHandler + *\brief Namespace for SmartDeviceLink ProtocolHandler related functionality. + */ namespace protocol_handler { /** * \brief HASH_ID constants. * Hint: Shall not intersect with connection identifiers for correct handling * these constants (Session identifier shall be greater than zero) */ -enum { - HASH_ID_NOT_SUPPORTED = 0, - HASH_ID_WRONG = 0xFFFF0000 -}; +enum { HASH_ID_NOT_SUPPORTED = 0, HASH_ID_WRONG = 0xFFFF0000 }; /** * \class SessionObserver * \brief Interface for making a bridge between ProtocolHandler and * ConnectionHandler components. */ -// TODO(EZamakhov): Reconsider rename callbacks and SessionObserver to SessionManager +// TODO(EZamakhov): Reconsider rename callbacks and SessionObserver to +// SessionManager // TODO(EZamakhov): Reconsider rename KeyFromPair and PairFromKey class SessionObserver { public: @@ -76,17 +74,19 @@ class SessionObserver { * \return uint32_t Id (number) of new session if successful, otherwise 0. */ virtual uint32_t OnSessionStartedCallback( - const transport_manager::ConnectionUID connection_handle, - const uint8_t sessionId, - const protocol_handler::ServiceType &service_type, - const bool is_protected, uint32_t* hash_id) = 0; + const transport_manager::ConnectionUID connection_handle, + const uint8_t sessionId, + const protocol_handler::ServiceType& service_type, + const bool is_protected, + uint32_t* hash_id) = 0; /** * \brief Callback function used by ProtocolHandler * when Mobile Application initiates session ending. * \param connection_handle Connection identifier within which session exists * \param sessionId Identifier of the session to be ended - * \param hashCode Hash used only in second version of SmartDeviceLink protocol. + * \param hashCode Hash used only in second version of SmartDeviceLink + * protocol. * If not equal to hash assigned to session on start then operation fails. * \param service_type Type of service * \return uint32_t 0 if operation fails, session key otherwise @@ -94,22 +94,22 @@ class SessionObserver { virtual uint32_t OnSessionEndedCallback( const transport_manager::ConnectionUID connection_handle, const uint8_t sessionId, - const uint32_t &hashCode, - const protocol_handler::ServiceType &service_type) = 0; + const uint32_t& hashCode, + const protocol_handler::ServiceType& service_type) = 0; /** * \brief Callback function used by ProtocolHandler * when Mobile Application start message flood * \param connection_key used by other components as application identifier */ - virtual void OnApplicationFloodCallBack(const uint32_t &connection_key) = 0; + virtual void OnApplicationFloodCallBack(const uint32_t& connection_key) = 0; /** * \brief Callback function used by ProtocolHandler * when Mobile Application sends malformed message * \param connection_key used by other components as application identifier */ - virtual void OnMalformedMessageCallback(const uint32_t &connection_key) = 0; + virtual void OnMalformedMessageCallback(const uint32_t& connection_key) = 0; /** * \brief Creates unique identifier of session (can be used as hash) @@ -120,8 +120,8 @@ class SessionObserver { * \return uint32_t Unique key for session */ virtual uint32_t KeyFromPair( - transport_manager::ConnectionUID connection_handle, - uint8_t session_id) const = 0; + transport_manager::ConnectionUID connection_handle, + uint8_t session_id) const = 0; /** * \brief Returns connection identifier and session number from given @@ -130,10 +130,9 @@ class SessionObserver { * \param connection_handle Connection identifier within which session exists * \param sessionId Returned: Number of session */ - virtual void PairFromKey( - uint32_t key, - transport_manager::ConnectionUID *connection_handle, - uint8_t *sessionId) const = 0; + virtual void PairFromKey(uint32_t key, + transport_manager::ConnectionUID* connection_handle, + uint8_t* sessionId) const = 0; /** * \brief information about given Connection Key. @@ -144,9 +143,9 @@ class SessionObserver { * \return int32_t -1 in case of error or 0 in case of success */ virtual int32_t GetDataOnSessionKey(uint32_t key, - uint32_t *app_id, - std::list<int32_t> *sessions_list, - uint32_t *device_id) const = 0; + uint32_t* app_id, + std::list<int32_t>* sessions_list, + uint32_t* device_id) const = 0; /** * \brief information about device @@ -158,21 +157,23 @@ class SessionObserver { * \return int32_t -1 in case of error or 0 in case of success */ virtual int32_t GetDataOnDeviceID( - transport_manager::DeviceHandle device_handle, - std::string *device_name = NULL, - std::list<uint32_t> *applications_list = NULL, - std::string *mac_address = NULL, - std::string *connection_type = NULL) const = 0; + transport_manager::DeviceHandle device_handle, + std::string* device_name = NULL, + std::list<uint32_t>* applications_list = NULL, + std::string* mac_address = NULL, + std::string* connection_type = NULL) const = 0; /** - * \brief returns TRUE if session supports sending HEARTBEAT ACK to mobile side + * \brief returns TRUE if session supports sending HEARTBEAT ACK to mobile + * side * \param connection_handle Connection identifier whithin which session exists * \param session_id Identifier of the session - * \return TRUE if session has protocol version which supports heartbeat otherwise returns FALSE + * \return TRUE if session has protocol version which supports heartbeat + * otherwise returns FALSE */ - virtual bool IsHeartBeatSupported( - transport_manager::ConnectionUID connection_handle, - uint8_t session_id) const = 0; + virtual bool IsHeartBeatSupported( + transport_manager::ConnectionUID connection_handle, + uint8_t session_id) const = 0; /** * @brief returns protocol version which application supports @@ -182,8 +183,8 @@ class SessionObserver { * @return TRUE if session and connection exist otherwise returns FALSE */ virtual bool ProtocolVersionUsed(uint32_t connection_id, - uint8_t session_id, uint8_t& protocol_version) const = 0; - + uint8_t session_id, + uint8_t& protocol_version) const = 0; #ifdef ENABLE_SECURITY /** @@ -192,9 +193,8 @@ class SessionObserver { * \param context SSLContext to be set * \return \c SecurityQuery::ProtectSessionResult value */ - virtual int SetSSLContext( - const uint32_t &key, - security_manager::SSLContext *context) = 0; + virtual int SetSSLContext(const uint32_t& key, + security_manager::SSLContext* context) = 0; /** * \brief Gets crypto context of connection, use service_type to get NULL * SSLContext for not protected services or ControlService (0x0) @@ -203,9 +203,9 @@ class SessionObserver { * \param service_type Type of service * \return \ref SSLContext of connection */ - virtual security_manager::SSLContext *GetSSLContext( - const uint32_t &key, - const protocol_handler::ServiceType &service_type) = 0; + virtual security_manager::SSLContext* GetSSLContext( + const uint32_t& key, + const protocol_handler::ServiceType& service_type) = 0; /** * \brief Set protection flag to service in session by key * to get current SSLContext of connection @@ -213,19 +213,18 @@ class SessionObserver { * \param service_type Type of service */ virtual void SetProtectionFlag( - const uint32_t &key, - const protocol_handler::ServiceType &service_type) = 0; + const uint32_t& key, + const protocol_handler::ServiceType& service_type) = 0; - virtual security_manager::SSLContext::HandshakeContext - GetHandshakeContext(uint32_t key) const = 0; + virtual security_manager::SSLContext::HandshakeContext GetHandshakeContext( + uint32_t key) const = 0; #endif // ENABLE_SECURITY protected: /** * \brief Destructor */ - virtual ~SessionObserver() { - } + virtual ~SessionObserver() {} }; } // namespace protocol_handler #endif // SRC_COMPONENTS_INCLUDE_PROTOCOL_HANDLER_SESSION_OBSERVER_H_ diff --git a/src/components/include/security_manager/crypto_manager.h b/src/components/include/security_manager/crypto_manager.h index ed0db50f36..9b11a8e4ae 100644 --- a/src/components/include/security_manager/crypto_manager.h +++ b/src/components/include/security_manager/crypto_manager.h @@ -40,17 +40,20 @@ * \class security_manager::CryptoManager * \brief Class factory, producing instances of \ref SSLContext * - * \fn security_manager::SSLContext *security_manager::CryptoManager::CreateSSLContext() + * \fn security_manager::SSLContext + **security_manager::CryptoManager::CreateSSLContext() * \brief Creates an instance of \ref SSLContext class * - * \fn void security_manager::CryptoManager::ReleaseSSLContext(security_manager::SSLContext *context) + * \fn void + *security_manager::CryptoManager::ReleaseSSLContext(security_manager::SSLContext + **context) * \brief Frees \ref SSLContext instance */ namespace security_manager { class SSLContext; -class CryptoManager: public policy::PolicyHandlerObserver{ +class CryptoManager : public policy::PolicyHandlerObserver { public: /** * @brief Init allows to initialize cryptomanager with certain values. @@ -58,9 +61,9 @@ class CryptoManager: public policy::PolicyHandlerObserver{ * @return true in case initialization was succesfull, false otherwise. */ virtual bool Init() = 0; - virtual SSLContext *CreateSSLContext() = 0; + virtual SSLContext* CreateSSLContext() = 0; virtual bool OnCertificateUpdated(const std::string& data) = 0; - virtual void ReleaseSSLContext(SSLContext *context) = 0; + virtual void ReleaseSSLContext(SSLContext* context) = 0; virtual std::string LastError() const = 0; virtual bool IsCertificateUpdateRequired() const = 0; @@ -69,7 +72,7 @@ class CryptoManager: public policy::PolicyHandlerObserver{ * \return pointer to crypto manager settings class */ virtual const CryptoManagerSettings& get_settings() const = 0; - virtual ~CryptoManager() { } + virtual ~CryptoManager() {} }; } // namespace security_manager diff --git a/src/components/include/security_manager/security_manager.h b/src/components/include/security_manager/security_manager.h index 97b1ffc065..8ed0ff2912 100644 --- a/src/components/include/security_manager/security_manager.h +++ b/src/components/include/security_manager/security_manager.h @@ -46,78 +46,81 @@ namespace security_manager { class CryptoManager; /** - * \brief SecurityManager interface implements protocol_handler::ProtocolObserver + * \brief SecurityManager interface implements + * protocol_handler::ProtocolObserver * and provide interface for handling Security queries from mobile side */ -class SecurityManager - : public protocol_handler::ProtocolObserver { +class SecurityManager : public protocol_handler::ProtocolObserver { public: /** * \brief InternalErrors is 1 byte identifier of internal error * Handle as binary data in Ford Protocol */ enum InternalErrors { - ERROR_SUCCESS = 0x00, - ERROR_INVALID_QUERY_SIZE = 0x01, // wrong size of query data - ERROR_INVALID_QUERY_ID = 0x02, // unknown query id - ERROR_NOT_SUPPORTED = 0x03, // SDL does not support encryption - ERROR_SERVICE_ALREADY_PROTECTED = 0x04, - ERROR_SERVICE_NOT_PROTECTED = 0x05, // got handshake or encrypted data + ERROR_SUCCESS = 0x00, + ERROR_INVALID_QUERY_SIZE = 0x01, // wrong size of query data + ERROR_INVALID_QUERY_ID = 0x02, // unknown query id + ERROR_NOT_SUPPORTED = 0x03, // SDL does not support encryption + ERROR_SERVICE_ALREADY_PROTECTED = 0x04, + ERROR_SERVICE_NOT_PROTECTED = 0x05, // got handshake or encrypted data // for not protected service - ERROR_DECRYPTION_FAILED = 0x06, - ERROR_ENCRYPTION_FAILED = 0x07, - ERROR_SSL_INVALID_DATA = 0x08, - ERROR_INTERNAL = 0xFF, - ERROR_UNKNOWN_INTERNAL_ERROR = 0xFE // error value for testing + ERROR_DECRYPTION_FAILED = 0x06, + ERROR_ENCRYPTION_FAILED = 0x07, + ERROR_SSL_INVALID_DATA = 0x08, + ERROR_INTERNAL = 0xFF, + ERROR_UNKNOWN_INTERNAL_ERROR = 0xFE // error value for testing }; /** * \brief Sets pointer for Connection Handler layer for managing sessions * \param session_observer pointer to object of the class implementing */ virtual void set_session_observer( - protocol_handler::SessionObserver *observer) = 0; + protocol_handler::SessionObserver* observer) = 0; /** * \brief Sets pointer for Protocol Handler layer for sending * \param protocol_handler pointer to object of the class implementing */ virtual void set_protocol_handler( - protocol_handler::ProtocolHandler *protocol_handler_) = 0; + protocol_handler::ProtocolHandler* protocol_handler_) = 0; /** * \brief Sets pointer for CryptoManager for handling SSLContext * \param crypto_manager pointer to object of the class implementing */ - virtual void set_crypto_manager(CryptoManager *crypto_manager) = 0; + virtual void set_crypto_manager(CryptoManager* crypto_manager) = 0; /** * \brief Sends InternalError with text message to mobile application - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param error_id unique error identifier * \param erorr_text SSL impelmentation error text * \param seq_number received from Mobile Application */ virtual void SendInternalError(const uint32_t connection_key, - const uint8_t &error_id, - const std::string &erorr_text, + const uint8_t& error_id, + const std::string& erorr_text, const uint32_t seq_number) = 0; /** * \brief Sends InternalError override methode for sending without seq_number - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param error_id unique error identifier * \param erorr_text SSL impelmentation error text */ void SendInternalError(const uint32_t connection_key, - const uint8_t &error_id, - const std::string &erorr_text) { + const uint8_t& error_id, + const std::string& erorr_text) { SendInternalError(connection_key, error_id, erorr_text, 0); } /** * \brief Create new SSLContext for connection or return exists * Do not notify listeners, send security error on occure - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * @return new \c SSLContext or \c NULL on any error */ - virtual SSLContext *CreateSSLContext(const uint32_t &connection_key) = 0; + virtual SSLContext* CreateSSLContext(const uint32_t& connection_key) = 0; /** * \brief Start handshake as SSL client @@ -127,8 +130,8 @@ class SecurityManager /** * \brief Add/Remove for SecurityManagerListener */ - virtual void AddListener(SecurityManagerListener *const listener) = 0; - virtual void RemoveListener(SecurityManagerListener *const listener) = 0; + virtual void AddListener(SecurityManagerListener* const listener) = 0; + virtual void RemoveListener(SecurityManagerListener* const listener) = 0; }; } // namespace security_manager #endif // SRC_COMPONENTS_INCLUDE_SECURITY_MANAGER_SECURITY_MANAGER_H_ diff --git a/src/components/include/security_manager/security_manager_listener.h b/src/components/include/security_manager/security_manager_listener.h index 6cf6e8f7ed..577c7c4378 100644 --- a/src/components/include/security_manager/security_manager_listener.h +++ b/src/components/include/security_manager/security_manager_listener.h @@ -37,7 +37,8 @@ class SecurityManagerListener { public: /** * \brief Notification about protection result - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param success result of connection protection * \return \c true on success notification or \c false otherwise */ diff --git a/src/components/include/security_manager/security_query.h b/src/components/include/security_manager/security_query.h index c9f0b5843f..71d148b909 100644 --- a/src/components/include/security_manager/security_query.h +++ b/src/components/include/security_manager/security_query.h @@ -51,19 +51,19 @@ class SecurityQuery { * Equal RPC Type (Ford Binary Header Definition) */ enum QueryType { - REQUEST = 0x00, - RESPONSE = 0x10, + REQUEST = 0x00, + RESPONSE = 0x10, NOTIFICATION = 0x20, INVALID_QUERY_TYPE = 0xFF - }; + }; /** * \brief QueryId is 3 byte identifier of income query * Equal RPC Function ID (Ford Binary Header Definition) */ enum QueryId { - SEND_HANDSHAKE_DATA = 0x1, - SEND_INTERNAL_ERROR = 0x2, - INVALID_QUERY_ID = 0xFFFFFF + SEND_HANDSHAKE_DATA = 0x1, + SEND_INTERNAL_ERROR = 0x2, + INVALID_QUERY_ID = 0xFFFFFF }; /** * \brief QueryHeader is 12 byte header of security query @@ -71,12 +71,14 @@ class SecurityQuery { */ struct QueryHeader { QueryHeader(); - QueryHeader(uint8_t queryType, uint32_t queryId, - uint32_t seqNumber = 0, uint32_t jsonSize= 0); + QueryHeader(uint8_t queryType, + uint32_t queryId, + uint32_t seqNumber = 0, + uint32_t jsonSize = 0); // TODO(EZamakhov): check bitfield correctness on other endianness platform - uint32_t query_type:8; - uint32_t query_id:24; // API function identifier - uint32_t seq_number; // request sequential number + uint32_t query_type : 8; + uint32_t query_id : 24; // API function identifier + uint32_t seq_number; // request sequential number uint32_t json_size; }; @@ -86,19 +88,23 @@ class SecurityQuery { SecurityQuery(); /** * \brief Constructor with header and connection_key - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param header QueryHeader */ - SecurityQuery(const QueryHeader &header, const uint32_t connection_key); + SecurityQuery(const QueryHeader& header, const uint32_t connection_key); /** * \brief Constructor with header, connection_key and query binary data - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param raw_data pointer to binary data array * \param raw_data_size size of binary data array * \param header QueryHeader */ - SecurityQuery(const QueryHeader &header, const uint32_t connection_key, - const uint8_t *const raw_data, const size_t raw_data_size); + SecurityQuery(const QueryHeader& header, + const uint32_t connection_key, + const uint8_t* const raw_data, + const size_t raw_data_size); /** * \brief Serialize income from Mobile Application data * as query with header and binary data or json message @@ -106,7 +112,8 @@ class SecurityQuery { * \param raw_data_size size of binary data array * \return \c true on correct parse and \c false on wrong size of data */ - bool SerializeQuery(const uint8_t *const raw_data, const size_t raw_data_size); + bool SerializeQuery(const uint8_t* const raw_data, + const size_t raw_data_size); /** * \brief Deserialize query for sending to Mobile Application * \return \c vector of uint8_t data (serialized header data and send_data)) @@ -117,32 +124,33 @@ class SecurityQuery { * \param binary_data pointer to binary data array * \param bin_data_size size of binary data array */ - void set_data(const uint8_t *const binary_data, const size_t bin_data_size); + void set_data(const uint8_t* const binary_data, const size_t bin_data_size); /** * \brief Set json data. (No header modification) * \param json_message string with json error */ - void set_json_message(const std::string &json_message); + void set_json_message(const std::string& json_message); /** * \brief Set connection key - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier */ void set_connection_key(const uint32_t connection_key); /** * \brief Set query header * \param header of query */ - void set_header(const QueryHeader &header); + void set_header(const QueryHeader& header); /** * \brief Get query header * \return header of query */ - const QueryHeader &get_header() const; + const QueryHeader& get_header() const; /** * \brief Get query binary data (without header data) * \return const pointer to const binary data */ - const uint8_t *get_data() const; + const uint8_t* get_data() const; /** * \brief Get query binary data size * \return size of binary data @@ -152,7 +160,7 @@ class SecurityQuery { * \brief Get json string data (without header data) * \return const pointer to const binary data */ - const std::string &get_json_message() const; + const std::string& get_json_message() const; /** * \brief Get connection key * \return Unique key used by other components as session identifier diff --git a/src/components/include/telemetry_monitor/telemetry_observable.h b/src/components/include/telemetry_monitor/telemetry_observable.h index eb3ff94212..bafa916925 100644 --- a/src/components/include/telemetry_monitor/telemetry_observable.h +++ b/src/components/include/telemetry_monitor/telemetry_observable.h @@ -36,8 +36,8 @@ namespace telemetry_monitor { template <class TelemetryObserver> class TelemetryObservable { -public: - virtual void SetTelemetryObserver(TelemetryObserver* observer) = 0; + public: + virtual void SetTelemetryObserver(TelemetryObserver* observer) = 0; }; } // namespace telemetry_monitor #endif // SRC_COMPONENTS_INCLUDE_TELEMETRY_MONITOR_RESOURCE_OBSERVEABLE_H diff --git a/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h b/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h index 6ad037f92d..83026674af 100644 --- a/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h +++ b/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h @@ -49,8 +49,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD0(InitPolicyTable, bool()); MOCK_METHOD0(ResetPolicyTable, bool()); MOCK_METHOD0(ClearUserConsent, bool()); - MOCK_METHOD2(SendMessageToSDK, bool(const policy::BinaryMessage& pt_string, - const std::string& url)); + MOCK_METHOD2(SendMessageToSDK, + bool(const policy::BinaryMessage& pt_string, + const std::string& url)); MOCK_METHOD2(ReceiveMessageFromSDK, bool(const std::string& file, const policy::BinaryMessage& pt_string)); @@ -66,27 +67,31 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { void(const policy::BinaryMessage& pt_string, const std::vector<int>& retry_delay_seconds, int timeout_exchange)); - MOCK_CONST_METHOD2(GetPriority, bool(const std::string& policy_app_id, - std::string* priority)); + MOCK_CONST_METHOD2(GetPriority, + bool(const std::string& policy_app_id, + std::string* priority)); MOCK_METHOD5(CheckPermissions, void(const policy::PTString& app_id, const policy::PTString& hmi_level, - const policy::PTString& rpc, const policy::RPCParams& rpc_params, + const policy::PTString& rpc, + const policy::RPCParams& rpc_params, policy::CheckPermissionResult& result)); MOCK_CONST_METHOD1(GetNotificationsNumber, uint32_t(const std::string& priority)); MOCK_CONST_METHOD1(GetUserConsentForDevice, policy::DeviceConsent(const std::string& device_id)); - MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, - std::string* default_hmi)); + MOCK_CONST_METHOD2(GetDefaultHmi, + bool(const std::string& policy_app_id, + std::string* default_hmi)); MOCK_METHOD3(GetInitialAppData, - bool(const std::string& application_id, policy::StringArray* nicknames, + bool(const std::string& application_id, + policy::StringArray* nicknames, policy::StringArray* app_hmi_types)); MOCK_METHOD2(GetInitialAppData, - bool(const std::string& application_id, policy::StringArray* nicknames)); - MOCK_METHOD1(GetInitialAppData, - bool(const std::string& application_id)); + bool(const std::string& application_id, + policy::StringArray* nicknames)); + MOCK_METHOD1(GetInitialAppData, bool(const std::string& application_id)); MOCK_METHOD2(GetUpdateUrls, void(int service_type, policy::EndpointUrls& end_points)); MOCK_METHOD0(ResetRetrySequence, void()); @@ -111,26 +116,31 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(OnPendingPermissionChange, void(const std::string& policy_app_id)); MOCK_METHOD1(PTExchangeAtUserRequest, void(uint32_t correlation_id)); - MOCK_METHOD2(AddDevice, void(const std::string& device_id, - const std::string& connection_type)); - MOCK_METHOD2(SetDeviceInfo, void(const std::string& device_id, - const policy::DeviceInfo& device_info)); + MOCK_METHOD2(AddDevice, + void(const std::string& device_id, + const std::string& connection_type)); + MOCK_METHOD2(SetDeviceInfo, + void(const std::string& device_id, + const policy::DeviceInfo& device_info)); MOCK_METHOD2(OnAppPermissionConsent, void(const uint32_t connection_key, const policy::PermissionConsent& permissions)); MOCK_METHOD3(OnGetUserFriendlyMessage, void(const std::vector<std::string>& message_codes, - const std::string& language, uint32_t correlation_id)); - MOCK_METHOD2(OnGetListOfPermissions, void(const uint32_t connection_key, - const uint32_t correlation_id)); + const std::string& language, + uint32_t correlation_id)); + MOCK_METHOD2(OnGetListOfPermissions, + void(const uint32_t connection_key, + const uint32_t correlation_id)); MOCK_METHOD1(OnGetStatusUpdate, void(const uint32_t correlation_id)); MOCK_METHOD1(OnUpdateStatusChanged, void(const std::string& status)); MOCK_METHOD1(OnCurrentDeviceIdUpdateRequired, std::string(const std::string& policy_app_id)); MOCK_METHOD1(OnSystemInfoChanged, void(const std::string& language)); - MOCK_METHOD3(OnGetSystemInfo, void(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language)); + MOCK_METHOD3(OnGetSystemInfo, + void(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language)); MOCK_METHOD0(OnSystemInfoUpdateRequired, void()); MOCK_METHOD0(OnVIIsReady, void()); MOCK_METHOD1(OnVehicleDataUpdated, @@ -139,8 +149,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(AddStatisticsInfo, void(int type)); MOCK_METHOD1(OnSystemError, void(int code)); MOCK_CONST_METHOD0(GetAppIdForSending, uint32_t()); - MOCK_METHOD1(GetAppName, - utils::custom_string::CustomString(const std::string& policy_app_id)); + MOCK_METHOD1( + GetAppName, + utils::custom_string::CustomString(const std::string& policy_app_id)); MOCK_METHOD1(OnUpdateHMIAppType, void(std::map<std::string, policy::StringArray> app_hmi_types)); MOCK_METHOD1(OnCertificateUpdated, void(const std::string& certificate_data)); @@ -164,23 +175,29 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_CONST_METHOD2(IsRequestTypeAllowed, bool(const std::string& policy_app_id, mobile_apis::RequestType::eType type)); - MOCK_CONST_METHOD1(GetAppRequestTypes, const std::vector<std::string>( - const std::string& policy_app_id)); + MOCK_CONST_METHOD1( + GetAppRequestTypes, + const std::vector<std::string>(const std::string& policy_app_id)); MOCK_CONST_METHOD0(GetVehicleInfo, const policy::VehicleInfo()); MOCK_METHOD1(Increment, void(usage_statistics::GlobalCounterId type)); - MOCK_METHOD2(Increment, void(const std::string& app_id, - usage_statistics::AppCounterId type)); + MOCK_METHOD2(Increment, + void(const std::string& app_id, + usage_statistics::AppCounterId type)); MOCK_METHOD3(Set, - void(const std::string& app_id, usage_statistics::AppInfoId type, + void(const std::string& app_id, + usage_statistics::AppInfoId type, const std::string& value)); - MOCK_METHOD3(Add, void(const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds)); + MOCK_METHOD3(Add, + void(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds)); MOCK_CONST_METHOD0(RetrieveCertificate, std::string()); MOCK_CONST_METHOD0(get_settings, const policy::PolicySettings&()); MOCK_CONST_METHOD0(RemoteAppsUrl, const std::string()); - MOCK_METHOD2(GetServiceUrls, void(const std::string& service_type, - policy::EndpointUrls& end_points)); + MOCK_METHOD2(GetServiceUrls, + void(const std::string& service_type, + policy::EndpointUrls& end_points)); + private: MOCK_METHOD2(OnAppPermissionConsentInternal, void(const uint32_t connection_key, diff --git a/src/components/include/test/connection_handler/mock_connection_handler.h b/src/components/include/test/connection_handler/mock_connection_handler.h index e96825d9a8..eac82cc177 100644 --- a/src/components/include/test/connection_handler/mock_connection_handler.h +++ b/src/components/include/test/connection_handler/mock_connection_handler.h @@ -52,59 +52,50 @@ using connection_handler::DeviceHandle; using connection_handler::CloseSessionReason; using connection_handler::DevicesDiscoveryStarter; - class MockConnectionHandler : public connection_handler::ConnectionHandler { public: MOCK_METHOD1(set_connection_handler_observer, - void(connection_handler::ConnectionHandlerObserver* observer)); - MOCK_METHOD0(StartTransportManager, - void()); + void(connection_handler::ConnectionHandlerObserver* observer)); + MOCK_METHOD0(StartTransportManager, void()); MOCK_METHOD1(ConnectToDevice, - void(connection_handler::DeviceHandle device_handle)); - MOCK_METHOD0(ConnectToAllDevices, - void()); - MOCK_METHOD1(CloseRevokedConnection, - void(uint32_t connection_key)); - MOCK_METHOD1(CloseConnection, - void(ConnectionHandle connection_handle)); - MOCK_METHOD1(GetConnectionSessionsCount, - uint32_t(uint32_t connection_key)); + void(connection_handler::DeviceHandle device_handle)); + MOCK_METHOD0(ConnectToAllDevices, void()); + MOCK_METHOD1(CloseRevokedConnection, void(uint32_t connection_key)); + MOCK_METHOD1(CloseConnection, void(ConnectionHandle connection_handle)); + MOCK_METHOD1(GetConnectionSessionsCount, uint32_t(uint32_t connection_key)); MOCK_METHOD2(GetDeviceID, - bool(const std::string& mac_address, DeviceHandle* device_handle)); + bool(const std::string& mac_address, + DeviceHandle* device_handle)); MOCK_METHOD2(CloseSession, - void(uint32_t key, CloseSessionReason close_reason)); + void(uint32_t key, CloseSessionReason close_reason)); MOCK_METHOD3(CloseSession, - void(ConnectionHandle connection_handle, - uint8_t session_id, - CloseSessionReason close_reason)); - MOCK_METHOD2(SendEndService, - void(uint32_t key, uint8_t service_type)); - MOCK_METHOD1(StartSessionHeartBeat, - void(uint32_t connection_key)); + void(ConnectionHandle connection_handle, + uint8_t session_id, + CloseSessionReason close_reason)); + MOCK_METHOD2(SendEndService, void(uint32_t key, uint8_t service_type)); + MOCK_METHOD1(StartSessionHeartBeat, void(uint32_t connection_key)); MOCK_METHOD2(SendHeartBeat, - void(ConnectionHandle connection_handle, uint8_t session_id)); + void(ConnectionHandle connection_handle, uint8_t session_id)); MOCK_METHOD2(SetHeartBeatTimeout, - void(uint32_t connection_key, uint32_t timeout)); + void(uint32_t connection_key, uint32_t timeout)); MOCK_METHOD2(KeepConnectionAlive, - void(uint32_t connection_key, uint8_t session_id)); + void(uint32_t connection_key, uint8_t session_id)); MOCK_METHOD2(BindProtocolVersionWithSession, - void(uint32_t connection_key, uint8_t protocol_version)); + void(uint32_t connection_key, uint8_t protocol_version)); MOCK_CONST_METHOD4(GetDataOnSessionKey, - int32_t(uint32_t key, - uint32_t* app_id, - std::list<int32_t>* sessions_list, - uint32_t* device_id)); + int32_t(uint32_t key, + uint32_t* app_id, + std::list<int32_t>* sessions_list, + uint32_t* device_id)); MOCK_CONST_METHOD0(get_settings, - const connection_handler::ConnectionHandlerSettings&()); + const connection_handler::ConnectionHandlerSettings&()); MOCK_METHOD0(get_session_observer, - const protocol_handler::SessionObserver&()); - MOCK_METHOD0(get_device_discovery_starter, - DevicesDiscoveryStarter&()); + const protocol_handler::SessionObserver&()); + MOCK_METHOD0(get_device_discovery_starter, DevicesDiscoveryStarter&()); MOCK_CONST_METHOD1(GetConnectedDevicesMAC, - void(std::vector<std::string>& macs)); + void(std::vector<std::string>& macs)); }; - } // namespace connection_handler_test } // namespace components } // namespace test diff --git a/src/components/include/test/connection_handler/mock_connection_handler_settings.h b/src/components/include/test/connection_handler/mock_connection_handler_settings.h index 6f4b86f5cc..c813455698 100644 --- a/src/components/include/test/connection_handler/mock_connection_handler_settings.h +++ b/src/components/include/test/connection_handler/mock_connection_handler_settings.h @@ -44,12 +44,9 @@ namespace connection_handler_test { class MockConnectionHandlerSettings : public connection_handler::ConnectionHandlerSettings { public: - MOCK_CONST_METHOD0(heart_beat_timeout, - uint32_t()); - MOCK_CONST_METHOD0(force_protected_service, - const std::vector<int>&()); - MOCK_CONST_METHOD0(force_unprotected_service, - const std::vector<int>&()); + MOCK_CONST_METHOD0(heart_beat_timeout, uint32_t()); + MOCK_CONST_METHOD0(force_protected_service, const std::vector<int>&()); + MOCK_CONST_METHOD0(force_unprotected_service, const std::vector<int>&()); }; } // namespace connection_handler_test diff --git a/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h b/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h index 9c5ed916ac..19aa92f932 100644 --- a/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h +++ b/src/components/include/test/hmi_message_handler/mock_hmi_message_handler.h @@ -42,10 +42,10 @@ namespace hmi_message_handler_test { using hmi_message_handler::HMIMessageAdapter; -class MockHMIMessageHandler : public ::hmi_message_handler::HMIMessageHandler { - public: - MOCK_METHOD1(AddHMIMessageAdapter, void(HMIMessageAdapter* adapter)); - MOCK_METHOD1(RemoveHMIMessageAdapter, void(HMIMessageAdapter* adapter)); +class MockHMIMessageHandler : public ::hmi_message_handler::HMIMessageHandler { + public: + MOCK_METHOD1(AddHMIMessageAdapter, void(HMIMessageAdapter* adapter)); + MOCK_METHOD1(RemoveHMIMessageAdapter, void(HMIMessageAdapter* adapter)); }; } // namespace hmi_message_handler_test } // namespace components diff --git a/src/components/include/test/media_manager/mock_media_manager_settings.h b/src/components/include/test/media_manager/mock_media_manager_settings.h index 65d0400564..5ef9e276b2 100644 --- a/src/components/include/test/media_manager/mock_media_manager_settings.h +++ b/src/components/include/test/media_manager/mock_media_manager_settings.h @@ -40,8 +40,6 @@ namespace test { namespace components { namespace media_manager_test { - - class MockMediaManagerSettings : public ::media_manager::MediaManagerSettings { public: MOCK_CONST_METHOD0(video_server_type, const std::string&()); diff --git a/src/components/include/test/policy/mock_policy_settings.h b/src/components/include/test/policy/mock_policy_settings.h index 1d751c8aac..438e697c51 100644 --- a/src/components/include/test/policy/mock_policy_settings.h +++ b/src/components/include/test/policy/mock_policy_settings.h @@ -40,8 +40,7 @@ namespace test { namespace components { namespace policy_handler_test { -class MockPolicySettings - : public ::policy::PolicySettings { +class MockPolicySettings : public ::policy::PolicySettings { public: MOCK_CONST_METHOD0(enable_policy, bool()); MOCK_CONST_METHOD0(preloaded_pt_file, const std::string&()); diff --git a/src/components/include/test/protocol_handler/mock_protocol_handler.h b/src/components/include/test/protocol_handler/mock_protocol_handler.h index 413852f8da..44287edd4d 100644 --- a/src/components/include/test/protocol_handler/mock_protocol_handler.h +++ b/src/components/include/test/protocol_handler/mock_protocol_handler.h @@ -55,12 +55,13 @@ class MockProtocolHandler : public ::protocol_handler::ProtocolHandler { void(uint32_t connection_key, int32_t number_of_frames)); MOCK_METHOD2(SendHeartBeat, void(int32_t connection_id, uint8_t session_id)); MOCK_METHOD2(SendEndSession, void(int32_t connection_id, uint8_t session_id)); - MOCK_METHOD3(SendEndService, void(int32_t connection_id, uint8_t session_id, - uint8_t service_type)); + MOCK_METHOD3(SendEndService, + void(int32_t connection_id, + uint8_t session_id, + uint8_t service_type)); MOCK_CONST_METHOD0(get_settings, const ::protocol_handler::ProtocolHandlerSettings&()); - MOCK_METHOD0(get_session_observer, - protocol_handler::SessionObserver&()); + MOCK_METHOD0(get_session_observer, protocol_handler::SessionObserver&()); }; } // namespace protocol_handler_test } // namespace components diff --git a/src/components/include/test/protocol_handler/mock_protocol_handler_settings.h b/src/components/include/test/protocol_handler/mock_protocol_handler_settings.h index c3e4ec1ddd..d12e7899e0 100644 --- a/src/components/include/test/protocol_handler/mock_protocol_handler_settings.h +++ b/src/components/include/test/protocol_handler/mock_protocol_handler_settings.h @@ -39,33 +39,22 @@ namespace test { namespace components { namespace protocol_handler_test { -class MockProtocolHandlerSettings : public protocol_handler::ProtocolHandlerSettings { +class MockProtocolHandlerSettings + : public protocol_handler::ProtocolHandlerSettings { public: - MOCK_CONST_METHOD0(maximum_payload_size, - size_t()); - MOCK_CONST_METHOD0(message_frequency_count, - size_t()); - MOCK_CONST_METHOD0(message_frequency_time, - size_t()); - MOCK_CONST_METHOD0(malformed_message_filtering, - bool()); - MOCK_CONST_METHOD0(malformed_frequency_count, - size_t()); - MOCK_CONST_METHOD0(malformed_frequency_time, - size_t()); - MOCK_CONST_METHOD0(heart_beat_timeout, - uint32_t()); - MOCK_CONST_METHOD0(max_supported_protocol_version, - uint16_t()); - MOCK_CONST_METHOD0(enable_protocol_4, - bool()); - MOCK_CONST_METHOD0(multiframe_waiting_timeout, - uint32_t()); + MOCK_CONST_METHOD0(maximum_payload_size, size_t()); + MOCK_CONST_METHOD0(message_frequency_count, size_t()); + MOCK_CONST_METHOD0(message_frequency_time, size_t()); + MOCK_CONST_METHOD0(malformed_message_filtering, bool()); + MOCK_CONST_METHOD0(malformed_frequency_count, size_t()); + MOCK_CONST_METHOD0(malformed_frequency_time, size_t()); + MOCK_CONST_METHOD0(heart_beat_timeout, uint32_t()); + MOCK_CONST_METHOD0(max_supported_protocol_version, uint16_t()); + MOCK_CONST_METHOD0(enable_protocol_4, bool()); + MOCK_CONST_METHOD0(multiframe_waiting_timeout, uint32_t()); #ifdef ENABLE_SECURITY - MOCK_CONST_METHOD0(force_protected_service, - const std::vector<int>&()); - MOCK_CONST_METHOD0(force_unprotected_service, - const std::vector<int>&()); + MOCK_CONST_METHOD0(force_protected_service, const std::vector<int>&()); + MOCK_CONST_METHOD0(force_unprotected_service, const std::vector<int>&()); #endif }; diff --git a/src/components/include/test/security_manager/mock_security_manager.h b/src/components/include/test/security_manager/mock_security_manager.h index baea4ab803..e3d95cd94f 100644 --- a/src/components/include/test/security_manager/mock_security_manager.h +++ b/src/components/include/test/security_manager/mock_security_manager.h @@ -51,8 +51,9 @@ class MockSecurityManager : public ::security_manager::SecurityManager { MOCK_METHOD1(set_protocol_handler, void(::protocol_handler::ProtocolHandler*)); MOCK_METHOD1(set_crypto_manager, void(::security_manager::CryptoManager*)); - MOCK_METHOD4(SendInternalError, void(const uint32_t, const uint8_t&, - const std::string&, const uint32_t)); + MOCK_METHOD4( + SendInternalError, + void(const uint32_t, const uint8_t&, const std::string&, const uint32_t)); MOCK_METHOD1(CreateSSLContext, ::security_manager::SSLContext*(const uint32_t&)); MOCK_METHOD1(StartHandshake, void(uint32_t)); @@ -70,7 +71,8 @@ class MockSecurityManager : public ::security_manager::SecurityManager { * Matcher for RawMessages * Check binary data of RawMessages */ -MATCHER_P(RawMessageEqSize, exp_data_size, +MATCHER_P(RawMessageEqSize, + exp_data_size, std::string(negation ? "is not" : "is") + " RawMessages ") { const size_t arg_data_size = arg->data_size(); if (arg_data_size != exp_data_size) { @@ -80,7 +82,9 @@ MATCHER_P(RawMessageEqSize, exp_data_size, } return true; } -MATCHER_P2(RawMessageEq, exp_data, exp_data_size, +MATCHER_P2(RawMessageEq, + exp_data, + exp_data_size, std::string(negation ? "is not" : "is") + " RawMessages ") { const size_t arg_data_size = arg->data_size(); if (arg_data_size != exp_data_size) { @@ -101,7 +105,9 @@ MATCHER_P2(RawMessageEq, exp_data, exp_data_size, /* * Matcher for Handshake data */ -MATCHER_P2(HandshakeStepEq, exp_data, exp_data_size, +MATCHER_P2(HandshakeStepEq, + exp_data, + exp_data_size, std::string(negation ? "is not" : "is") + " Handshake ") { const uint8_t* arg_data = arg; for (uint32_t i = 0; i < exp_data_size; ++i) { @@ -117,7 +123,8 @@ MATCHER_P2(HandshakeStepEq, exp_data, exp_data_size, * Matcher for checking RawMessage with InternalError Query * Check error id */ -MATCHER_P(InternalErrorWithErrId, expectedErrorId, +MATCHER_P(InternalErrorWithErrId, + expectedErrorId, std::string(negation ? "is not" : "is") + " InternalError with selected error") { const size_t header_size = @@ -166,7 +173,8 @@ MATCHER_P(InternalErrorWithErrId, expectedErrorId, * Matcher for checking QueryHeader equal in GTests */ ::testing::AssertionResult QueryHeader_EQ( - const char* m_expr, const char* n_expr, + const char* m_expr, + const char* n_expr, const ::security_manager::SecurityQuery::QueryHeader& q1, const ::security_manager::SecurityQuery::QueryHeader& q2); diff --git a/src/components/include/test/security_manager/mock_ssl_context.h b/src/components/include/test/security_manager/mock_ssl_context.h index 4716ef8371..6b6a26a226 100644 --- a/src/components/include/test/security_manager/mock_ssl_context.h +++ b/src/components/include/test/security_manager/mock_ssl_context.h @@ -44,18 +44,24 @@ namespace security_manager_test { class MockSSLContext : public ::security_manager::SSLContext { public: - MOCK_METHOD2(StartHandshake, HandshakeResult(const uint8_t** const out_data, - size_t* out_data_size)); - MOCK_METHOD4(DoHandshakeStep, HandshakeResult(const uint8_t* const in_data, - size_t in_data_size, - const uint8_t** const out_data, - size_t* out_data_size)); + MOCK_METHOD2(StartHandshake, + HandshakeResult(const uint8_t** const out_data, + size_t* out_data_size)); + MOCK_METHOD4(DoHandshakeStep, + HandshakeResult(const uint8_t* const in_data, + size_t in_data_size, + const uint8_t** const out_data, + size_t* out_data_size)); MOCK_METHOD4(Encrypt, - bool(const uint8_t* const in_data, size_t in_data_size, - const uint8_t** const out_data, size_t* out_data_size)); + bool(const uint8_t* const in_data, + size_t in_data_size, + const uint8_t** const out_data, + size_t* out_data_size)); MOCK_METHOD4(Decrypt, - bool(const uint8_t* const in_data, size_t in_data_size, - const uint8_t** const out_data, size_t* out_data_size)); + bool(const uint8_t* const in_data, + size_t in_data_size, + const uint8_t** const out_data, + size_t* out_data_size)); MOCK_CONST_METHOD0(IsInitCompleted, bool()); MOCK_CONST_METHOD0(IsHandshakePending, bool()); MOCK_CONST_METHOD1(get_max_block_size, size_t(size_t mtu)); diff --git a/src/components/include/test/telemetry_monitor/mock_telemetry_observable.h b/src/components/include/test/telemetry_monitor/mock_telemetry_observable.h index 3b3a1b43f7..9ba4528ecf 100644 --- a/src/components/include/test/telemetry_monitor/mock_telemetry_observable.h +++ b/src/components/include/test/telemetry_monitor/mock_telemetry_observable.h @@ -41,11 +41,11 @@ namespace test { namespace components { namespace telemetry_monitor_test { -class MockTelemetryObservable : - public telemetry_monitor::TelemetryObservable< - application_manager::AMTelemetryObserver> { +class MockTelemetryObservable : public telemetry_monitor::TelemetryObservable< + application_manager::AMTelemetryObserver> { public: - MOCK_METHOD1(SetTelemetryObserver, void(application_manager::AMTelemetryObserver* observer)); + MOCK_METHOD1(SetTelemetryObserver, + void(application_manager::AMTelemetryObserver* observer)); }; } // namespace telemetry_monitor_test diff --git a/src/components/include/test/transport_manager/mock_transport_manager.h b/src/components/include/test/transport_manager/mock_transport_manager.h index bc4eff01e2..618e85a4fa 100644 --- a/src/components/include/test/transport_manager/mock_transport_manager.h +++ b/src/components/include/test/transport_manager/mock_transport_manager.h @@ -52,21 +52,19 @@ using ::transport_manager::TransportManagerListener; /* * MOCK implementation of ::transport_manager::TransportManager interface */ -class MockTransportManager - : public ::transport_manager::TransportManager, - public ::telemetry_monitor::TelemetryObservable< - transport_manager::TMTelemetryObserver>{ - +class MockTransportManager : public ::transport_manager::TransportManager, + public ::telemetry_monitor::TelemetryObservable< + transport_manager::TMTelemetryObserver> { public: - MOCK_METHOD1(Init, int(resumption::LastState &last_state)); + MOCK_METHOD1(Init, int(resumption::LastState& last_state)); MOCK_METHOD0(Reinit, int()); MOCK_METHOD0(SearchDevices, int()); MOCK_METHOD1(ConnectDevice, int(const DeviceHandle)); MOCK_METHOD1(DisconnectDevice, int(const DeviceHandle)); MOCK_METHOD1(Disconnect, int(const ConnectionUID)); MOCK_METHOD1(DisconnectForce, int(const ConnectionUID)); - MOCK_METHOD1(SendMessageToDevice, - int(const ::protocol_handler::RawMessagePtr)); + MOCK_METHOD1(SendMessageToDevice, + int(const ::protocol_handler::RawMessagePtr)); MOCK_METHOD1(ReceiveEventFromDevice, int(const TransportAdapterEvent&)); MOCK_METHOD1(AddTransportAdapter, int(TransportAdapter* adapter)); MOCK_METHOD1(AddEventListener, int(TransportManagerListener* listener)); @@ -75,7 +73,6 @@ class MockTransportManager MOCK_CONST_METHOD1(Visibility, int(const bool&)); MOCK_METHOD1(SetTelemetryObserver, void(transport_manager::TMTelemetryObserver* observer)); - }; } // namespace transport_manager_test diff --git a/src/components/include/transport_manager/error.h b/src/components/include/transport_manager/error.h index 7e2349eac2..022ddf0e38 100644 --- a/src/components/include/transport_manager/error.h +++ b/src/components/include/transport_manager/error.h @@ -84,32 +84,27 @@ typedef utils::SharedPtr<BaseError> BaseErrorPtr; /** * @brief Error that originates during device search. */ -class SearchDeviceError : public BaseError { -}; +class SearchDeviceError : public BaseError {}; /** * @brief Error that originates during connection. */ -class ConnectError : public BaseError { -}; +class ConnectError : public BaseError {}; /** * @brief Error that originates during disconnection. */ -class DisconnectError : public BaseError { -}; +class DisconnectError : public BaseError {}; /** * @brief Error that originates during device disconnection. */ -class DisconnectDeviceError : public BaseError { -}; +class DisconnectDeviceError : public BaseError {}; /** * @brief Error that originates during data receive.. */ -class DataReceiveError : public BaseError { -}; +class DataReceiveError : public BaseError {}; /** * @brief Error that originates during data send. @@ -132,15 +127,12 @@ class DataSendError : public BaseError { /** * @brief Error that originates during data sending timeout. */ -class DataSendTimeoutError : public DataSendError { -}; - +class DataSendTimeoutError : public DataSendError {}; /** * @brief Error that originates during communication. */ -class CommunicationError : public BaseError { -}; +class CommunicationError : public BaseError {}; } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_ERROR_H_ diff --git a/src/components/include/transport_manager/info.h b/src/components/include/transport_manager/info.h index 66e9df97a3..fb06b39045 100644 --- a/src/components/include/transport_manager/info.h +++ b/src/components/include/transport_manager/info.h @@ -65,9 +65,7 @@ class Info { * * @param name Info class object name. */ - explicit Info(std::string name) - : name_(name) { - } + explicit Info(std::string name) : name_(name) {} /** * @brief Return string with name. @@ -110,13 +108,14 @@ class DeviceInfo : public Info { * @param mac_address MAC address of device. * @param name Name of device. */ - DeviceInfo(DeviceHandle device_handle, std::string mac_address, - std::string name, const ConnectionType& connection_type) - : Info(name), - mac_address_(mac_address), - device_handle_(device_handle), - connection_type_(connection_type) { - } + DeviceInfo(DeviceHandle device_handle, + std::string mac_address, + std::string name, + const ConnectionType& connection_type) + : Info(name) + , mac_address_(mac_address) + , device_handle_(device_handle) + , connection_type_(connection_type) {} /** * @brief Return mac_address. @@ -143,10 +142,10 @@ class DeviceInfo : public Info { /** * @brief Overloaded operator "==". */ - friend bool operator ==(const DeviceInfo& first, const DeviceInfo& second); + friend bool operator==(const DeviceInfo& first, const DeviceInfo& second); // Needed for std::set container - bool operator <(const DeviceInfo& than) const { + bool operator<(const DeviceInfo& than) const { return device_handle_ < than.device_handle_; } }; @@ -154,10 +153,10 @@ class DeviceInfo : public Info { /** * @brief Assign fields of one DeviceInfo class to another. */ -inline bool operator ==(const DeviceInfo& first, const DeviceInfo& second) { - return first.name_ == second.name_ - && first.mac_address_ == second.mac_address_ - && first.device_handle_ == second.device_handle_; +inline bool operator==(const DeviceInfo& first, const DeviceInfo& second) { + return first.name_ == second.name_ && + first.mac_address_ == second.mac_address_ && + first.device_handle_ == second.device_handle_; } } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_INFO_H_ diff --git a/src/components/include/transport_manager/transport_adapter/device.h b/src/components/include/transport_manager/transport_adapter/device.h index e7bca5a46b..a1dd7b9bcf 100644 --- a/src/components/include/transport_manager/transport_adapter/device.h +++ b/src/components/include/transport_manager/transport_adapter/device.h @@ -54,9 +54,9 @@ class Device { * @param unique_device_id device unique identifier. **/ Device(const std::string& name, const DeviceUID& unique_device_id) - : name_(name), - unique_device_id_(unique_device_id), - keep_on_disconnect_(false) {} + : name_(name) + , unique_device_id_(unique_device_id) + , keep_on_disconnect_(false) {} /** * @brief Destructor. **/ @@ -76,7 +76,7 @@ class Device { virtual ApplicationList GetApplicationList() const = 0; - virtual void Stop() { } + virtual void Stop() {} inline const DeviceUID& unique_device_id() const { return unique_device_id_; @@ -116,12 +116,13 @@ class Device { DeviceUID unique_device_id_; /** - * @brief If true, device will remain in list even if all its connections finished. + * @brief If true, device will remain in list even if all its connections + *finished. **/ bool keep_on_disconnect_; }; typedef utils::SharedPtr<Device> DeviceSptr; -typedef std::vector<DeviceSptr> DeviceVector; +typedef std::vector<DeviceSptr> DeviceVector; } // namespace transport_adapter } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_DEVICE_H_ diff --git a/src/components/include/transport_manager/transport_adapter/transport_adapter.h b/src/components/include/transport_manager/transport_adapter/transport_adapter.h index a4ba20e567..07b68849c0 100644 --- a/src/components/include/transport_manager/transport_adapter/transport_adapter.h +++ b/src/components/include/transport_manager/transport_adapter/transport_adapter.h @@ -57,17 +57,9 @@ namespace transport_adapter { class TransportAdapterListener; // TODO(EZamakhov): cahnge to DeviceUID -//typedef std::string DeviceType; - -enum DeviceType { - AOA, - PASA_AOA, - BLUETOOTH, - PASA_BLUETOOTH, - MME, - TCP, - UNKNOWN -}; +// typedef std::string DeviceType; + +enum DeviceType { AOA, PASA_AOA, BLUETOOTH, PASA_BLUETOOTH, MME, TCP, UNKNOWN }; typedef std::map<DeviceType, std::string> DeviceTypes; @@ -87,14 +79,7 @@ class TransportAdapter { /** * @enum Available types of errors. */ - enum Error { - OK, - FAIL, - NOT_SUPPORTED, - ALREADY_EXISTS, - BAD_STATE, - BAD_PARAM - }; + enum Error { OK, FAIL, NOT_SUPPORTED, ALREADY_EXISTS, BAD_STATE, BAD_PARAM }; public: /** @@ -260,8 +245,8 @@ class TransportAdapter { * * @return Container(vector) that holds application unique identifiers. */ - virtual ApplicationList GetApplicationList(const DeviceUID& device_handle) - const = 0; + virtual ApplicationList GetApplicationList( + const DeviceUID& device_handle) const = 0; /** * @brief Return name of device. diff --git a/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h b/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h index cb29edbbfe..7879a136b2 100644 --- a/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h +++ b/src/components/include/transport_manager/transport_adapter/transport_adapter_event.h @@ -56,14 +56,14 @@ class TransportAdapterEvent { transport_adapter::TransportAdapter* adapter, const DeviceUID& device_handle, const ApplicationHandle& application_id, - ::protocol_handler::RawMessagePtr data, BaseErrorPtr error) - : event_type(type), - application_id(application_id), - device_uid(device_handle), - transport_adapter(adapter), - event_data(data), - event_error(error) { - } + ::protocol_handler::RawMessagePtr data, + BaseErrorPtr error) + : event_type(type) + , application_id(application_id) + , device_uid(device_handle) + , transport_adapter(adapter) + , event_data(data) + , event_error(error) {} /** * @brief Value that describe event type. */ diff --git a/src/components/include/transport_manager/transport_manager.h b/src/components/include/transport_manager/transport_manager.h index 20fddc4402..718f9e12aa 100644 --- a/src/components/include/transport_manager/transport_manager.h +++ b/src/components/include/transport_manager/transport_manager.h @@ -60,7 +60,7 @@ class TransportManager { * @brief Initialize transport manager. * @return Error code. */ - virtual int Init(resumption::LastState &last_state) = 0; + virtual int Init(resumption::LastState& last_state) = 0; /** * @brief Reinitializes transport manager @@ -117,7 +117,8 @@ class TransportManager { * * @return Code error. **/ - virtual int SendMessageToDevice(const protocol_handler::RawMessagePtr message) = 0; + virtual int SendMessageToDevice( + const protocol_handler::RawMessagePtr message) = 0; /** * @brief Post event in the event queue. @@ -136,7 +137,7 @@ class TransportManager { * @return Error code. **/ virtual int AddTransportAdapter( - transport_adapter::TransportAdapter* transport_adapter) = 0; + transport_adapter::TransportAdapter* transport_adapter) = 0; /** * @brief Post listener to the container of transport manager listeners. diff --git a/src/components/include/transport_manager/transport_manager_listener.h b/src/components/include/transport_manager/transport_manager_listener.h index d020e508fb..e9f49e3152 100644 --- a/src/components/include/transport_manager/transport_manager_listener.h +++ b/src/components/include/transport_manager/transport_manager_listener.h @@ -46,8 +46,7 @@ class TransportManagerListener { /** * @brief Destructor. */ - virtual ~TransportManagerListener() { - } + virtual ~TransportManagerListener() {} /** * @brief Reaction to the event, when the list of devices is updated. @@ -78,7 +77,8 @@ class TransportManagerListener { /** * @brief Reaction to the event, when scanning of devices is failed. * - * @param error Error information about possible reason of scanning of devices failure. + * @param error Error information about possible reason of scanning of devices + *failure. */ virtual void OnScanDevicesFailed(const SearchDeviceError& error) = 0; @@ -108,7 +108,8 @@ class TransportManagerListener { virtual void OnConnectionClosed(const ConnectionUID connection_id) = 0; /** - * @brief Called when connection is closed unexpectedly, i.e. disconnect was not requested + * @brief Called when connection is closed unexpectedly, i.e. disconnect was + *not requested * * @param connection_id Connection ID. * @param error Error information. @@ -134,9 +135,11 @@ class TransportManagerListener { const DisconnectDeviceError& error) = 0; /** - * \brief Inform about failure during DisconnectDevice procedure of transport manager. + * \brief Inform about failure during DisconnectDevice procedure of transport + * manager. * \param device Handle of device. - * \param error Error information about possible reason of disconnecting failure. + * \param error Error information about possible reason of disconnecting + * failure. */ virtual void OnDisconnectFailed(const DeviceHandle& device, const DisconnectDeviceError& error) = 0; @@ -145,10 +148,12 @@ class TransportManagerListener { * * @param message Received message **/ - virtual void OnTMMessageReceived(const ::protocol_handler::RawMessagePtr message) = 0; + virtual void OnTMMessageReceived( + const ::protocol_handler::RawMessagePtr message) = 0; /** - * @brief Reaction to the event, when receiving of massage for transport manager is failed. + * @brief Reaction to the event, when receiving of massage for transport + *manager is failed. * * @param connection_id connection unique identifier. * @param error Error information about possible reason of failure. @@ -158,16 +163,19 @@ class TransportManagerListener { /** * @brief Reaction to the event, when transport manager sent a massage. */ - virtual void OnTMMessageSend(const ::protocol_handler::RawMessagePtr message) = 0; + virtual void OnTMMessageSend( + const ::protocol_handler::RawMessagePtr message) = 0; /** - * @brief Reaction to the event, when sending of massage by transport manager is failed. + * @brief Reaction to the event, when sending of massage by transport manager + *is failed. * * @param error Error information about possible reason of failure. * @param message Smart pointer to the raw massage. */ - virtual void OnTMMessageSendFailed(const DataSendError& error, - const ::protocol_handler::RawMessagePtr message) = 0; + virtual void OnTMMessageSendFailed( + const DataSendError& error, + const ::protocol_handler::RawMessagePtr message) = 0; }; } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_H_ diff --git a/src/components/include/transport_manager/transport_manager_listener_empty.h b/src/components/include/transport_manager/transport_manager_listener_empty.h index 5150e54eba..c5eb0be37c 100644 --- a/src/components/include/transport_manager/transport_manager_listener_empty.h +++ b/src/components/include/transport_manager/transport_manager_listener_empty.h @@ -55,37 +55,31 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * * @param Container that holds information about devices. */ - void OnDeviceListUpdated(const std::vector<DeviceInfo>&) OVERRIDE { - } + void OnDeviceListUpdated(const std::vector<DeviceInfo>&) OVERRIDE {} - void OnFindNewApplicationsRequest() OVERRIDE { - } + void OnFindNewApplicationsRequest() OVERRIDE {} /** * @brief Reaction to the event, when the device is found. * * @param device_info Variable that hold information about device. */ - void OnDeviceFound(const DeviceInfo& device_info) OVERRIDE { - } - void OnDeviceAdded(const DeviceInfo& device_info) OVERRIDE { - } - void OnDeviceRemoved(const DeviceInfo& device_info) OVERRIDE { - } + void OnDeviceFound(const DeviceInfo& device_info) OVERRIDE {} + void OnDeviceAdded(const DeviceInfo& device_info) OVERRIDE {} + void OnDeviceRemoved(const DeviceInfo& device_info) OVERRIDE {} /** * @brief Reaction to the event, when scanning of devices is finished. */ - void OnScanDevicesFinished() OVERRIDE { - } + void OnScanDevicesFinished() OVERRIDE {} /** * @brief Reaction to the event, when scanning of devices is failed. * - * @param error Error information about possible reason of scanning of devices failure. + * @param error Error information about possible reason of scanning of devices + *failure. */ - void OnScanDevicesFailed(const SearchDeviceError& error) OVERRIDE { - } + void OnScanDevicesFailed(const SearchDeviceError& error) OVERRIDE {} /** * @brief Reaction to the event, when connection is established. @@ -94,8 +88,7 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param connection_id connection unique identifier. */ void OnConnectionEstablished(const DeviceInfo& device_info, - const ConnectionUID connection_id) OVERRIDE { - } + const ConnectionUID connection_id) OVERRIDE {} /** * @brief Reaction to the event, when connection to the device is failed. @@ -104,20 +97,17 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param error Error information about possible reason of connect failure. */ void OnConnectionFailed(const DeviceInfo& device_info, - const ConnectError& error) OVERRIDE { - } + const ConnectError& error) OVERRIDE {} /** * @brief Reaction to the event, when connection is closed. * * @param connection_id Connection unique identifier. */ - void OnConnectionClosed(ConnectionUID connection_id) OVERRIDE { - } + void OnConnectionClosed(ConnectionUID connection_id) OVERRIDE {} void OnUnexpectedDisconnect(ConnectionUID connection_id, - const CommunicationError& error) OVERRIDE { - } + const CommunicationError& error) OVERRIDE {} /** * @brief Reaction to the event, when connection close is failed. @@ -126,8 +116,7 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param error Error information about possible reason of failure. */ void OnConnectionClosedFailure(ConnectionUID connection_id, - const DisconnectError& error) OVERRIDE { - } + const DisconnectError& error) OVERRIDE {} /** * @brief Reaction to the event, when connection with the device is lost. @@ -136,8 +125,7 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param error Error information about possible reason of lost connection. */ void OnDeviceConnectionLost(const DeviceHandle& device, - const DisconnectDeviceError& error) OVERRIDE { - } + const DisconnectDeviceError& error) OVERRIDE {} /** * @brief Reaction to the event, when Disconnect is failed. @@ -146,8 +134,7 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param error Error information about possible reason of Disconnect failure. */ void OnDisconnectFailed(const DeviceHandle& device, - const DisconnectDeviceError& error) OVERRIDE { - } + const DisconnectDeviceError& error) OVERRIDE {} /** * @brief Reaction to the event, when transport manager received a massage. @@ -155,33 +142,34 @@ class TransportManagerListenerEmpty : public TransportManagerListener { * @param message Smart pointer to the raw massage. * @param connection_id Connection unique identifier. */ - void OnTMMessageReceived(const ::protocol_handler::RawMessagePtr message) OVERRIDE { - } + void OnTMMessageReceived( + const ::protocol_handler::RawMessagePtr message) OVERRIDE {} /** - * @brief Reaction to the event, when receiving of massage for transport manager is failed. + * @brief Reaction to the event, when receiving of massage for transport + *manager is failed. * * @param connection_id connection unique identifier. * @param error Error information about possible reason of failure. */ - void OnTMMessageReceiveFailed(const DataReceiveError& error) OVERRIDE { - } + void OnTMMessageReceiveFailed(const DataReceiveError& error) OVERRIDE {} /** * @brief Reaction to the event, when transport manager sent a massage. */ - void OnTMMessageSend(const ::protocol_handler::RawMessagePtr message) OVERRIDE { - } + void OnTMMessageSend( + const ::protocol_handler::RawMessagePtr message) OVERRIDE {} /** - * @brief Reaction to the event, when sending of massage by transport manager is failed. + * @brief Reaction to the event, when sending of massage by transport manager + *is failed. * * @param error Error information about possible reason of failure. * @param message Smart pointer to the raw massage. */ - void OnTMMessageSendFailed(const DataSendError& error, - const ::protocol_handler::RawMessagePtr message) OVERRIDE { - } + void OnTMMessageSendFailed( + const DataSendError& error, + const ::protocol_handler::RawMessagePtr message) OVERRIDE {} }; } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_LISTENER_EMPTY_H_ diff --git a/src/components/include/utils/auto_trace.h b/src/components/include/utils/auto_trace.h index 87b6554808..36ff3be281 100644 --- a/src/components/include/utils/auto_trace.h +++ b/src/components/include/utils/auto_trace.h @@ -40,10 +40,8 @@ namespace logger { class AutoTrace { public: - AutoTrace( - log4cxx::LoggerPtr logger, - const log4cxx::spi::LocationInfo& location - ); + AutoTrace(log4cxx::LoggerPtr logger, + const log4cxx::spi::LocationInfo& location); ~AutoTrace(); private: diff --git a/src/components/include/utils/conditional_variable.h b/src/components/include/utils/conditional_variable.h index 2e99774e2a..f54a22e993 100644 --- a/src/components/include/utils/conditional_variable.h +++ b/src/components/include/utils/conditional_variable.h @@ -84,6 +84,7 @@ class ConditionalVariable { bool Wait(AutoLock& auto_lock); bool Wait(Lock& lock); WaitStatus WaitFor(AutoLock& auto_lock, uint32_t milliseconds); + private: impl::PlatformConditionalVariable cond_var_; diff --git a/src/components/include/utils/custom_string.h b/src/components/include/utils/custom_string.h index 182c983a54..7b21e7a64d 100644 --- a/src/components/include/utils/custom_string.h +++ b/src/components/include/utils/custom_string.h @@ -48,10 +48,10 @@ namespace custom_string { * bit representation of one character: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ enum UTFFormat { - kByteOfUTF8 = 0x80, //10xxxxxx - kHigestByteOfUTF8Byte2 = 0xc0, //110xxxxx - kHigestByteOfUTF8Byte3 = 0xe0, //1110xxxx - kHigestByteOfUTF8Byte4 = 0xf0 //11110xxx + kByteOfUTF8 = 0x80, // 10xxxxxx + kHigestByteOfUTF8Byte2 = 0xc0, // 110xxxxx + kHigestByteOfUTF8Byte3 = 0xe0, // 1110xxxx + kHigestByteOfUTF8Byte4 = 0xf0 // 11110xxx }; class CustomString { @@ -202,7 +202,6 @@ class CustomString { std::wstring ToWStringLowerCase() const; private: - /** * @brief Initiates members of CustomString */ diff --git a/src/components/include/utils/data_accessor.h b/src/components/include/utils/data_accessor.h index 344d6e34a8..9be28a638b 100644 --- a/src/components/include/utils/data_accessor.h +++ b/src/components/include/utils/data_accessor.h @@ -36,26 +36,24 @@ #include "utils/shared_ptr.h" // This class is for thread-safe access to data -template<class T> +template <class T> class DataAccessor { public: DataAccessor(const T& data, const sync_primitives::Lock& lock) - : data_(data), - lock_(const_cast<sync_primitives::Lock&>(lock)), - counter_( new uint32_t(0)) { + : data_(data) + , lock_(const_cast<sync_primitives::Lock&>(lock)) + , counter_(new uint32_t(0)) { lock_.Acquire(); } DataAccessor(const DataAccessor<T>& other) - : data_(other.data_), - lock_(other.lock_), - counter_(other.counter_) { + : data_(other.data_), lock_(other.lock_), counter_(other.counter_) { ++(*counter_); } ~DataAccessor() { if (0 == *counter_) { - lock_.Release(); + lock_.Release(); } else { --(*counter_); } @@ -63,9 +61,9 @@ class DataAccessor { const T& GetData() const { return data_; } - private: - void *operator new(size_t size); + private: + void* operator new(size_t size); const T& data_; sync_primitives::Lock& lock_; utils::SharedPtr<uint32_t> counter_; diff --git a/src/components/include/utils/date_time.h b/src/components/include/utils/date_time.h index 4f44442783..158ae8dcdd 100644 --- a/src/components/include/utils/date_time.h +++ b/src/components/include/utils/date_time.h @@ -40,11 +40,7 @@ typedef struct timeval TimevalStruct; namespace date_time { -enum TimeCompare { - LESS, - EQUAL, - GREATER -}; +enum TimeCompare { LESS, EQUAL, GREATER }; class DateTime { public: @@ -79,8 +75,7 @@ class DateTime { * @param milliseconds contains value which need to * add to time struct **/ - static void AddMilliseconds(TimevalStruct& time, - uint32_t milliseconds); + static void AddMilliseconds(TimevalStruct& time, uint32_t milliseconds); static TimevalStruct Sub(const TimevalStruct& time1, const TimevalStruct& time2); @@ -91,12 +86,14 @@ class DateTime { static bool Greater(const TimevalStruct& time1, const TimevalStruct& time2); static bool Less(const TimevalStruct& time1, const TimevalStruct& time2); static bool Equal(const TimevalStruct& time1, const TimevalStruct& time2); + private: - static TimevalStruct ConvertionUsecs(const TimevalStruct &time); + static TimevalStruct ConvertionUsecs(const TimevalStruct& time); }; } // namespace date_time bool operator<(const TimevalStruct& time1, const TimevalStruct& time2); bool operator==(const TimevalStruct& time1, const TimevalStruct& time2); -const TimevalStruct operator-(const TimevalStruct& time1, const TimevalStruct& time2); +const TimevalStruct operator-(const TimevalStruct& time1, + const TimevalStruct& time2); #endif // SRC_COMPONENTS_INCLUDE_UTILS_DATE_TIME_H_ diff --git a/src/components/include/utils/lock.h b/src/components/include/utils/lock.h index be86274db3..1e8ad36f54 100644 --- a/src/components/include/utils/lock.h +++ b/src/components/include/utils/lock.h @@ -49,13 +49,11 @@ namespace impl { #if defined(OS_POSIX) typedef pthread_mutex_t PlatformMutex; #endif -} // namespace impl - +} // namespace impl class SpinMutex { public: - SpinMutex() - : state_(0) { } + SpinMutex() : state_(0) {} void Lock() { // Comment below add exception for lint error // Reason: FlexeLint doesn't know about compiler's built-in instructions @@ -63,7 +61,7 @@ class SpinMutex { if (atomic_post_set(&state_) == 0) { return; } - for(;;) { + for (;;) { sched_yield(); /*lint -e1055*/ if (state_ == 0 && atomic_post_set(&state_) == 0) { @@ -74,8 +72,8 @@ class SpinMutex { void Unlock() { state_ = 0; } - ~SpinMutex() { - } + ~SpinMutex() {} + private: volatile unsigned int state_; }; @@ -117,7 +115,8 @@ class Lock { #ifndef NDEBUG /** - * @brief Basic debugging aid, a flag that signals wether this lock is currently taken + * @brief Basic debugging aid, a flag that signals wether this lock is + * currently taken * Allows detection of abandoned and recursively captured mutexes */ uint32_t lock_taken_; @@ -143,11 +142,17 @@ class Lock { // This class is used to automatically acquire and release the a lock class AutoLock { public: - explicit AutoLock(Lock& lock) - : lock_(lock) { lock_.Acquire(); } - ~AutoLock() { lock_.Release(); } + explicit AutoLock(Lock& lock) : lock_(lock) { + lock_.Acquire(); + } + ~AutoLock() { + lock_.Release(); + } + private: - Lock& GetLock(){ return lock_; } + Lock& GetLock() { + return lock_; + } Lock& lock_; private: @@ -159,9 +164,13 @@ class AutoLock { // This class is used to temporarly unlock autolocked lock class AutoUnlock { public: - explicit AutoUnlock(AutoLock& lock) - : lock_(lock.GetLock()) { lock_.Release(); } - ~AutoUnlock() { lock_.Acquire(); } + explicit AutoUnlock(AutoLock& lock) : lock_(lock.GetLock()) { + lock_.Release(); + } + ~AutoUnlock() { + lock_.Acquire(); + } + private: Lock& lock_; diff --git a/src/components/include/utils/logger.h b/src/components/include/utils/logger.h index 67bb6ad772..11a2f1f0d9 100644 --- a/src/components/include/utils/logger.h +++ b/src/components/include/utils/logger.h @@ -34,123 +34,141 @@ #define SRC_COMPONENTS_INCLUDE_UTILS_LOGGER_H_ #ifdef ENABLE_LOG - #include <errno.h> - #include <string.h> - #include <sstream> - #include <log4cxx/propertyconfigurator.h> - #include <log4cxx/spi/loggingevent.h> - #include "utils/push_log.h" - #include "utils/logger_status.h" - #include "utils/auto_trace.h" +#include <errno.h> +#include <string.h> +#include <sstream> +#include <log4cxx/propertyconfigurator.h> +#include <log4cxx/spi/loggingevent.h> +#include "utils/push_log.h" +#include "utils/logger_status.h" +#include "utils/auto_trace.h" #endif // ENABLE_LOG #ifdef ENABLE_LOG - #define CREATE_LOGGERPTR_GLOBAL(logger_var, logger_name) \ - namespace { \ - CREATE_LOGGERPTR_LOCAL(logger_var, logger_name); \ - } - - #define CREATE_LOGGERPTR_LOCAL(logger_var, logger_name) \ - log4cxx::LoggerPtr logger_var = log4cxx::LoggerPtr(log4cxx::Logger::getLogger(logger_name)); - - #define INIT_LOGGER(file_name, logs_enabled) \ - log4cxx::PropertyConfigurator::configure(file_name); \ - logger::set_logs_enabled(logs_enabled); - - // Logger deinitilization function and macro, need to stop log4cxx writing - // without this deinitilization log4cxx threads continue using some instances destroyed by exit() - void deinit_logger(); - #define DEINIT_LOGGER() deinit_logger() - - // special macros to dump logs from queue - // it's need, for example, when crash happend - #define FLUSH_LOGGER() logger::flush_logger() - - #define LOG4CXX_IS_TRACE_ENABLED(logger) logger->isTraceEnabled() - - log4cxx_time_t time_now(); - - #define LOG_WITH_LEVEL(loggerPtr, logLevel, logEvent) \ - do { \ - if (logger::logs_enabled()) { \ - if (logger::logger_status != logger::DeletingLoggerThread) { \ - if (loggerPtr->isEnabledFor(logLevel)) { \ - std::stringstream accumulator; \ - accumulator << logEvent; \ - logger::push_log(loggerPtr, logLevel, accumulator.str(), time_now(), \ - LOG4CXX_LOCATION, ::log4cxx::spi::LoggingEvent::getCurrentThreadName()); \ - } \ - } \ - } \ - } while (false) - - #undef LOG4CXX_TRACE - #define LOG4CXX_TRACE(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getTrace(), logEvent) - - #define LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, auto_trace) \ - logger::AutoTrace auto_trace(loggerPtr, LOG4CXX_LOCATION) - #define LOG4CXX_AUTO_TRACE(loggerPtr) LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, SDL_local_auto_trace_object) - - #undef LOG4CXX_DEBUG - #define LOG4CXX_DEBUG(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getDebug(), logEvent) - - #undef LOG4CXX_INFO - #define LOG4CXX_INFO(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getInfo(), logEvent) - - #undef LOG4CXX_WARN - #define LOG4CXX_WARN(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getWarn(), logEvent) - - #undef LOG4CXX_ERROR - #define LOG4CXX_ERROR(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getError(), logEvent) - - #undef LOG4CXX_FATAL - #define LOG4CXX_FATAL(loggerPtr, logEvent) LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getFatal(), logEvent) - - #define LOG4CXX_ERROR_WITH_ERRNO(loggerPtr, message) \ - LOG4CXX_ERROR(loggerPtr, message << ", error code " << errno << " (" << strerror(errno) << ")") - - #define LOG4CXX_WARN_WITH_ERRNO(loggerPtr, message) \ - LOG4CXX_WARN(loggerPtr, message << ", error code " << errno << " (" << strerror(errno) << ")") +#define CREATE_LOGGERPTR_GLOBAL(logger_var, logger_name) \ + namespace { \ + CREATE_LOGGERPTR_LOCAL(logger_var, logger_name); \ + } + +#define CREATE_LOGGERPTR_LOCAL(logger_var, logger_name) \ + log4cxx::LoggerPtr logger_var = \ + log4cxx::LoggerPtr(log4cxx::Logger::getLogger(logger_name)); + +#define INIT_LOGGER(file_name, logs_enabled) \ + log4cxx::PropertyConfigurator::configure(file_name); \ + logger::set_logs_enabled(logs_enabled); + +// Logger deinitilization function and macro, need to stop log4cxx writing +// without this deinitilization log4cxx threads continue using some instances +// destroyed by exit() +void deinit_logger(); +#define DEINIT_LOGGER() deinit_logger() + +// special macros to dump logs from queue +// it's need, for example, when crash happend +#define FLUSH_LOGGER() logger::flush_logger() + +#define LOG4CXX_IS_TRACE_ENABLED(logger) logger->isTraceEnabled() + +log4cxx_time_t time_now(); + +#define LOG_WITH_LEVEL(loggerPtr, logLevel, logEvent) \ + do { \ + if (logger::logs_enabled()) { \ + if (logger::logger_status != logger::DeletingLoggerThread) { \ + if (loggerPtr->isEnabledFor(logLevel)) { \ + std::stringstream accumulator; \ + accumulator << logEvent; \ + logger::push_log( \ + loggerPtr, \ + logLevel, \ + accumulator.str(), \ + time_now(), \ + LOG4CXX_LOCATION, \ + ::log4cxx::spi::LoggingEvent::getCurrentThreadName()); \ + } \ + } \ + } \ + } while (false) + +#undef LOG4CXX_TRACE +#define LOG4CXX_TRACE(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getTrace(), logEvent) + +#define LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, auto_trace) \ + logger::AutoTrace auto_trace(loggerPtr, LOG4CXX_LOCATION) +#define LOG4CXX_AUTO_TRACE(loggerPtr) \ + LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, SDL_local_auto_trace_object) + +#undef LOG4CXX_DEBUG +#define LOG4CXX_DEBUG(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getDebug(), logEvent) + +#undef LOG4CXX_INFO +#define LOG4CXX_INFO(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getInfo(), logEvent) + +#undef LOG4CXX_WARN +#define LOG4CXX_WARN(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getWarn(), logEvent) + +#undef LOG4CXX_ERROR +#define LOG4CXX_ERROR(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getError(), logEvent) + +#undef LOG4CXX_FATAL +#define LOG4CXX_FATAL(loggerPtr, logEvent) \ + LOG_WITH_LEVEL(loggerPtr, ::log4cxx::Level::getFatal(), logEvent) + +#define LOG4CXX_ERROR_WITH_ERRNO(loggerPtr, message) \ + LOG4CXX_ERROR(loggerPtr, \ + message << ", error code " << errno << " (" << strerror(errno) \ + << ")") + +#define LOG4CXX_WARN_WITH_ERRNO(loggerPtr, message) \ + LOG4CXX_WARN(loggerPtr, \ + message << ", error code " << errno << " (" << strerror(errno) \ + << ")") #else // ENABLE_LOG is OFF - #define CREATE_LOGGERPTR_GLOBAL(logger_var, logger_name) +#define CREATE_LOGGERPTR_GLOBAL(logger_var, logger_name) - #define CREATE_LOGGERPTR_LOCAL(logger_var, logger_name) +#define CREATE_LOGGERPTR_LOCAL(logger_var, logger_name) - #define INIT_LOGGER(file_name) +#define INIT_LOGGER(file_name) - #define DEINIT_LOGGER(file_name) +#define DEINIT_LOGGER(file_name) - #define LOG4CXX_IS_TRACE_ENABLED(logger) false +#define LOG4CXX_IS_TRACE_ENABLED(logger) false - #undef LOG4CXX_TRACE - #define LOG4CXX_TRACE(x, y) +#undef LOG4CXX_TRACE +#define LOG4CXX_TRACE(x, y) - #define LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, auto_trace) - #define LOG4CXX_AUTO_TRACE(loggerPtr) +#define LOG4CXX_AUTO_TRACE_WITH_NAME_SPECIFIED(loggerPtr, auto_trace) +#define LOG4CXX_AUTO_TRACE(loggerPtr) - #undef LOG4CXX_DEBUG - #define LOG4CXX_DEBUG(x, y) +#undef LOG4CXX_DEBUG +#define LOG4CXX_DEBUG(x, y) - #undef LOG4CXX_INFO - #define LOG4CXX_INFO(x, y) +#undef LOG4CXX_INFO +#define LOG4CXX_INFO(x, y) - #undef LOG4CXX_WARN - #define LOG4CXX_WARN(x, y) +#undef LOG4CXX_WARN +#define LOG4CXX_WARN(x, y) - #undef LOG4CXX_ERROR - #define LOG4CXX_ERROR(x, y) +#undef LOG4CXX_ERROR +#define LOG4CXX_ERROR(x, y) - #undef LOG4CXX_ERROR_WITH_ERRNO - #define LOG4CXX_ERROR_WITH_ERRNO(x, y) +#undef LOG4CXX_ERROR_WITH_ERRNO +#define LOG4CXX_ERROR_WITH_ERRNO(x, y) - #undef LOG4CXX_WARN_WITH_ERRNO - #define LOG4CXX_WARN_WITH_ERRNO(x, y) +#undef LOG4CXX_WARN_WITH_ERRNO +#define LOG4CXX_WARN_WITH_ERRNO(x, y) - #undef LOG4CXX_FATAL - #define LOG4CXX_FATAL(x, y) +#undef LOG4CXX_FATAL +#define LOG4CXX_FATAL(x, y) #endif // ENABLE_LOG #endif // SRC_COMPONENTS_INCLUDE_UTILS_LOGGER_H_ diff --git a/src/components/include/utils/macro.h b/src/components/include/utils/macro.h index 19575354ca..0e029e4b06 100644 --- a/src/components/include/utils/macro.h +++ b/src/components/include/utils/macro.h @@ -40,7 +40,7 @@ #include "logger.h" // A macro to set some action for variable to avoid "unused variable" warning -#define UNUSED(x) (void)x; +#define UNUSED(x) (void) x; // A macro to disallow the copy constructor and operator= functions // This should be used in the private: declarations for a class #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ @@ -59,52 +59,60 @@ friend utils::deleters::Deleter<TypeName>::~Deleter() #ifdef DEBUG - #define ASSERT(condition) \ - FLUSH_LOGGER(); \ - do { \ - DEINIT_LOGGER(); \ - assert(condition); \ - } while (false) +#define ASSERT(condition) \ + FLUSH_LOGGER(); \ + do { \ + DEINIT_LOGGER(); \ + assert(condition); \ + } while (false) #else // RELEASE - #define ASSERT(condition) \ - fprintf(stderr, "Failed condition \"" #condition "\" [%s:%d][%s]\n\n", \ - __FILE__, __LINE__, __FUNCTION__) +#define ASSERT(condition) \ + fprintf(stderr, \ + "Failed condition \"" #condition "\" [%s:%d][%s]\n\n", \ + __FILE__, \ + __LINE__, \ + __FUNCTION__) #endif -#define DCHECK(condition) \ - if (!(condition)) { \ - CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ - LOG4CXX_FATAL(logger_, "DCHECK failed with \"" << #condition \ - << "\" [" << __FUNCTION__ << "][" << __FILE__ << ':' << __LINE__ << ']'); \ - ASSERT((condition)); \ +#define DCHECK(condition) \ + if (!(condition)) { \ + CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ + LOG4CXX_FATAL(logger_, \ + "DCHECK failed with \"" << #condition << "\" [" \ + << __FUNCTION__ << "][" << __FILE__ \ + << ':' << __LINE__ << ']'); \ + ASSERT((condition)); \ } /* * Will cauch assert on debug version, * Will return return_value in release build */ -#define DCHECK_OR_RETURN(condition, return_value) \ - if (!(condition)) { \ - CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ - LOG4CXX_FATAL(logger_, "DCHECK failed with \"" << #condition \ - << "\" [" << __FUNCTION__ << "][" << __FILE__ << ':' << __LINE__ << ']'); \ - ASSERT((condition)); \ - return (return_value); \ +#define DCHECK_OR_RETURN(condition, return_value) \ + if (!(condition)) { \ + CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ + LOG4CXX_FATAL(logger_, \ + "DCHECK failed with \"" << #condition << "\" [" \ + << __FUNCTION__ << "][" << __FILE__ \ + << ':' << __LINE__ << ']'); \ + ASSERT((condition)); \ + return (return_value); \ } /* * Will cauch assert on debug version, * Will return return_value in release build */ -#define DCHECK_OR_RETURN_VOID(condition) \ - if (!(condition)) { \ - CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ - LOG4CXX_FATAL(logger_, "DCHECK failed with \"" << #condition \ - << "\" [" << __FUNCTION__ << "][" << __FILE__ << ':' << __LINE__ << ']'); \ - ASSERT((condition)); \ - return ; \ +#define DCHECK_OR_RETURN_VOID(condition) \ + if (!(condition)) { \ + CREATE_LOGGERPTR_LOCAL(logger_, "Utils"); \ + LOG4CXX_FATAL(logger_, \ + "DCHECK failed with \"" << #condition << "\" [" \ + << __FUNCTION__ << "][" << __FILE__ \ + << ':' << __LINE__ << ']'); \ + ASSERT((condition)); \ + return; \ } - #define NOTREACHED() DCHECK(!"Unreachable code") // Allows to perform static check that virtual function from base class is @@ -121,11 +129,11 @@ * @brief Calculate size of na array * @param arr array, which size need to calculate */ -#define ARRAYSIZE(arr) sizeof (arr) / sizeof(*arr) +#define ARRAYSIZE(arr) sizeof(arr) / sizeof(*arr) #ifdef BUILD_TESTS -#define FRIEND_TEST(test_case_name, test_name)\ -friend class test_case_name##_##test_name##_Test +#define FRIEND_TEST(test_case_name, test_name) \ + friend class test_case_name##_##test_name##_Test #endif #endif // SRC_COMPONENTS_INCLUDE_UTILS_MACRO_H_ diff --git a/src/components/include/utils/message_queue.h b/src/components/include/utils/message_queue.h index d163ed0886..093aa4cac2 100644 --- a/src/components/include/utils/message_queue.h +++ b/src/components/include/utils/message_queue.h @@ -47,124 +47,131 @@ namespace utils { -template<typename T, class Q = std::queue<T> > class MessageQueue { - public: - typedef Q Queue; - /** - * \brief Default constructor - */ - MessageQueue(); - - /** - * \brief Destructor - */ - ~MessageQueue(); - - /** - * \brief Returns size of the queue. - * \return Size of the queue. - */ - size_t size() const; - - /** - * \brief If queue is empty. - * \return Is queue empty. - */ - bool empty() const; - - /** - * \brief Tells if queue is being shut down - */ - bool IsShuttingDown() const; - - /** - * \brief Adds element to the queue. - * \param element Element to be added to the queue.n - */ - void push(const T& element); - - /** - * \brief Removes element from the queue and returns it - * \param element Element to be returned - * \return True on success, false if queue is empty - */ - bool pop(T& element); - - /** - * \brief Conditional wait. - */ - void wait(); - - /** - * \brief waitUntilEmpty message queue - * Wait until message queue is empty - */ - void WaitUntilEmpty(); - - /** - * \brief Shutdown the queue. - * This leads to waking up everyone waiting on the queue - * Queue being shut down can be drained ( with pop() ) - * But nothing must be added to the queue after it began - * shutting down - */ - void Shutdown(); - - /** - * \brief Clears queue. - */ - void Reset(); - - private: - /** - *\brief Queue - */ - Queue queue_; - volatile bool shutting_down_; - - /** - *\brief Platform specific syncronisation variable - */ - mutable sync_primitives::Lock queue_lock_; - sync_primitives::ConditionalVariable queue_new_items_; +template <typename T, class Q = std::queue<T> > +class MessageQueue { + public: + typedef Q Queue; + /** + * \brief Default constructor + */ + MessageQueue(); + + /** + * \brief Destructor + */ + ~MessageQueue(); + + /** + * \brief Returns size of the queue. + * \return Size of the queue. + */ + size_t size() const; + + /** + * \brief If queue is empty. + * \return Is queue empty. + */ + bool empty() const; + + /** + * \brief Tells if queue is being shut down + */ + bool IsShuttingDown() const; + + /** + * \brief Adds element to the queue. + * \param element Element to be added to the queue.n + */ + void push(const T& element); + + /** + * \brief Removes element from the queue and returns it + * \param element Element to be returned + * \return True on success, false if queue is empty + */ + bool pop(T& element); + + /** + * \brief Conditional wait. + */ + void wait(); + + /** + * \brief waitUntilEmpty message queue + * Wait until message queue is empty + */ + void WaitUntilEmpty(); + + /** + * \brief Shutdown the queue. + * This leads to waking up everyone waiting on the queue + * Queue being shut down can be drained ( with pop() ) + * But nothing must be added to the queue after it began + * shutting down + */ + void Shutdown(); + + /** + * \brief Clears queue. + */ + void Reset(); + + private: + /** + *\brief Queue + */ + Queue queue_; + volatile bool shutting_down_; + + /** + *\brief Platform specific syncronisation variable + */ + mutable sync_primitives::Lock queue_lock_; + sync_primitives::ConditionalVariable queue_new_items_; }; -template<typename T, class Q> MessageQueue<T, Q>::MessageQueue() - : shutting_down_(false) { -} +template <typename T, class Q> +MessageQueue<T, Q>::MessageQueue() + : shutting_down_(false) {} -template<typename T, class Q> MessageQueue<T, Q>::~MessageQueue() { -} +template <typename T, class Q> +MessageQueue<T, Q>::~MessageQueue() {} -template<typename T, class Q> void MessageQueue<T, Q>::wait() { +template <typename T, class Q> +void MessageQueue<T, Q>::wait() { sync_primitives::AutoLock auto_lock(queue_lock_); while ((!shutting_down_) && queue_.empty()) { queue_new_items_.Wait(auto_lock); } } -template<typename T, class Q> void MessageQueue<T, Q>::WaitUntilEmpty() { +template <typename T, class Q> +void MessageQueue<T, Q>::WaitUntilEmpty() { sync_primitives::AutoLock auto_lock(queue_lock_); while ((!shutting_down_) && !queue_.empty()) { queue_new_items_.Wait(auto_lock); } } -template<typename T, class Q> size_t MessageQueue<T, Q>::size() const { +template <typename T, class Q> +size_t MessageQueue<T, Q>::size() const { sync_primitives::AutoLock auto_lock(queue_lock_); return queue_.size(); } -template<typename T, class Q> bool MessageQueue<T, Q>::empty() const { +template <typename T, class Q> +bool MessageQueue<T, Q>::empty() const { sync_primitives::AutoLock auto_lock(queue_lock_); return queue_.empty(); } -template<typename T, class Q> bool MessageQueue<T, Q>::IsShuttingDown() const { +template <typename T, class Q> +bool MessageQueue<T, Q>::IsShuttingDown() const { return shutting_down_; } -template<typename T, class Q> void MessageQueue<T, Q>::push(const T& element) { +template <typename T, class Q> +void MessageQueue<T, Q>::push(const T& element) { { sync_primitives::AutoLock auto_lock(queue_lock_); if (shutting_down_) { @@ -175,7 +182,8 @@ template<typename T, class Q> void MessageQueue<T, Q>::push(const T& element) { queue_new_items_.Broadcast(); } -template<typename T, class Q> bool MessageQueue<T, Q>::pop(T& element) { +template <typename T, class Q> +bool MessageQueue<T, Q>::pop(T& element) { sync_primitives::AutoLock auto_lock(queue_lock_); if (queue_.empty()) { return false; @@ -186,7 +194,8 @@ template<typename T, class Q> bool MessageQueue<T, Q>::pop(T& element) { return true; } -template<typename T, class Q> void MessageQueue<T, Q>::Shutdown() { +template <typename T, class Q> +void MessageQueue<T, Q>::Shutdown() { sync_primitives::AutoLock auto_lock(queue_lock_); shutting_down_ = true; if (!queue_.empty()) { @@ -196,7 +205,8 @@ template<typename T, class Q> void MessageQueue<T, Q>::Shutdown() { queue_new_items_.Broadcast(); } -template<typename T, class Q> void MessageQueue<T, Q>::Reset() { +template <typename T, class Q> +void MessageQueue<T, Q>::Reset() { sync_primitives::AutoLock auto_lock(queue_lock_); shutting_down_ = false; if (!queue_.empty()) { diff --git a/src/components/include/utils/messagemeter.h b/src/components/include/utils/messagemeter.h index 5f7237b4a0..42b658ad6b 100644 --- a/src/components/include/utils/messagemeter.h +++ b/src/components/include/utils/messagemeter.h @@ -94,7 +94,7 @@ class MessageMeter { template <class Id> MessageMeter<Id>::MessageMeter() - : time_range_(TimevalStruct {0, 0}) { + : time_range_(TimevalStruct{0, 0}) { time_range_.tv_sec = 1; } @@ -104,8 +104,7 @@ size_t MessageMeter<Id>::TrackMessage(const Id& id) { } template <class Id> -size_t MessageMeter<Id>::TrackMessages(const Id& id, - const size_t count) { +size_t MessageMeter<Id>::TrackMessages(const Id& id, const size_t count) { Timings& timings = timing_map_[id]; const TimevalStruct current_time = date_time::DateTime::getCurrentTime(); for (size_t i = 0; i < count; ++i) { @@ -118,18 +117,16 @@ size_t MessageMeter<Id>::TrackMessages(const Id& id, template <class Id> size_t MessageMeter<Id>::Frequency(const Id& id) { typename TimingMap::iterator it = timing_map_.find(id); - if(it == timing_map_.end()) { + if (it == timing_map_.end()) { return 0u; } Timings& timings = it->second; if (timings.empty()) { return 0u; } - const TimevalStruct actual_begin_time = - date_time::DateTime::Sub(date_time::DateTime::getCurrentTime(), - time_range_); - timings.erase(timings.begin(), - timings.upper_bound(actual_begin_time)); + const TimevalStruct actual_begin_time = date_time::DateTime::Sub( + date_time::DateTime::getCurrentTime(), time_range_); + timings.erase(timings.begin(), timings.upper_bound(actual_begin_time)); return timings.size(); } diff --git a/src/components/include/utils/prioritized_queue.h b/src/components/include/utils/prioritized_queue.h index 3f9b293b9a..eb4ba6a6c3 100644 --- a/src/components/include/utils/prioritized_queue.h +++ b/src/components/include/utils/prioritized_queue.h @@ -45,15 +45,13 @@ namespace utils { * Template queue class that gives out messages respecting their priority * Message class must have size_t PriorityOrder() method implemented */ -template < typename M > +template <typename M> class PrioritizedQueue { public: typedef M value_type; // std::map guarantees it's contents is sorted by key - typedef std::map<size_t, std::queue<value_type> > QueuesMap; - PrioritizedQueue() - : total_size_(0) { - } + typedef std::map<size_t, std::queue<value_type> > QueuesMap; + PrioritizedQueue() : total_size_(0) {} // All api mimics usual std queue interface void push(const value_type& message) { size_t message_priority = message.PriorityOrder(); diff --git a/src/components/include/utils/push_log.h b/src/components/include/utils/push_log.h index a96e484812..aaeaa83bae 100644 --- a/src/components/include/utils/push_log.h +++ b/src/components/include/utils/push_log.h @@ -38,14 +38,12 @@ namespace logger { -bool push_log( - log4cxx::LoggerPtr logger, - log4cxx::LevelPtr level, - const std::string& entry, - log4cxx_time_t timeStamp, - const log4cxx::spi::LocationInfo& location, - const log4cxx::LogString& threadName - ); +bool push_log(log4cxx::LoggerPtr logger, + log4cxx::LevelPtr level, + const std::string& entry, + log4cxx_time_t timeStamp, + const log4cxx::spi::LocationInfo& location, + const log4cxx::LogString& threadName); void flush_logger(); diff --git a/src/components/include/utils/rwlock.h b/src/components/include/utils/rwlock.h index 1083dbd63f..b7e7484b48 100644 --- a/src/components/include/utils/rwlock.h +++ b/src/components/include/utils/rwlock.h @@ -51,10 +51,13 @@ typedef pthread_rwlock_t PlatformRWLock; /** * RW locks wrapper - * Read-write locks permit concurrent reads and exclusive writes to a protected shared resource. - * The read-write lock is a single entity that can be locked in read or write mode. + * Read-write locks permit concurrent reads and exclusive writes to a protected + * shared resource. + * The read-write lock is a single entity that can be locked in read or write + * mode. * To modify a resource, a thread must first acquire the exclusive write lock. - * An exclusive write lock is not permitted until all read locks have been released. + * An exclusive write lock is not permitted until all read locks have been + * released. */ class RWLock { @@ -67,14 +70,19 @@ class RWLock { * The calling thread acquires the read lock if a writer does not * hold the lock and there are no writers blocked on the lock. * It is unspecified whether the calling thread acquires the lock - * when a writer does not hold the lock and there are writers waiting for the lock. - * If a writer holds the lock, the calling thread will not acquire the read lock. + * when a writer does not hold the lock and there are writers waiting for the + * lock. + * If a writer holds the lock, the calling thread will not acquire the read + * lock. * If the read lock is not acquired, the calling thread blocks - * (that is, it does not return from the AcquireForReading()) until it can acquire the lock. - * Results are undefined if the calling thread holds a write lock on rwlock at the time the call is made. + * (that is, it does not return from the AcquireForReading()) until it can + * acquire the lock. + * Results are undefined if the calling thread holds a write lock on rwlock at + * the time the call is made. * A thread can hold multiple concurrent read locks on rwlock * (that is, successfully call AcquireForReading() n times) - * If so, the thread must perform matching unlocks (that is, it must call Release() n times). + * If so, the thread must perform matching unlocks (that is, it must call + * Release() n times). * @returns true if lock was acquired and false if was not */ bool AcquireForReading(); @@ -91,9 +99,12 @@ class RWLock { /** * @brief Try to Acqure read-write lock for writing. - * Applies a write lock like AcquireForWriting(), with the exception that the - * function fails if any thread currently holds rwlock (for reading or writing) - * Invoke of TryAcquireForWriting will not block calling thread and returns "false" + * Applies a write lock like AcquireForWriting(), with the exception that + * the + * function fails if any thread currently holds rwlock (for reading or + * writing) + * Invoke of TryAcquireForWriting will not block calling thread and returns + * "false" * @returns true if lock was acquired and false if was not */ bool TryAcquireForWriting(); @@ -101,11 +112,13 @@ class RWLock { /** * @brief Acqure read-write lock for writing. * Applies a write lock to the read-write lock. - * The calling thread acquires the write lock if no other thread (reader or writer) + * The calling thread acquires the write lock if no other thread (reader or + * writer) * holds the read-write lock rwlock. Otherwise, the thread blocks * (that is, does not return from the AcquireForWriting() call) * until it can acquire the lock. - * Results are undefined if the calling thread holds the read-write lock (whether a read or write lock) + * Results are undefined if the calling thread holds the read-write lock + * (whether a read or write lock) * at the time the call is made. * The thread must perform matching unlock (that is, it must call Release()). * @returns true if lock was acquired and false if was not @@ -132,8 +145,7 @@ class RWLock { class AutoReadLock { public: - explicit AutoReadLock(RWLock& rwlock) - : rwlock_(rwlock) { + explicit AutoReadLock(RWLock& rwlock) : rwlock_(rwlock) { rwlock_.AcquireForReading(); } ~AutoReadLock() { @@ -147,12 +159,12 @@ class AutoReadLock { /** * @brief Makes auto lock read-write locks for writing - * Please use AutoWriteLock to acquire for writing and (automatically) release it + * Please use AutoWriteLock to acquire for writing and (automatically) release + * it */ class AutoWriteLock { public: - explicit AutoWriteLock(RWLock& rwlock) - : rwlock_(rwlock) { + explicit AutoWriteLock(RWLock& rwlock) : rwlock_(rwlock) { rwlock_.AcquireForWriting(); } ~AutoWriteLock() { diff --git a/src/components/include/utils/scope_guard.h b/src/components/include/utils/scope_guard.h index c2accdba59..bc60a7d288 100644 --- a/src/components/include/utils/scope_guard.h +++ b/src/components/include/utils/scope_guard.h @@ -47,7 +47,8 @@ namespace utils { * code duplicate as follows: * * bool SomeClass::Init() { - * memberObject_ = custom_allocate() // initialize member object with some value + * memberObject_ = custom_allocate() // initialize member object with some + *value * if(!some_condition) { * custom_release(memberObject(); * return false; @@ -64,7 +65,8 @@ namespace utils { * custom release function. See example bellow: * * bool SomeClass::Init() { - * memberObject_ = custom_allocate() // initialize member object with some value + * memberObject_ = custom_allocate() // initialize member object with some + *value * // The guard will call custom release function when it goes out of scope. * ScopeGaurd guard = MakeGuard(custom_release, memberObject); * if(!some_condition) { @@ -81,50 +83,48 @@ namespace utils { * } */ class ScopeGuardImplBase { - public: - /** - * @brief ScopeGuardImplBase the ScopeGuards constructor. - */ - ScopeGuardImplBase(): dismissed_(false) {} - - - - /** - * @brief Dismiss function which allows to dismiss releasing of stored object. - */ - void Dismiss() const { - dismissed_ = true; - } - - protected: - /** - * @brief ScopeGuardImplBase the copy constructor - * - * @param other the object that should be copied. - */ - ScopeGuardImplBase(const ScopeGuardImplBase& other) + public: + /** + * @brief ScopeGuardImplBase the ScopeGuards constructor. + */ + ScopeGuardImplBase() : dismissed_(false) {} + + /** + * @brief Dismiss function which allows to dismiss releasing of stored object. + */ + void Dismiss() const { + dismissed_ = true; + } + + protected: + /** + * @brief ScopeGuardImplBase the copy constructor + * + * @param other the object that should be copied. + */ + ScopeGuardImplBase(const ScopeGuardImplBase& other) : dismissed_(other.dismissed_) { - other.Dismiss(); + other.Dismiss(); + } + + /** + * Allows to safely execute release function(i.e. it will be called only + * in case of releasing wasn't dismiss.) + */ + template <typename T> + void SafeExecute(T& t) { + if (!t.dismissed_) { + t.Execute(); } + } - /** - * Allows to safely execute release function(i.e. it will be called only - * in case of releasing wasn't dismiss.) - */ - template<typename T> - void SafeExecute(T& t) { - if (!t.dismissed_) { - t.Execute(); - } - } - - ~ScopeGuardImplBase() {} + ~ScopeGuardImplBase() {} - mutable bool dismissed_; + mutable bool dismissed_; - private: - // Disallow copying via assign operator. - ScopeGuardImplBase& operator=(const ScopeGuardImplBase&); + private: + // Disallow copying via assign operator. + ScopeGuardImplBase& operator=(const ScopeGuardImplBase&); }; /** @@ -136,54 +136,52 @@ class ScopeGuardImplBase { * * So the parameter p will be passed to the specified function. */ -template<typename Function, typename Parameter1> -class ScopeGuardImpl1: public ScopeGuardImplBase { - public: - /** - * @brief MakeGuard allows to create ScopeGuard object. - * - * @param fun function to call, when out of scope. - * - * @param p1 parameter which will be passed to the certain function. - * - * @return ScopeGuard object. - */ - static ScopeGuardImpl1<Function, Parameter1> MakeGuard( - Function fun, const Parameter1& p1) { - return ScopeGuardImpl1<Function, Parameter1>(fun, p1); - } - - /** - Execute the SafeExecute function in destructor. - */ - ~ScopeGuardImpl1() { - SafeExecute(*this); - } - - protected: - - /** - * @brief Execute allows to execute certain function with certain parameter. - */ - void Execute() { - fun_(p1_); - } - - /** - * @brief ScopeGuardImpl1 create ScopeGuard object. - * - * @param f function object. - * - * @param p1 parameter to to pass to the function object. - */ - ScopeGuardImpl1(const Function& f, const Parameter1& p1) - : fun_(f), p1_(p1) {} - - private: - Function fun_; - const Parameter1 p1_; - - friend class ScopeGuardImplBase; +template <typename Function, typename Parameter1> +class ScopeGuardImpl1 : public ScopeGuardImplBase { + public: + /** + * @brief MakeGuard allows to create ScopeGuard object. + * + * @param fun function to call, when out of scope. + * + * @param p1 parameter which will be passed to the certain function. + * + * @return ScopeGuard object. + */ + static ScopeGuardImpl1<Function, Parameter1> MakeGuard(Function fun, + const Parameter1& p1) { + return ScopeGuardImpl1<Function, Parameter1>(fun, p1); + } + + /** + Execute the SafeExecute function in destructor. + */ + ~ScopeGuardImpl1() { + SafeExecute(*this); + } + + protected: + /** + * @brief Execute allows to execute certain function with certain parameter. + */ + void Execute() { + fun_(p1_); + } + + /** + * @brief ScopeGuardImpl1 create ScopeGuard object. + * + * @param f function object. + * + * @param p1 parameter to to pass to the function object. + */ + ScopeGuardImpl1(const Function& f, const Parameter1& p1) : fun_(f), p1_(p1) {} + + private: + Function fun_; + const Parameter1 p1_; + + friend class ScopeGuardImplBase; }; /** @@ -198,54 +196,52 @@ class ScopeGuardImpl1: public ScopeGuardImplBase { * vec.push_back(5); * } */ -template<typename Obj, typename MemFun> -class ObjScopeGuardImpl0: public ScopeGuardImplBase { - public: - /** - * @brief MakeObjGuard creates ScopeGuard object. - * - * @param obj object whose method will be called. - * - * @param memFun the method to call. - * - * @return ScopeGuard object. - */ - static ObjScopeGuardImpl0<Obj, MemFun> MakeObjGuard( - Obj& obj, MemFun memFun) { - return ObjScopeGuardImpl0<Obj, MemFun>(obj, memFun); - } - - /** - Execute the SafeExecute function in destructor. - */ - ~ObjScopeGuardImpl0() { - SafeExecute(*this); - } - - protected: - - /** - * @brief Execute allows to execute certain function with certain parameter. - */ - void Execute() { - (obj_.*memFun_)(); - } - - /** - * @brief ObjScopeGuardImpl0 Create ScopeGuard object. - * - * @param obj object whose method will be called. - * - * @param memFun the method to call. - * - * @return ScopeGuard object. - */ - ObjScopeGuardImpl0(Obj& obj, MemFun memFun) : obj_(obj), memFun_(memFun) {} - - private: - Obj& obj_; - MemFun memFun_; - friend class ScopeGuardImplBase; +template <typename Obj, typename MemFun> +class ObjScopeGuardImpl0 : public ScopeGuardImplBase { + public: + /** + * @brief MakeObjGuard creates ScopeGuard object. + * + * @param obj object whose method will be called. + * + * @param memFun the method to call. + * + * @return ScopeGuard object. + */ + static ObjScopeGuardImpl0<Obj, MemFun> MakeObjGuard(Obj& obj, MemFun memFun) { + return ObjScopeGuardImpl0<Obj, MemFun>(obj, memFun); + } + + /** + Execute the SafeExecute function in destructor. + */ + ~ObjScopeGuardImpl0() { + SafeExecute(*this); + } + + protected: + /** + * @brief Execute allows to execute certain function with certain parameter. + */ + void Execute() { + (obj_.*memFun_)(); + } + + /** + * @brief ObjScopeGuardImpl0 Create ScopeGuard object. + * + * @param obj object whose method will be called. + * + * @param memFun the method to call. + * + * @return ScopeGuard object. + */ + ObjScopeGuardImpl0(Obj& obj, MemFun memFun) : obj_(obj), memFun_(memFun) {} + + private: + Obj& obj_; + MemFun memFun_; + friend class ScopeGuardImplBase; }; /** @@ -253,61 +249,59 @@ class ObjScopeGuardImpl0: public ScopeGuardImplBase { * in case of ScopeGuard object out of scope. */ -template<typename Obj, typename MemFun, typename Parameter1> -class ObjScopeGuardImpl1: public ScopeGuardImplBase { - public: - /** - * @brief MakeObjGuard creates ScopeGuard object. - * - * @param obj object whose method will be called. - * - * @param memFun the method to call. - * - * @param p1 the parameter to pass to the member function. - * - * @return ScopeGuard object. - */ - static ObjScopeGuardImpl1<Obj, MemFun, Parameter1> MakeObjGuard( - Obj& obj, MemFun memFun, const Parameter1& p1) { - return ObjScopeGuardImpl1<Obj, MemFun, Parameter1>(obj, memFun, p1); - } - - /** - Execute the SafeExecute function in destructor. - */ - ~ObjScopeGuardImpl1() { - SafeExecute(*this); - } - - protected: - /** - * @brief Execute allows to execute certain function with certain parameter. - */ - void Execute() { - (obj_.*memFun_)(p1_); - } - - /** - * @brief MakeObjGuard creates ScopeGuard object. - * - * @param obj object whose method will be called. - * - * @param memFun the method to call. - * - * @param p1 the parameter to pass to the member function. - * - * @return ScopeGuard object. - */ - ObjScopeGuardImpl1(Obj& obj, MemFun memFun, const Parameter1& p1) - : obj_(obj), - memFun_(memFun), - p1_(p1) {} - - private: - Obj& obj_; - MemFun memFun_; - const Parameter1 p1_; - friend class ScopeGuardImplBase; +template <typename Obj, typename MemFun, typename Parameter1> +class ObjScopeGuardImpl1 : public ScopeGuardImplBase { + public: + /** + * @brief MakeObjGuard creates ScopeGuard object. + * + * @param obj object whose method will be called. + * + * @param memFun the method to call. + * + * @param p1 the parameter to pass to the member function. + * + * @return ScopeGuard object. + */ + static ObjScopeGuardImpl1<Obj, MemFun, Parameter1> MakeObjGuard( + Obj& obj, MemFun memFun, const Parameter1& p1) { + return ObjScopeGuardImpl1<Obj, MemFun, Parameter1>(obj, memFun, p1); + } + + /** + Execute the SafeExecute function in destructor. + */ + ~ObjScopeGuardImpl1() { + SafeExecute(*this); + } + + protected: + /** + * @brief Execute allows to execute certain function with certain parameter. + */ + void Execute() { + (obj_.*memFun_)(p1_); + } + + /** + * @brief MakeObjGuard creates ScopeGuard object. + * + * @param obj object whose method will be called. + * + * @param memFun the method to call. + * + * @param p1 the parameter to pass to the member function. + * + * @return ScopeGuard object. + */ + ObjScopeGuardImpl1(Obj& obj, MemFun memFun, const Parameter1& p1) + : obj_(obj), memFun_(memFun), p1_(p1) {} + + private: + Obj& obj_; + MemFun memFun_; + const Parameter1 p1_; + friend class ScopeGuardImplBase; }; typedef const ScopeGuardImplBase& ScopeGuard; @@ -323,10 +317,10 @@ ObjScopeGuardImpl0<Obj, MemFun> MakeObjGuard(Obj& obj, MemFun memFun) { } template <typename Obj, typename MemFun, typename P1> -ObjScopeGuardImpl1<Obj, MemFun, P1> MakeObjGuard( - Obj& obj, MemFun memFun, const P1& p1) { +ObjScopeGuardImpl1<Obj, MemFun, P1> MakeObjGuard(Obj& obj, + MemFun memFun, + const P1& p1) { return ObjScopeGuardImpl1<Obj, MemFun, P1>::MakeObjGuard(obj, memFun, p1); } - } -#endif // SRC_COMPONENTS_INCLUDE_UTILS_SCOPE_GUARD_H +#endif // SRC_COMPONENTS_INCLUDE_UTILS_SCOPE_GUARD_H diff --git a/src/components/include/utils/threads/async_runner.h b/src/components/include/utils/threads/async_runner.h index c3afe4eea0..c6da0638f4 100644 --- a/src/components/include/utils/threads/async_runner.h +++ b/src/components/include/utils/threads/async_runner.h @@ -52,76 +52,75 @@ namespace threads { * is kind of manager for async functions. */ class AsyncRunner { - public: + public: + /** + * @brief AsyncRunner constructor, allows to create and run new thread. + * The thread will be removed in destructor and appropriate delegate will + * be removed some time latter after pthred_join. + * + * @param thread_name thread's name. + * + * @param delegate delegate to run within thread. + */ + explicit AsyncRunner(const std::string& thread_name); + + /** + * @brief AsyncRun pass obtained delegate into internal queue + * + * @param delegate the objet which has to be concuremtly run + */ + void AsyncRun(threads::ThreadDelegate* delegate); + /** + * @brief Stop delegates activity + */ + void Stop(); + + ~AsyncRunner(); + + private: + class AsyncRunnerDelegate : public threads::ThreadDelegate { + public: + AsyncRunnerDelegate(); + /** - * @brief AsyncRunner constructor, allows to create and run new thread. - * The thread will be removed in destructor and appropriate delegate will - * be removed some time latter after pthred_join. - * - * @param thread_name thread's name. - * - * @param delegate delegate to run within thread. + * @brief threadMain runs delegates queue handling. + */ + virtual void threadMain(); + + /** + * @brief exitThreadMain doing stuff before exit from thread. */ - explicit AsyncRunner(const std::string& thread_name); + virtual void exitThreadMain(); /** - * @brief AsyncRun pass obtained delegate into internal queue + * @brief runDelegate push obtained delegate into specific queue * - * @param delegate the objet which has to be concuremtly run + * @param delegate object that has to be executed. */ - void AsyncRun(threads::ThreadDelegate* delegate); + void runDelegate(threads::ThreadDelegate* delegate); + + private: + /** + * @brief processDelegate allows to pop delegate + * from queue and process it. + */ + void processDelegate(); + /** - * @brief Stop delegates activity + * @brief waitForDelegate wait while delegates queue is empty. */ - void Stop(); - - ~AsyncRunner(); - - private: - - class AsyncRunnerDelegate: public threads::ThreadDelegate { - public: - AsyncRunnerDelegate(); - - /** - * @brief threadMain runs delegates queue handling. - */ - virtual void threadMain(); - - /** - * @brief exitThreadMain doing stuff before exit from thread. - */ - virtual void exitThreadMain(); - - /** - * @brief runDelegate push obtained delegate into specific queue - * - * @param delegate object that has to be executed. - */ - void runDelegate(threads::ThreadDelegate* delegate); - - private: - /** - * @brief processDelegate allows to pop delegate - * from queue and process it. - */ - void processDelegate(); - - /** - * @brief waitForDelegate wait while delegates queue is empty. - */ - void waitForDelegate(); - - std::queue<threads::ThreadDelegate*> delegates_queue_; - sync_primitives::ConditionalVariable delegate_notifier_; - sync_primitives::Lock delegates_queue_lock_; - volatile bool stop_flag_; - }; - - threads::Thread* thread_; - AsyncRunnerDelegate* executor_; + void waitForDelegate(); + + std::queue<threads::ThreadDelegate*> delegates_queue_; + sync_primitives::ConditionalVariable delegate_notifier_; + sync_primitives::Lock delegates_queue_lock_; + volatile bool stop_flag_; + }; + + threads::Thread* thread_; + AsyncRunnerDelegate* executor_; }; -} // namespace threads +} // namespace threads -#endif // SRC_COMPONENTS_INCLUDE_UTILS_ASYNC_RUNNER_H_ +#endif // SRC_COMPONENTS_INCLUDE_UTILS_ASYNC_RUNNER_H_ diff --git a/src/components/include/utils/threads/message_loop_thread.h b/src/components/include/utils/threads/message_loop_thread.h index 51fcfd8aba..15023f02dd 100644 --- a/src/components/include/utils/threads/message_loop_thread.h +++ b/src/components/include/utils/threads/message_loop_thread.h @@ -53,7 +53,7 @@ using ::utils::MessageQueue; * to it's queue. To handle messages someone, Handler must be implemented and * passed to MessageLoopThread constructor. */ -template < class Q > +template <class Q> class MessageLoopThread { public: typedef Q Queue; @@ -102,7 +102,6 @@ class MessageLoopThread { * able to correctly shut it down */ class LoopThreadDelegate : public threads::ThreadDelegate { - public: LoopThreadDelegate(MessageQueue<Message, Queue>* message_queue, Handler* handler); @@ -128,18 +127,17 @@ class MessageLoopThread { ///////// Implementation -template<class Q> +template <class Q> size_t MessageLoopThread<Q>::GetMessageQueueSize() const { return message_queue_.size(); } -template<class Q> -MessageLoopThread<Q>::MessageLoopThread(const std::string& name, - Handler* handler, +template <class Q> +MessageLoopThread<Q>::MessageLoopThread(const std::string& name, + Handler* handler, const ThreadOptions& thread_opts) - : thread_delegate_(new LoopThreadDelegate(&message_queue_, handler)), - thread_(threads::CreateThread(name.c_str(), - thread_delegate_)) { + : thread_delegate_(new LoopThreadDelegate(&message_queue_, handler)) + , thread_(threads::CreateThread(name.c_str(), thread_delegate_)) { const bool started = thread_->start(thread_opts); if (!started) { CREATE_LOGGERPTR_LOCAL(logger_, "Utils") @@ -147,7 +145,7 @@ MessageLoopThread<Q>::MessageLoopThread(const std::string& name, } } -template<class Q> +template <class Q> MessageLoopThread<Q>::~MessageLoopThread() { Shutdown(); delete thread_delegate_; @@ -164,22 +162,21 @@ void MessageLoopThread<Q>::Shutdown() { thread_->join(); } -template<class Q> +template <class Q> void MessageLoopThread<Q>::WaitDumpQueue() { message_queue_.WaitUntilEmpty(); } ////////// -template<class Q> +template <class Q> MessageLoopThread<Q>::LoopThreadDelegate::LoopThreadDelegate( MessageQueue<Message, Queue>* message_queue, Handler* handler) - : handler_(*handler), - message_queue_(*message_queue) { + : handler_(*handler), message_queue_(*message_queue) { DCHECK(handler != NULL); DCHECK(message_queue != NULL); } -template<class Q> +template <class Q> void MessageLoopThread<Q>::LoopThreadDelegate::threadMain() { CREATE_LOGGERPTR_LOCAL(logger_, "Utils") LOG4CXX_AUTO_TRACE(logger_); @@ -191,12 +188,12 @@ void MessageLoopThread<Q>::LoopThreadDelegate::threadMain() { DrainQue(); } -template<class Q> +template <class Q> void MessageLoopThread<Q>::LoopThreadDelegate::exitThreadMain() { message_queue_.Shutdown(); } -template<class Q> +template <class Q> void MessageLoopThread<Q>::LoopThreadDelegate::DrainQue() { while (!message_queue_.empty()) { Message msg; diff --git a/src/components/include/utils/threads/thread.h b/src/components/include/utils/threads/thread.h index 98e0f51f87..c81b912e9a 100644 --- a/src/components/include/utils/threads/thread.h +++ b/src/components/include/utils/threads/thread.h @@ -119,11 +119,11 @@ class Thread { return delegate_lock_; } - ThreadDelegate *delegate() const { + ThreadDelegate* delegate() const { return delegate_; } - void set_delegate(ThreadDelegate *delegate) { + void set_delegate(ThreadDelegate* delegate) { delegate_ = delegate; } @@ -131,7 +131,6 @@ class Thread { friend void DeleteThread(Thread* thread); public: - // Yield current thread static void yield(); diff --git a/src/components/include/utils/threads/thread_delegate.h b/src/components/include/utils/threads/thread_delegate.h index 66ad30241c..2f2c8b3744 100644 --- a/src/components/include/utils/threads/thread_delegate.h +++ b/src/components/include/utils/threads/thread_delegate.h @@ -39,11 +39,7 @@ namespace threads { -enum ThreadState { - kInit = 0, - kStarted = 1, - kStopReq = 2 -}; +enum ThreadState { kInit = 0, kStarted = 1, kStopReq = 2 }; class Thread; @@ -53,10 +49,7 @@ class Thread; */ class ThreadDelegate { public: - ThreadDelegate() - : state_(kInit), - thread_(NULL) { - } + ThreadDelegate() : state_(kInit), thread_(NULL) {} /** * \brief Thread procedure. */ @@ -76,7 +69,7 @@ class ThreadDelegate { return thread_; } - void set_thread(Thread *thread); + void set_thread(Thread* thread); bool ImproveState(unsigned int to) { state_lock_.Lock(); diff --git a/src/components/include/utils/threads/thread_options.h b/src/components/include/utils/threads/thread_options.h index 797ee0693b..2f5c90ae44 100644 --- a/src/components/include/utils/threads/thread_options.h +++ b/src/components/include/utils/threads/thread_options.h @@ -51,15 +51,12 @@ class ThreadOptions { * @param is_joinable - is thread joinable? */ explicit ThreadOptions(size_t stack_size = 0, bool is_joinable = true) - : stack_size_(stack_size), - is_joinable_(is_joinable) { - } + : stack_size_(stack_size), is_joinable_(is_joinable) {} /** * Dtor. */ - virtual ~ThreadOptions() { - } + virtual ~ThreadOptions() {} /** * Copy ctor. diff --git a/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h b/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h index 09985282d1..3f262b27bb 100644 --- a/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h +++ b/src/components/media_manager/include/media_manager/audio/a2dp_source_player_adapter.h @@ -39,7 +39,7 @@ #include "utils/threads/thread_delegate.h" namespace protocol_handler { - class SessionObserver; +class SessionObserver; } namespace threads { @@ -49,28 +49,28 @@ class Thread; namespace media_manager { class A2DPSourcePlayerAdapter : public MediaAdapterImpl { - public: - A2DPSourcePlayerAdapter(protocol_handler::SessionObserver& session_observer); - ~A2DPSourcePlayerAdapter(); - void SendData(int32_t application_key, - const ::protocol_handler::RawMessagePtr message) {} - void StartActivity(int32_t application_key); - void StopActivity(int32_t application_key); - bool is_app_performing_activity(int32_t application_key) const; + public: + A2DPSourcePlayerAdapter(protocol_handler::SessionObserver& session_observer); + ~A2DPSourcePlayerAdapter(); + void SendData(int32_t application_key, + const ::protocol_handler::RawMessagePtr message) {} + void StartActivity(int32_t application_key); + void StopActivity(int32_t application_key); + bool is_app_performing_activity(int32_t application_key) const; - void set_connection_handler( - connection_handler::ConnectionHandlerImpl* connection_handler) { - connection_handler_ = connection_handler; - } + void set_connection_handler( + connection_handler::ConnectionHandlerImpl* connection_handler) { + connection_handler_ = connection_handler; + } - private: - class A2DPSourcePlayerThread; + private: + class A2DPSourcePlayerThread; - typedef std::pair<threads::Thread*, A2DPSourcePlayerThread*> Pair; - typedef std::map<int32_t, Pair> SourcesMap; - SourcesMap sources_; - protocol_handler::SessionObserver& session_observer_; - DISALLOW_COPY_AND_ASSIGN(A2DPSourcePlayerAdapter); + typedef std::pair<threads::Thread*, A2DPSourcePlayerThread*> Pair; + typedef std::map<int32_t, Pair> SourcesMap; + SourcesMap sources_; + protocol_handler::SessionObserver& session_observer_; + DISALLOW_COPY_AND_ASSIGN(A2DPSourcePlayerAdapter); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h b/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h index e9de397eed..b956f2c9e2 100644 --- a/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h +++ b/src/components/media_manager/include/media_manager/audio/audio_stream_sender_thread.h @@ -39,7 +39,6 @@ #include "utils/conditional_variable.h" #include "utils/lock.h" - namespace NsSmartDeviceLink { namespace NsSmartObjects { class SmartObject; @@ -47,7 +46,7 @@ class SmartObject; } namespace application_manager { - class ApplicationManager; +class ApplicationManager; } namespace media_manager { @@ -66,71 +65,67 @@ typedef enum { ACQ_16_BIT = 1 } AudioCaptureQuality; -typedef enum { - AT_INVALID = -1, - AT_PCM = 0 -} AudioType; +typedef enum { AT_INVALID = -1, AT_PCM = 0 } AudioType; /* - * @brief AudioStreamSenderThread class used to read binary data written from microphone + * @brief AudioStreamSenderThread class used to read binary data written from + * microphone * and send it every 1 second to mobile device. */ class AudioStreamSenderThread : public threads::ThreadDelegate { - public: - /* - * @brief AudioStreamSenderThread class constructor - * - * @param session_key Session key of connection for Mobile side - * @param correlation_id Correlation id for response for Mobile side - */ - AudioStreamSenderThread(const std::string& fileName, - uint32_t session_key, - application_manager::ApplicationManager& app_mngr); - - /* - * @brief AudioStreamSenderThread class destructor - */ - ~AudioStreamSenderThread(); - - /** - * @brief Thread procedure. - */ - void threadMain(); - - /* - * @brief Retrieve session key - * - * @return Stored session key - */ - uint32_t session_key() const; - - void exitThreadMain(); - - private: - /* - * @brief Sends AudioPassThru request - */ - bool SendEndAudioPassThru(); - - void sendAudioChunkToMobile(); - - - bool getShouldBeStopped(); - void setShouldBeStopped(bool should_stop); - - uint32_t session_key_; - const std::string fileName_; - int32_t offset_; - volatile bool shouldBeStoped_; - sync_primitives::Lock shouldBeStoped_lock_; - sync_primitives::ConditionalVariable shouldBeStoped_cv_; - - static const int32_t kAudioPassThruTimeout; - - application_manager::ApplicationManager& application_manager_; - - - DISALLOW_COPY_AND_ASSIGN(AudioStreamSenderThread); + public: + /* + * @brief AudioStreamSenderThread class constructor + * + * @param session_key Session key of connection for Mobile side + * @param correlation_id Correlation id for response for Mobile side + */ + AudioStreamSenderThread(const std::string& fileName, + uint32_t session_key, + application_manager::ApplicationManager& app_mngr); + + /* + * @brief AudioStreamSenderThread class destructor + */ + ~AudioStreamSenderThread(); + + /** + * @brief Thread procedure. + */ + void threadMain(); + + /* + * @brief Retrieve session key + * + * @return Stored session key + */ + uint32_t session_key() const; + + void exitThreadMain(); + + private: + /* + * @brief Sends AudioPassThru request + */ + bool SendEndAudioPassThru(); + + void sendAudioChunkToMobile(); + + bool getShouldBeStopped(); + void setShouldBeStopped(bool should_stop); + + uint32_t session_key_; + const std::string fileName_; + int32_t offset_; + volatile bool shouldBeStoped_; + sync_primitives::Lock shouldBeStoped_lock_; + sync_primitives::ConditionalVariable shouldBeStoped_cv_; + + static const int32_t kAudioPassThruTimeout; + + application_manager::ApplicationManager& application_manager_; + + DISALLOW_COPY_AND_ASSIGN(AudioStreamSenderThread); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/audio/file_audio_streamer_adapter.h b/src/components/media_manager/include/media_manager/audio/file_audio_streamer_adapter.h index f51aed0a47..dc0c001acf 100644 --- a/src/components/media_manager/include/media_manager/audio/file_audio_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/audio/file_audio_streamer_adapter.h @@ -39,9 +39,8 @@ namespace media_manager { class FileAudioStreamerAdapter : public FileStreamerAdapter { public: - FileAudioStreamerAdapter( - const std::string& audio_stream_file, - const std::string& app_storage_folder); + FileAudioStreamerAdapter(const std::string& audio_stream_file, + const std::string& app_storage_folder); ~FileAudioStreamerAdapter(); }; diff --git a/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h b/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h index a3c4061162..7daf9c7add 100644 --- a/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h +++ b/src/components/media_manager/include/media_manager/audio/from_mic_recorder_adapter.h @@ -43,22 +43,23 @@ class Thread; namespace media_manager { class FromMicRecorderAdapter : public MediaAdapterImpl { - public: - FromMicRecorderAdapter(); - ~FromMicRecorderAdapter(); - void SendData(int32_t application_key, - const ::protocol_handler::RawMessagePtr message) {} - void StartActivity(int32_t application_key); - void StopActivity(int32_t application_key); - bool is_app_performing_activity(int32_t application_key) const; - void set_output_file(const std::string& output_file); - void set_duration(int32_t duration); - private: - threads::Thread* recorder_thread_; - std::string output_file_; - const int32_t kDefaultDuration; - int32_t duration_; - DISALLOW_COPY_AND_ASSIGN(FromMicRecorderAdapter); + public: + FromMicRecorderAdapter(); + ~FromMicRecorderAdapter(); + void SendData(int32_t application_key, + const ::protocol_handler::RawMessagePtr message) {} + void StartActivity(int32_t application_key); + void StopActivity(int32_t application_key); + bool is_app_performing_activity(int32_t application_key) const; + void set_output_file(const std::string& output_file); + void set_duration(int32_t duration); + + private: + threads::Thread* recorder_thread_; + std::string output_file_; + const int32_t kDefaultDuration; + int32_t duration_; + DISALLOW_COPY_AND_ASSIGN(FromMicRecorderAdapter); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h b/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h index 96eb32b400..c615195f94 100644 --- a/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h +++ b/src/components/media_manager/include/media_manager/audio/from_mic_recorder_listener.h @@ -37,7 +37,7 @@ #include "media_manager/media_adapter_listener.h" namespace application_manager { - class ApplicationManager; +class ApplicationManager; } namespace threads { @@ -46,25 +46,23 @@ class Thread; namespace media_manager { class FromMicRecorderListener : public MediaAdapterListener { - public: - FromMicRecorderListener(const std::string& file_name, - application_manager::ApplicationManager &); - ~FromMicRecorderListener(); - virtual void OnDataReceived( - int32_t application_key, - const DataForListener& data); - virtual void OnErrorReceived( - int32_t application_key, - const DataForListener& data); - virtual void OnActivityStarted(int32_t application_key); - virtual void OnActivityEnded(int32_t application_key); + public: + FromMicRecorderListener(const std::string& file_name, + application_manager::ApplicationManager&); + ~FromMicRecorderListener(); + virtual void OnDataReceived(int32_t application_key, + const DataForListener& data); + virtual void OnErrorReceived(int32_t application_key, + const DataForListener& data); + virtual void OnActivityStarted(int32_t application_key); + virtual void OnActivityEnded(int32_t application_key); - private: - threads::Thread* reader_; - std::string file_name_; - int32_t current_application_; - application_manager::ApplicationManager& application_manager_; - DISALLOW_COPY_AND_ASSIGN(FromMicRecorderListener); + private: + threads::Thread* reader_; + std::string file_name_; + int32_t current_application_; + application_manager::ApplicationManager& application_manager_; + DISALLOW_COPY_AND_ASSIGN(FromMicRecorderListener); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h b/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h index 7bb036fa42..f0c6d3c48f 100644 --- a/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h +++ b/src/components/media_manager/include/media_manager/audio/from_mic_to_file_recorder_thread.h @@ -44,53 +44,52 @@ namespace media_manager { class FromMicToFileRecorderThread : public threads::ThreadDelegate { - public: - FromMicToFileRecorderThread(const std::string& output_file, - int32_t duration); - ~FromMicToFileRecorderThread(); - void threadMain(); + public: + FromMicToFileRecorderThread(const std::string& output_file, int32_t duration); + ~FromMicToFileRecorderThread(); + void threadMain(); - void exitThreadMain(); + void exitThreadMain(); - void set_output_file(const std::string& output_file); - void set_record_duration(int32_t duration); + void set_output_file(const std::string& output_file); + void set_record_duration(int32_t duration); - private: - int32_t argc_; - gchar** argv_; + private: + int32_t argc_; + gchar** argv_; - const std::string oKey_; - const std::string tKey_; + const std::string oKey_; + const std::string tKey_; - static GMainLoop* loop; - threads::Thread* sleepThread_; - bool shouldBeStoped_; - sync_primitives::Lock stopFlagLock_; + static GMainLoop* loop; + threads::Thread* sleepThread_; + bool shouldBeStoped_; + sync_primitives::Lock stopFlagLock_; - std::string outputFileName_, durationString_; + std::string outputFileName_, durationString_; - typedef struct { - GstElement* pipeline; - gint duration; - } GstTimeout; + typedef struct { + GstElement* pipeline; + gint duration; + } GstTimeout; - void initArgs(); + void initArgs(); - void psleep(void* timeout); + void psleep(void* timeout); - class SleepThreadDelegate : public threads::ThreadDelegate { - public: - explicit SleepThreadDelegate(GstTimeout timeout); + class SleepThreadDelegate : public threads::ThreadDelegate { + public: + explicit SleepThreadDelegate(GstTimeout timeout); - void threadMain(); + void threadMain(); - private: - GstTimeout timeout_; + private: + GstTimeout timeout_; - DISALLOW_COPY_AND_ASSIGN(SleepThreadDelegate); - }; + DISALLOW_COPY_AND_ASSIGN(SleepThreadDelegate); + }; - DISALLOW_COPY_AND_ASSIGN(FromMicToFileRecorderThread); + DISALLOW_COPY_AND_ASSIGN(FromMicToFileRecorderThread); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h b/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h index 3695235886..d0dbbebd38 100644 --- a/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/audio/pipe_audio_streamer_adapter.h @@ -39,9 +39,8 @@ namespace media_manager { class PipeAudioStreamerAdapter : public PipeStreamerAdapter { public: - PipeAudioStreamerAdapter( - const std::string& named_audio_pipe_path, - const std::string& app_storage_folder); + PipeAudioStreamerAdapter(const std::string& named_audio_pipe_path, + const std::string& app_storage_folder); ~PipeAudioStreamerAdapter(); }; diff --git a/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h b/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h index 77a58195f0..c0f3174496 100644 --- a/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/audio/socket_audio_streamer_adapter.h @@ -39,8 +39,8 @@ namespace media_manager { class SocketAudioStreamerAdapter : public SocketStreamerAdapter { public: - SocketAudioStreamerAdapter( - const std::string& server_address, uint16_t audio_streaming_port); + SocketAudioStreamerAdapter(const std::string& server_address, + uint16_t audio_streaming_port); virtual ~SocketAudioStreamerAdapter(); }; diff --git a/src/components/media_manager/include/media_manager/file_streamer_adapter.h b/src/components/media_manager/include/media_manager/file_streamer_adapter.h index 52092a3616..293c6721ee 100644 --- a/src/components/media_manager/include/media_manager/file_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/file_streamer_adapter.h @@ -42,8 +42,8 @@ namespace media_manager { class FileStreamerAdapter : public StreamerAdapter { public: - FileStreamerAdapter( - const std::string& file_name, const std::string& app_storage_folder); + FileStreamerAdapter(const std::string& file_name, + const std::string& app_storage_folder); virtual ~FileStreamerAdapter(); protected: @@ -60,8 +60,8 @@ class FileStreamerAdapter : public StreamerAdapter { virtual bool Send(protocol_handler::RawMessagePtr msg); private: - std::string file_name_; - std::string app_storage_folder_; + std::string file_name_; + std::string app_storage_folder_; std::ofstream* file_stream_; }; }; diff --git a/src/components/media_manager/include/media_manager/media_adapter.h b/src/components/media_manager/include/media_manager/media_adapter.h index 73622ecd43..3fe05cae33 100644 --- a/src/components/media_manager/include/media_manager/media_adapter.h +++ b/src/components/media_manager/include/media_manager/media_adapter.h @@ -46,7 +46,9 @@ class MediaAdapter { virtual void StopActivity(int32_t application_key) = 0; virtual bool is_app_performing_activity(int32_t application_key) const = 0; - virtual ~MediaAdapter() { ;} + virtual ~MediaAdapter() { + ; + } }; } // namespace media_manager #endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_H_ diff --git a/src/components/media_manager/include/media_manager/media_adapter_impl.h b/src/components/media_manager/include/media_manager/media_adapter_impl.h index a3a296150b..75c48c98b7 100644 --- a/src/components/media_manager/include/media_manager/media_adapter_impl.h +++ b/src/components/media_manager/include/media_manager/media_adapter_impl.h @@ -43,18 +43,18 @@ namespace media_manager { typedef utils::SharedPtr<MediaAdapterListener> MediaListenerPtr; class MediaAdapterImpl : public MediaAdapter { - public: - virtual ~MediaAdapterImpl(); - virtual void AddListener(const MediaListenerPtr& listener); - virtual void RemoveListener(const MediaListenerPtr& listener); + public: + virtual ~MediaAdapterImpl(); + virtual void AddListener(const MediaListenerPtr& listener); + virtual void RemoveListener(const MediaListenerPtr& listener); - protected: - MediaAdapterImpl(); - std::set<MediaListenerPtr> media_listeners_; - int32_t current_application_; + protected: + MediaAdapterImpl(); + std::set<MediaListenerPtr> media_listeners_; + int32_t current_application_; - private: - DISALLOW_COPY_AND_ASSIGN(MediaAdapterImpl); + private: + DISALLOW_COPY_AND_ASSIGN(MediaAdapterImpl); }; typedef utils::SharedPtr<MediaAdapterImpl> MediaAdapterImplPtr; diff --git a/src/components/media_manager/include/media_manager/media_adapter_listener.h b/src/components/media_manager/include/media_manager/media_adapter_listener.h index 423d41c89b..37c3925199 100644 --- a/src/components/media_manager/include/media_manager/media_adapter_listener.h +++ b/src/components/media_manager/include/media_manager/media_adapter_listener.h @@ -40,17 +40,14 @@ namespace media_manager { typedef int32_t DataForListener; class MediaAdapterListener { - public: - virtual ~MediaAdapterListener() { - } - virtual void OnDataReceived( - int32_t application_key, - const DataForListener& data) = 0; - virtual void OnErrorReceived( - int32_t application_key, - const DataForListener& data) = 0; - virtual void OnActivityStarted(int32_t application_key) = 0; - virtual void OnActivityEnded(int32_t application_key) = 0; + public: + virtual ~MediaAdapterListener() {} + virtual void OnDataReceived(int32_t application_key, + const DataForListener& data) = 0; + virtual void OnErrorReceived(int32_t application_key, + const DataForListener& data) = 0; + virtual void OnActivityStarted(int32_t application_key) = 0; + virtual void OnActivityEnded(int32_t application_key) = 0; }; } // namespace media_manager #endif // SRC_COMPONENTS_MEDIA_MANAGER_INCLUDE_MEDIA_MANAGER_MEDIA_ADAPTER_LISTENER_H_ diff --git a/src/components/media_manager/include/media_manager/media_manager.h b/src/components/media_manager/include/media_manager/media_manager.h index f1fb50e384..53e3690c13 100644 --- a/src/components/media_manager/include/media_manager/media_manager.h +++ b/src/components/media_manager/include/media_manager/media_manager.h @@ -39,28 +39,28 @@ namespace media_manager { class MediaManager { - public: - virtual void PlayA2DPSource(int32_t application_key) = 0; - virtual void StopA2DPSource(int32_t application_key) = 0; + public: + virtual void PlayA2DPSource(int32_t application_key) = 0; + virtual void StopA2DPSource(int32_t application_key) = 0; - virtual void StartMicrophoneRecording(int32_t application_key, - const std::string& outputFileName, - int32_t duration) = 0; - virtual void StopMicrophoneRecording(int32_t application_key) = 0; + virtual void StartMicrophoneRecording(int32_t application_key, + const std::string& outputFileName, + int32_t duration) = 0; + virtual void StopMicrophoneRecording(int32_t application_key) = 0; - virtual void StartStreaming( - int32_t application_key, protocol_handler::ServiceType service_type) = 0; - virtual void StopStreaming( - int32_t application_key, protocol_handler::ServiceType service_type) = 0; - virtual void FramesProcessed(int32_t application_key, - int32_t frame_number) = 0; - /** - * \brief Media manager settings getter - * \return pointer to media manager settings class - */ - virtual const MediaManagerSettings& settings() const = 0; + virtual void StartStreaming(int32_t application_key, + protocol_handler::ServiceType service_type) = 0; + virtual void StopStreaming(int32_t application_key, + protocol_handler::ServiceType service_type) = 0; + virtual void FramesProcessed(int32_t application_key, + int32_t frame_number) = 0; + /** + * \brief Media manager settings getter + * \return pointer to media manager settings class + */ + virtual const MediaManagerSettings& settings() const = 0; - virtual ~MediaManager(){} + virtual ~MediaManager() {} }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h b/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h index 8a5a85605c..1e998ef82f 100644 --- a/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/pipe_streamer_adapter.h @@ -41,8 +41,8 @@ namespace media_manager { class PipeStreamerAdapter : public StreamerAdapter { public: - PipeStreamerAdapter( - const std::string& named_pipe_path, const std::string& app_storage_folder); + PipeStreamerAdapter(const std::string& named_pipe_path, + const std::string& app_storage_folder); virtual ~PipeStreamerAdapter(); protected: @@ -61,7 +61,7 @@ class PipeStreamerAdapter : public StreamerAdapter { private: std::string named_pipe_path_; std::string app_storage_folder_; - int32_t pipe_fd_; + int32_t pipe_fd_; }; }; diff --git a/src/components/media_manager/include/media_manager/socket_streamer_adapter.h b/src/components/media_manager/include/media_manager/socket_streamer_adapter.h index 960c2de6c0..45311b6077 100644 --- a/src/components/media_manager/include/media_manager/socket_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/socket_streamer_adapter.h @@ -62,12 +62,12 @@ class SocketStreamerAdapter : public StreamerAdapter { private: std::string ip_; - uint16_t port_; + uint16_t port_; std::string header_; - int32_t socket_fd_; - int32_t send_socket_fd_; - bool is_first_frame_; + int32_t socket_fd_; + int32_t send_socket_fd_; + bool is_first_frame_; }; }; diff --git a/src/components/media_manager/include/media_manager/streamer_adapter.h b/src/components/media_manager/include/media_manager/streamer_adapter.h index 81291bcfe1..30353b8d09 100644 --- a/src/components/media_manager/include/media_manager/streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/streamer_adapter.h @@ -60,8 +60,7 @@ class StreamerAdapter : public MediaAdapterImpl { virtual void StopActivity(int32_t application_key); virtual void SendData(int32_t application_key, const ::protocol_handler::RawMessagePtr msg); - virtual bool is_app_performing_activity( - int32_t application_key) const; + virtual bool is_app_performing_activity(int32_t application_key) const; protected: // TODO(AN): APPLINK-15203 Use MessageLoopThread @@ -80,7 +79,7 @@ class StreamerAdapter : public MediaAdapterImpl { private: sync_primitives::atomic_bool stop_flag_; - StreamerAdapter* adapter_; + StreamerAdapter* adapter_; DISALLOW_COPY_AND_ASSIGN(Streamer); }; @@ -89,7 +88,7 @@ class StreamerAdapter : public MediaAdapterImpl { int32_t current_application_; utils::MessageQueue<protocol_handler::RawMessagePtr> messages_; - Streamer* streamer_; + Streamer* streamer_; threads::Thread* thread_; DISALLOW_COPY_AND_ASSIGN(StreamerAdapter); diff --git a/src/components/media_manager/include/media_manager/streamer_listener.h b/src/components/media_manager/include/media_manager/streamer_listener.h index 5b31400586..32ba167985 100644 --- a/src/components/media_manager/include/media_manager/streamer_listener.h +++ b/src/components/media_manager/include/media_manager/streamer_listener.h @@ -42,22 +42,20 @@ namespace media_manager { class MediaManager; class StreamerListener : public MediaAdapterListener { - public: - StreamerListener(MediaManager& media_manager); - ~StreamerListener(); - virtual void OnDataReceived( - int32_t application_key, - const DataForListener& data); - virtual void OnErrorReceived( - int32_t application_key, - const DataForListener& data); - virtual void OnActivityStarted(int32_t application_key); - virtual void OnActivityEnded(int32_t application_key); + public: + StreamerListener(MediaManager& media_manager); + ~StreamerListener(); + virtual void OnDataReceived(int32_t application_key, + const DataForListener& data); + virtual void OnErrorReceived(int32_t application_key, + const DataForListener& data); + virtual void OnActivityStarted(int32_t application_key); + virtual void OnActivityEnded(int32_t application_key); - private: - int32_t current_application_; - media_manager::MediaManager& media_manager_; - DISALLOW_COPY_AND_ASSIGN(StreamerListener); + private: + int32_t current_application_; + media_manager::MediaManager& media_manager_; + DISALLOW_COPY_AND_ASSIGN(StreamerListener); }; } // namespace media_manager diff --git a/src/components/media_manager/include/media_manager/video/file_video_streamer_adapter.h b/src/components/media_manager/include/media_manager/video/file_video_streamer_adapter.h index 13bb76ecaa..1677b5ad34 100644 --- a/src/components/media_manager/include/media_manager/video/file_video_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/video/file_video_streamer_adapter.h @@ -39,9 +39,8 @@ namespace media_manager { class FileVideoStreamerAdapter : public FileStreamerAdapter { public: - FileVideoStreamerAdapter( - const std::string& video_stream_file, - const std::string& app_storage_folder); + FileVideoStreamerAdapter(const std::string& video_stream_file, + const std::string& app_storage_folder); ~FileVideoStreamerAdapter(); }; diff --git a/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h b/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h index b961cad026..3bf5723572 100644 --- a/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/video/pipe_video_streamer_adapter.h @@ -39,9 +39,8 @@ namespace media_manager { class PipeVideoStreamerAdapter : public PipeStreamerAdapter { public: - PipeVideoStreamerAdapter( - const std::string& named_video_pipe_path, - const std::string& app_storage_folder); + PipeVideoStreamerAdapter(const std::string& named_video_pipe_path, + const std::string& app_storage_folder); ~PipeVideoStreamerAdapter(); }; diff --git a/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h b/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h index 04c5aa5cf7..ad5739bd5f 100644 --- a/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h +++ b/src/components/media_manager/include/media_manager/video/socket_video_streamer_adapter.h @@ -42,8 +42,8 @@ namespace media_manager { class SocketVideoStreamerAdapter : public SocketStreamerAdapter { public: - SocketVideoStreamerAdapter( - const std::string& server_address, uint16_t video_streaming_port); + SocketVideoStreamerAdapter(const std::string& server_address, + uint16_t video_streaming_port); virtual ~SocketVideoStreamerAdapter(); }; diff --git a/src/components/media_manager/src/audio/file_audio_streamer_adapter.cc b/src/components/media_manager/src/audio/file_audio_streamer_adapter.cc index 26c1c2f8e1..f632fa81af 100644 --- a/src/components/media_manager/src/audio/file_audio_streamer_adapter.cc +++ b/src/components/media_manager/src/audio/file_audio_streamer_adapter.cc @@ -35,12 +35,9 @@ namespace media_manager { FileAudioStreamerAdapter::FileAudioStreamerAdapter( - const std::string& audio_stream_file, - const std::string& app_storage_folder) - : FileStreamerAdapter(audio_stream_file, app_storage_folder) { -} + const std::string& audio_stream_file, const std::string& app_storage_folder) + : FileStreamerAdapter(audio_stream_file, app_storage_folder) {} -FileAudioStreamerAdapter::~FileAudioStreamerAdapter() { -} +FileAudioStreamerAdapter::~FileAudioStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc b/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc index 4a2f9ff618..d9735fcbbc 100644 --- a/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc +++ b/src/components/media_manager/src/audio/from_mic_recorder_adapter.cc @@ -41,12 +41,10 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManager") FromMicRecorderAdapter::FromMicRecorderAdapter() - : recorder_thread_(NULL) - , output_file_("default_recorded_audio.wav") - , kDefaultDuration(1000) - , duration_(kDefaultDuration) { - -} + : recorder_thread_(NULL) + , output_file_("default_recorded_audio.wav") + , kDefaultDuration(1000) + , duration_(kDefaultDuration) {} FromMicRecorderAdapter::~FromMicRecorderAdapter() { LOG4CXX_AUTO_TRACE(logger_); @@ -60,18 +58,16 @@ FromMicRecorderAdapter::~FromMicRecorderAdapter() { void FromMicRecorderAdapter::StartActivity(int32_t application_key) { LOG4CXX_DEBUG(logger_, "Start with app " << application_key); if (application_key == current_application_) { - LOG4CXX_WARN(logger_, "Running recording from mic for " - << current_application_); + LOG4CXX_WARN(logger_, + "Running recording from mic for " << current_application_); return; } -// Todd: No gstreamer recorder thread + // Todd: No gstreamer recorder thread if (!recorder_thread_) { FromMicToFileRecorderThread* thread_delegate = - new FromMicToFileRecorderThread( - output_file_, duration_); - recorder_thread_ = threads::CreateThread("MicrophoneRec", - thread_delegate); + new FromMicToFileRecorderThread(output_file_, duration_); + recorder_thread_ = threads::CreateThread("MicrophoneRec", thread_delegate); } if (NULL != recorder_thread_) { @@ -81,11 +77,11 @@ void FromMicRecorderAdapter::StartActivity(int32_t application_key) { } void FromMicRecorderAdapter::StopActivity(int32_t application_key) { - LOG4CXX_INFO(logger_, "FromMicRecorderAdapter::StopActivity " - << application_key); + LOG4CXX_INFO(logger_, + "FromMicRecorderAdapter::StopActivity " << application_key); if (application_key != current_application_) { - LOG4CXX_WARN(logger_, "Running activity on other app key " - << current_application_); + LOG4CXX_WARN(logger_, + "Running activity on other app key " << current_application_); return; } diff --git a/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc b/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc index 7e155fcb21..0239795d75 100644 --- a/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc +++ b/src/components/media_manager/src/audio/from_mic_to_file_recorder_thread.cc @@ -42,14 +42,14 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManager") GMainLoop* FromMicToFileRecorderThread::loop = NULL; FromMicToFileRecorderThread::FromMicToFileRecorderThread( - const std::string& output_file, int32_t duration) - : threads::ThreadDelegate(), - argc_(5), - argv_(NULL), - oKey_("-o"), - tKey_("-t"), - sleepThread_(NULL), - outputFileName_(output_file) { + const std::string& output_file, int32_t duration) + : threads::ThreadDelegate() + , argc_(5) + , argv_(NULL) + , oKey_("-o") + , tKey_("-t") + , sleepThread_(NULL) + , outputFileName_(output_file) { LOG4CXX_AUTO_TRACE(logger_); set_record_duration(duration); } @@ -64,7 +64,7 @@ FromMicToFileRecorderThread::~FromMicToFileRecorderThread() { } void FromMicToFileRecorderThread::set_output_file( - const std::string& output_file) { + const std::string& output_file) { LOG4CXX_AUTO_TRACE(logger_); outputFileName_ = output_file; } @@ -80,7 +80,7 @@ void FromMicToFileRecorderThread::set_record_duration(int32_t duration) { void FromMicToFileRecorderThread::initArgs() { LOG4CXX_AUTO_TRACE(logger_); - argv_ = new gchar*[argc_]; + argv_ = new gchar* [argc_]; argv_[0] = new gchar[14]; argv_[1] = new gchar[3]; @@ -114,20 +114,29 @@ void FromMicToFileRecorderThread::threadMain() { gint duration = -1; GOptionContext* context = NULL; GError* err = NULL; - GOptionEntry entries[] = { { - "device", 'd', 0, G_OPTION_ARG_FILENAME, &device, - "device file (Default: hw:0,0)", "SRC" - }, { - "output", 'o', 0, G_OPTION_ARG_FILENAME, &outfile, - "save output of the stream to DEST", "DEST" - }, { - "duration", 't', 0, G_OPTION_ARG_INT, &duration, - "length of time in seconds to capture", "int32_t" - }, { - NULL - } - }; -#ifndef GLIB_VERSION_2_32 // g_thread_init() does nothing since 2.32 + GOptionEntry entries[] = {{"device", + 'd', + 0, + G_OPTION_ARG_FILENAME, + &device, + "device file (Default: hw:0,0)", + "SRC"}, + {"output", + 'o', + 0, + G_OPTION_ARG_FILENAME, + &outfile, + "save output of the stream to DEST", + "DEST"}, + {"duration", + 't', + 0, + G_OPTION_ARG_INT, + &duration, + "length of time in seconds to capture", + "int32_t"}, + {NULL}}; +#ifndef GLIB_VERSION_2_32 // g_thread_init() does nothing since 2.32 if (!g_thread_supported()) { g_thread_init(NULL); } @@ -156,10 +165,10 @@ void FromMicToFileRecorderThread::threadMain() { // Set up error handling bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); - gst_bus_add_watch(bus, - reinterpret_cast<int32_t (*)(_GstBus*, _GstMessage*, void*)> - (recvmsg), - NULL); + gst_bus_add_watch( + bus, + reinterpret_cast<int32_t (*)(_GstBus*, _GstMessage*, void*)>(recvmsg), + NULL); gst_object_unref(bus); // Create all of the elements to be added to the pipeline @@ -199,7 +208,7 @@ void FromMicToFileRecorderThread::threadMain() { g_option_context_free(context); if (argv_) { - delete [] argv_; + delete[] argv_; argv_ = NULL; } return; @@ -213,7 +222,8 @@ void FromMicToFileRecorderThread::threadMain() { timeout.pipeline = pipeline; timeout.duration = duration; - sleepThread_ = threads::CreateThread("SleepThread", new SleepThreadDelegate(timeout)); + sleepThread_ = + threads::CreateThread("SleepThread", new SleepThreadDelegate(timeout)); sleepThread_->start(); } @@ -229,18 +239,16 @@ void FromMicToFileRecorderThread::threadMain() { g_option_context_free(context); if (argv_) { - delete [] argv_; + delete[] argv_; argv_ = NULL; } loop = NULL; } -FromMicToFileRecorderThread::SleepThreadDelegate::SleepThreadDelegate(GstTimeout - timeout) - : threads::ThreadDelegate(), - timeout_(timeout) { -} +FromMicToFileRecorderThread::SleepThreadDelegate::SleepThreadDelegate( + GstTimeout timeout) + : threads::ThreadDelegate(), timeout_(timeout) {} void FromMicToFileRecorderThread::SleepThreadDelegate::threadMain() { LOG4CXX_TRACE(logger_, "Sleep for " << timeout_.duration << " seconds"); diff --git a/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc b/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc index 9791fbd910..2220c08b26 100644 --- a/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc +++ b/src/components/media_manager/src/audio/pipe_audio_streamer_adapter.cc @@ -37,10 +37,8 @@ namespace media_manager { PipeAudioStreamerAdapter::PipeAudioStreamerAdapter( const std::string& named_audio_pipe_path, const std::string& app_storage_folder) - : PipeStreamerAdapter(named_audio_pipe_path, app_storage_folder) { -} + : PipeStreamerAdapter(named_audio_pipe_path, app_storage_folder) {} -PipeAudioStreamerAdapter::~PipeAudioStreamerAdapter() { -} +PipeAudioStreamerAdapter::~PipeAudioStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc b/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc index 465e0b133e..429fab01b3 100644 --- a/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc +++ b/src/components/media_manager/src/audio/socket_audio_streamer_adapter.cc @@ -34,21 +34,20 @@ #include "media_manager/audio/socket_audio_streamer_adapter.h" namespace { - const std::string kHeader = "HTTP/1.1 200 OK\r\n" - "Connection: Keep-Alive\r\n" - "Keep-Alive: timeout=15, max=300\r\n" - "Server: SDL\r\n" - "Content-Type: video/mp4\r\n\r\n"; +const std::string kHeader = + "HTTP/1.1 200 OK\r\n" + "Connection: Keep-Alive\r\n" + "Keep-Alive: timeout=15, max=300\r\n" + "Server: SDL\r\n" + "Content-Type: video/mp4\r\n\r\n"; } namespace media_manager { SocketAudioStreamerAdapter::SocketAudioStreamerAdapter( const std::string& server_address, uint16_t audio_streaming_port) - : SocketStreamerAdapter(server_address, audio_streaming_port, kHeader) { -} + : SocketStreamerAdapter(server_address, audio_streaming_port, kHeader) {} -SocketAudioStreamerAdapter::~SocketAudioStreamerAdapter() { -} +SocketAudioStreamerAdapter::~SocketAudioStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/file_streamer_adapter.cc b/src/components/media_manager/src/file_streamer_adapter.cc index 6105fe0356..3418f7d963 100644 --- a/src/components/media_manager/src/file_streamer_adapter.cc +++ b/src/components/media_manager/src/file_streamer_adapter.cc @@ -38,26 +38,22 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "FileStreamerAdapter") -FileStreamerAdapter::FileStreamerAdapter( - const std::string& file_name, const std::string& app_storage_folder) - : StreamerAdapter(new FileStreamer(this, file_name, app_storage_folder)) { -} +FileStreamerAdapter::FileStreamerAdapter(const std::string& file_name, + const std::string& app_storage_folder) + : StreamerAdapter(new FileStreamer(this, file_name, app_storage_folder)) {} -FileStreamerAdapter::~FileStreamerAdapter() { -} +FileStreamerAdapter::~FileStreamerAdapter() {} FileStreamerAdapter::FileStreamer::FileStreamer( FileStreamerAdapter* const adapter, const std::string& file_name, const std::string& app_storage_folder) - : Streamer(adapter), - file_name_(file_name), - app_storage_folder_(app_storage_folder), - file_stream_(NULL) { -} + : Streamer(adapter) + , file_name_(file_name) + , app_storage_folder_(app_storage_folder) + , file_stream_(NULL) {} -FileStreamerAdapter::FileStreamer::~FileStreamer() { -} +FileStreamerAdapter::FileStreamer::~FileStreamer() {} bool FileStreamerAdapter::FileStreamer::Connect() { LOG4CXX_AUTO_TRACE(logger_); @@ -68,13 +64,11 @@ bool FileStreamerAdapter::FileStreamer::Connect() { file_stream_ = file_system::Open(file_name_); if (!file_stream_) { - LOG4CXX_ERROR(logger_, "Cannot open file stream " - << file_name_); + LOG4CXX_ERROR(logger_, "Cannot open file stream " << file_name_); return false; } - LOG4CXX_INFO(logger_, "File " << file_name_ - << " was successfuly opened"); + LOG4CXX_INFO(logger_, "File " << file_name_ << " was successfuly opened"); return true; } @@ -92,15 +86,12 @@ bool FileStreamerAdapter::FileStreamer::Send( protocol_handler::RawMessagePtr msg) { LOG4CXX_AUTO_TRACE(logger_); if (!file_stream_) { - LOG4CXX_ERROR(logger_, "File stream not found " - << file_name_); + LOG4CXX_ERROR(logger_, "File stream not found " << file_name_); return false; } - if (!file_system::Write(file_stream_, msg->data(), - msg->data_size())) { - LOG4CXX_ERROR(logger_, "Failed writing data to file " - << file_name_); + if (!file_system::Write(file_stream_, msg->data(), msg->data_size())) { + LOG4CXX_ERROR(logger_, "Failed writing data to file " << file_name_); return false; } diff --git a/src/components/media_manager/src/media_adapter_impl.cc b/src/components/media_manager/src/media_adapter_impl.cc index 7d8cfb9059..cf15a7af97 100644 --- a/src/components/media_manager/src/media_adapter_impl.cc +++ b/src/components/media_manager/src/media_adapter_impl.cc @@ -37,9 +37,7 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManager") -MediaAdapterImpl::MediaAdapterImpl() - : current_application_(0) { -} +MediaAdapterImpl::MediaAdapterImpl() : current_application_(0) {} MediaAdapterImpl::~MediaAdapterImpl() { media_listeners_.clear(); diff --git a/src/components/media_manager/src/pipe_streamer_adapter.cc b/src/components/media_manager/src/pipe_streamer_adapter.cc index 07ca407386..8bf14a546e 100644 --- a/src/components/media_manager/src/pipe_streamer_adapter.cc +++ b/src/components/media_manager/src/pipe_streamer_adapter.cc @@ -42,57 +42,55 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "PipeStreamerAdapter") -PipeStreamerAdapter::PipeStreamerAdapter( - const std::string& named_pipe_path, const std::string& app_storage_folder) - : StreamerAdapter(new PipeStreamer(this, named_pipe_path, app_storage_folder)) { -} +PipeStreamerAdapter::PipeStreamerAdapter(const std::string& named_pipe_path, + const std::string& app_storage_folder) + : StreamerAdapter( + new PipeStreamer(this, named_pipe_path, app_storage_folder)) {} -PipeStreamerAdapter::~PipeStreamerAdapter() { -} +PipeStreamerAdapter::~PipeStreamerAdapter() {} PipeStreamerAdapter::PipeStreamer::PipeStreamer( PipeStreamerAdapter* const adapter, const std::string& named_pipe_path, const std::string& app_storage_folder) - : Streamer(adapter), - named_pipe_path_(named_pipe_path), - app_storage_folder_(app_storage_folder), - pipe_fd_(0) { - if (!file_system::CreateDirectoryRecursively(app_storage_folder_)) { - LOG4CXX_ERROR(logger_, "Cannot create app storage folder " - << app_storage_folder_ ); - return; - } - if ((mkfifo(named_pipe_path_.c_str(), - S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) < 0) - && (errno != EEXIST)) { - LOG4CXX_ERROR(logger_, "Cannot create pipe " << named_pipe_path_); - } else { - LOG4CXX_INFO(logger_, "Pipe " << named_pipe_path_ - << " was successfully created"); - } + : Streamer(adapter) + , named_pipe_path_(named_pipe_path) + , app_storage_folder_(app_storage_folder) + , pipe_fd_(0) { + if (!file_system::CreateDirectoryRecursively(app_storage_folder_)) { + LOG4CXX_ERROR(logger_, + "Cannot create app storage folder " << app_storage_folder_); + return; + } + if ((mkfifo(named_pipe_path_.c_str(), S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) < + 0) && + (errno != EEXIST)) { + LOG4CXX_ERROR(logger_, "Cannot create pipe " << named_pipe_path_); + } else { + LOG4CXX_INFO(logger_, + "Pipe " << named_pipe_path_ << " was successfully created"); + } } PipeStreamerAdapter::PipeStreamer::~PipeStreamer() { - if (0 == unlink(named_pipe_path_.c_str()) ) { + if (0 == unlink(named_pipe_path_.c_str())) { LOG4CXX_INFO(logger_, "Pipe " << named_pipe_path_ << " was removed"); } else { LOG4CXX_ERROR(logger_, "Error removing pipe " << named_pipe_path_); } } - bool PipeStreamerAdapter::PipeStreamer::Connect() { LOG4CXX_AUTO_TRACE(logger_); pipe_fd_ = open(named_pipe_path_.c_str(), O_RDWR, 0); if (-1 == pipe_fd_) { - LOG4CXX_ERROR(logger_, "Cannot open pipe for writing " - << named_pipe_path_); + LOG4CXX_ERROR(logger_, "Cannot open pipe for writing " << named_pipe_path_); return false; } - LOG4CXX_INFO(logger_, "Pipe " << named_pipe_path_ - << " was successfuly opened for writing"); + LOG4CXX_INFO(logger_, + "Pipe " << named_pipe_path_ + << " was successfuly opened for writing"); return true; } @@ -110,14 +108,13 @@ bool PipeStreamerAdapter::PipeStreamer::Send( LOG4CXX_AUTO_TRACE(logger_); ssize_t ret = write(pipe_fd_, msg->data(), msg->data_size()); if (-1 == ret) { - LOG4CXX_ERROR(logger_, "Failed writing data to pipe " - << named_pipe_path_); + LOG4CXX_ERROR(logger_, "Failed writing data to pipe " << named_pipe_path_); return false; } if (static_cast<uint32_t>(ret) != msg->data_size()) { - LOG4CXX_WARN(logger_, "Couldn't write all the data to pipe " - << named_pipe_path_); + LOG4CXX_WARN(logger_, + "Couldn't write all the data to pipe " << named_pipe_path_); } LOG4CXX_INFO(logger_, "Streamer::sent " << msg->data_size()); diff --git a/src/components/media_manager/src/socket_streamer_adapter.cc b/src/components/media_manager/src/socket_streamer_adapter.cc index 25164de30b..2bb0fe10ec 100644 --- a/src/components/media_manager/src/socket_streamer_adapter.cc +++ b/src/components/media_manager/src/socket_streamer_adapter.cc @@ -44,32 +44,27 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger, "SocketStreamerAdapter") -SocketStreamerAdapter::SocketStreamerAdapter( - const std::string& ip, - const uint16_t port, - const std::string& header) - : StreamerAdapter(new SocketStreamer(this, ip, port, header)) { -} +SocketStreamerAdapter::SocketStreamerAdapter(const std::string& ip, + const uint16_t port, + const std::string& header) + : StreamerAdapter(new SocketStreamer(this, ip, port, header)) {} -SocketStreamerAdapter::~SocketStreamerAdapter() { -} +SocketStreamerAdapter::~SocketStreamerAdapter() {} SocketStreamerAdapter::SocketStreamer::SocketStreamer( SocketStreamerAdapter* const adapter, const std::string& ip, const uint16_t port, const std::string& header) - : Streamer(adapter), - ip_(ip), - port_(port), - header_(header), - socket_fd_(0), - send_socket_fd_(0), - is_first_frame_(true) { -} + : Streamer(adapter) + , ip_(ip) + , port_(port) + , header_(header) + , socket_fd_(0) + , send_socket_fd_(0) + , is_first_frame_(true) {} -SocketStreamerAdapter::SocketStreamer::~SocketStreamer() { -} +SocketStreamerAdapter::SocketStreamer::~SocketStreamer() {} bool SocketStreamerAdapter::SocketStreamer::Connect() { LOG4CXX_AUTO_TRACE(logger); @@ -80,13 +75,13 @@ bool SocketStreamerAdapter::SocketStreamer::Connect() { } int32_t optval = 1; - if (-1 == setsockopt(socket_fd_, SOL_SOCKET, SO_REUSEADDR, - &optval, sizeof optval)) { + if (-1 == setsockopt( + socket_fd_, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval)) { LOG4CXX_ERROR(logger, "Unable to set sockopt"); return false; } - struct sockaddr_in serv_addr_ = { 0 }; + struct sockaddr_in serv_addr_ = {0}; serv_addr_.sin_addr.s_addr = inet_addr(ip_.c_str()); serv_addr_.sin_family = AF_INET; serv_addr_.sin_port = htons(port_); @@ -128,8 +123,7 @@ bool SocketStreamerAdapter::SocketStreamer::Send( LOG4CXX_AUTO_TRACE(logger); ssize_t ret; if (is_first_frame_) { - ret = send(send_socket_fd_, header_.c_str(), - header_.size(), MSG_NOSIGNAL); + ret = send(send_socket_fd_, header_.c_str(), header_.size(), MSG_NOSIGNAL); if (static_cast<uint32_t>(ret) != header_.size()) { LOG4CXX_ERROR(logger, "Unable to send data to socket"); return false; @@ -137,16 +131,15 @@ bool SocketStreamerAdapter::SocketStreamer::Send( is_first_frame_ = false; } - ret = send(send_socket_fd_, msg->data(), - msg->data_size(), MSG_NOSIGNAL); + ret = send(send_socket_fd_, msg->data(), msg->data_size(), MSG_NOSIGNAL); if (-1 == ret) { LOG4CXX_ERROR(logger, "Unable to send data to socket"); return false; } if (static_cast<uint32_t>(ret) != msg->data_size()) { - LOG4CXX_WARN(logger, "Couldn't send all the data to socket " - << send_socket_fd_); + LOG4CXX_WARN(logger, + "Couldn't send all the data to socket " << send_socket_fd_); } LOG4CXX_INFO(logger, "Streamer::sent " << msg->data_size()); diff --git a/src/components/media_manager/src/streamer_adapter.cc b/src/components/media_manager/src/streamer_adapter.cc index 3246744ba9..44f46d92b2 100644 --- a/src/components/media_manager/src/streamer_adapter.cc +++ b/src/components/media_manager/src/streamer_adapter.cc @@ -38,10 +38,7 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger, "StreamerAdapter") StreamerAdapter::StreamerAdapter(Streamer* const streamer) - : current_application_(0), - messages_(), - streamer_(streamer), - thread_(NULL) { + : current_application_(0), messages_(), streamer_(streamer), thread_(NULL) { DCHECK(streamer_); thread_ = threads::CreateThread("StreamerAdapter", streamer_); } @@ -55,8 +52,9 @@ StreamerAdapter::~StreamerAdapter() { void StreamerAdapter::StartActivity(int32_t application_key) { LOG4CXX_AUTO_TRACE(logger); if (is_app_performing_activity(application_key)) { - LOG4CXX_WARN(logger, "Activity for application: " - << application_key << " has been already started"); + LOG4CXX_WARN(logger, + "Activity for application: " << application_key + << " has been already started"); return; } messages_.Reset(); @@ -76,8 +74,9 @@ void StreamerAdapter::StartActivity(int32_t application_key) { void StreamerAdapter::StopActivity(int32_t application_key) { LOG4CXX_AUTO_TRACE(logger); if (!is_app_performing_activity(application_key)) { - LOG4CXX_WARN(logger, "Activity for application: " - << application_key << " has not been started"); + LOG4CXX_WARN(logger, + "Activity for application: " << application_key + << " has not been started"); return; } @@ -96,8 +95,9 @@ void StreamerAdapter::SendData(int32_t application_key, const ::protocol_handler::RawMessagePtr msg) { LOG4CXX_AUTO_TRACE(logger); if (!is_app_performing_activity(application_key)) { - LOG4CXX_ERROR(logger, "Activity for application: " - << application_key << " has not been started"); + LOG4CXX_ERROR(logger, + "Activity for application: " << application_key + << " has not been started"); return; } messages_.push(msg); @@ -109,13 +109,11 @@ bool StreamerAdapter::is_app_performing_activity( } StreamerAdapter::Streamer::Streamer(StreamerAdapter* const adapter) - : stop_flag_(false), - adapter_(adapter) { + : stop_flag_(false), adapter_(adapter) { DCHECK(adapter_); } -StreamerAdapter::Streamer::~Streamer() { -} +StreamerAdapter::Streamer::~Streamer() {} void StreamerAdapter::Streamer::threadMain() { LOG4CXX_AUTO_TRACE(logger); @@ -148,11 +146,12 @@ void StreamerAdapter::Streamer::threadMain() { static int32_t messages_for_session = 0; ++messages_for_session; - LOG4CXX_DEBUG(logger, "Handling map streaming message. This is " - << messages_for_session << " message for " - << adapter_->current_application_); - std::set<MediaListenerPtr>::iterator it = adapter_->media_listeners_ - .begin(); + LOG4CXX_DEBUG(logger, + "Handling map streaming message. This is " + << messages_for_session << " message for " + << adapter_->current_application_); + std::set<MediaListenerPtr>::iterator it = + adapter_->media_listeners_.begin(); for (; adapter_->media_listeners_.end() != it; ++it) { (*it)->OnDataReceived(adapter_->current_application_, messages_for_session); diff --git a/src/components/media_manager/src/streamer_listener.cc b/src/components/media_manager/src/streamer_listener.cc index 97f3c5300f..2d6c3bc984 100644 --- a/src/components/media_manager/src/streamer_listener.cc +++ b/src/components/media_manager/src/streamer_listener.cc @@ -39,31 +39,27 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "MediaManager") StreamerListener::StreamerListener(MediaManager& media_manager) - : current_application_(0), - media_manager_(media_manager) { -} + : current_application_(0), media_manager_(media_manager) {} StreamerListener::~StreamerListener() { OnActivityEnded(current_application_); } -void StreamerListener::OnDataReceived( - int32_t application_key, - const DataForListener& data) { +void StreamerListener::OnDataReceived(int32_t application_key, + const DataForListener& data) { media_manager_.FramesProcessed(application_key, data); } -void StreamerListener::OnErrorReceived( - int32_t application_key, - const DataForListener& data) { +void StreamerListener::OnErrorReceived(int32_t application_key, + const DataForListener& data) { LOG4CXX_AUTO_TRACE(logger_); } void StreamerListener::OnActivityStarted(int32_t application_key) { LOG4CXX_AUTO_TRACE(logger_); if (current_application_ == application_key) { - LOG4CXX_WARN(logger_, "Already performing activity for " - << application_key); + LOG4CXX_WARN(logger_, + "Already performing activity for " << application_key); return; } current_application_ = application_key; @@ -72,8 +68,8 @@ void StreamerListener::OnActivityStarted(int32_t application_key) { void StreamerListener::OnActivityEnded(int32_t application_key) { LOG4CXX_AUTO_TRACE(logger_); if (current_application_ != application_key) { - LOG4CXX_WARN(logger_, "Already not performing activity for " - << application_key); + LOG4CXX_WARN(logger_, + "Already not performing activity for " << application_key); return; } current_application_ = 0; diff --git a/src/components/media_manager/src/video/file_video_streamer_adapter.cc b/src/components/media_manager/src/video/file_video_streamer_adapter.cc index 8674a406fb..f9e4d58a0e 100644 --- a/src/components/media_manager/src/video/file_video_streamer_adapter.cc +++ b/src/components/media_manager/src/video/file_video_streamer_adapter.cc @@ -35,12 +35,9 @@ namespace media_manager { FileVideoStreamerAdapter::FileVideoStreamerAdapter( - const std::string& video_stream_file, - const std::string& app_storage_folder) - : FileStreamerAdapter(video_stream_file, app_storage_folder) { -} + const std::string& video_stream_file, const std::string& app_storage_folder) + : FileStreamerAdapter(video_stream_file, app_storage_folder) {} -FileVideoStreamerAdapter::~FileVideoStreamerAdapter() { -} +FileVideoStreamerAdapter::~FileVideoStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc b/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc index 0ced20f9e9..cf1a6fb347 100644 --- a/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc +++ b/src/components/media_manager/src/video/pipe_video_streamer_adapter.cc @@ -37,10 +37,8 @@ namespace media_manager { PipeVideoStreamerAdapter::PipeVideoStreamerAdapter( const std::string& named_video_pipe_path, const std::string& app_storage_folder) - : PipeStreamerAdapter(named_video_pipe_path, app_storage_folder) { -} + : PipeStreamerAdapter(named_video_pipe_path, app_storage_folder) {} -PipeVideoStreamerAdapter::~PipeVideoStreamerAdapter() { -} +PipeVideoStreamerAdapter::~PipeVideoStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/video/socket_video_streamer_adapter.cc b/src/components/media_manager/src/video/socket_video_streamer_adapter.cc index a6cf14e032..12ae93da69 100644 --- a/src/components/media_manager/src/video/socket_video_streamer_adapter.cc +++ b/src/components/media_manager/src/video/socket_video_streamer_adapter.cc @@ -33,19 +33,20 @@ #include "media_manager/video/socket_video_streamer_adapter.h" namespace { - const std::string kHeader = "HTTP/1.1 200 OK\r\n" - "Connection: Keep-Alive\r\n" - "Keep-Alive: timeout=15, max=300\r\n" - "Server: SDL\r\n" - "Content-Type: video/mp4\r\n\r\n"; +const std::string kHeader = + "HTTP/1.1 200 OK\r\n" + "Connection: Keep-Alive\r\n" + "Keep-Alive: timeout=15, max=300\r\n" + "Server: SDL\r\n" + "Content-Type: video/mp4\r\n\r\n"; } namespace media_manager { -SocketVideoStreamerAdapter::SocketVideoStreamerAdapter(const std::string& server_address, uint16_t video_streaming_port) +SocketVideoStreamerAdapter::SocketVideoStreamerAdapter( + const std::string& server_address, uint16_t video_streaming_port) : SocketStreamerAdapter(server_address, video_streaming_port, kHeader) {} -SocketVideoStreamerAdapter::~SocketVideoStreamerAdapter() { -} +SocketVideoStreamerAdapter::~SocketVideoStreamerAdapter() {} } // namespace media_manager diff --git a/src/components/media_manager/src/video/video_stream_to_file_adapter.cc b/src/components/media_manager/src/video/video_stream_to_file_adapter.cc index 8ca547ed10..f41954b117 100644 --- a/src/components/media_manager/src/video/video_stream_to_file_adapter.cc +++ b/src/components/media_manager/src/video/video_stream_to_file_adapter.cc @@ -40,16 +40,15 @@ namespace media_manager { CREATE_LOGGERPTR_GLOBAL(logger, "VideoStreamToFileAdapter") VideoStreamToFileAdapter::VideoStreamToFileAdapter(const std::string& file_name) - : file_name_(file_name), - is_ready_(false), - thread_(threads::CreateThread("VideoStreamer", - new Streamer(this))) { + : file_name_(file_name) + , is_ready_(false) + , thread_(threads::CreateThread("VideoStreamer", new Streamer(this))) { Init(); } VideoStreamToFileAdapter::~VideoStreamToFileAdapter() { LOG4CXX_AUTO_TRACE(logger); - if ((0 != current_application_ ) && (is_ready_)) { + if ((0 != current_application_) && (is_ready_)) { StopActivity(current_application_); } thread_->join(); @@ -68,10 +67,9 @@ void VideoStreamToFileAdapter::Init() { } void VideoStreamToFileAdapter::SendData( - int32_t application_key, - const ::protocol_handler::RawMessagePtr message) { - LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::SendData " - << application_key); + int32_t application_key, const ::protocol_handler::RawMessagePtr message) { + LOG4CXX_INFO(logger, + "VideoStreamToFileAdapter::SendData " << application_key); if (application_key != current_application_) { LOG4CXX_WARN(logger, "Wrong application " << application_key); @@ -84,11 +82,11 @@ void VideoStreamToFileAdapter::SendData( } void VideoStreamToFileAdapter::StartActivity(int32_t application_key) { - LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::StartActivity " - << application_key); + LOG4CXX_INFO(logger, + "VideoStreamToFileAdapter::StartActivity " << application_key); if (application_key == current_application_) { - LOG4CXX_WARN(logger, "Already running video stream to file for " - << application_key); + LOG4CXX_WARN( + logger, "Already running video stream to file for " << application_key); return; } @@ -103,11 +101,11 @@ void VideoStreamToFileAdapter::StartActivity(int32_t application_key) { } void VideoStreamToFileAdapter::StopActivity(int32_t application_key) { - LOG4CXX_INFO(logger, "VideoStreamToFileAdapter::StopActivity " - << application_key); + LOG4CXX_INFO(logger, + "VideoStreamToFileAdapter::StopActivity " << application_key); if (application_key != current_application_) { - LOG4CXX_WARN(logger, "Performing activity for another key " - << current_application_); + LOG4CXX_WARN( + logger, "Performing activity for another key " << current_application_); return; } @@ -121,17 +119,13 @@ void VideoStreamToFileAdapter::StopActivity(int32_t application_key) { } } -bool VideoStreamToFileAdapter::is_app_performing_activity(int32_t - application_key) { +bool VideoStreamToFileAdapter::is_app_performing_activity( + int32_t application_key) { return (application_key == current_application_ && is_ready_); } -VideoStreamToFileAdapter::Streamer::Streamer( - VideoStreamToFileAdapter* server) - : server_(server), - stop_flag_(false), - file_stream_(NULL) { -} +VideoStreamToFileAdapter::Streamer::Streamer(VideoStreamToFileAdapter* server) + : server_(server), stop_flag_(false), file_stream_(NULL) {} VideoStreamToFileAdapter::Streamer::~Streamer() { server_ = NULL; @@ -186,7 +180,7 @@ void VideoStreamToFileAdapter::Streamer::open() { file_stream_ = file_system::Open(server_->file_name_); if (!file_stream_) { - LOG4CXX_WARN(logger, "Can't open file stream! " << server_->file_name_); + LOG4CXX_WARN(logger, "Can't open file stream! " << server_->file_name_); } else { LOG4CXX_INFO(logger, "file_stream_ opened :" << file_stream_); } diff --git a/src/components/media_manager/test/include/media_adapter_impl_mock.h b/src/components/media_manager/test/include/media_adapter_impl_mock.h index 7a820cf566..ff9c2fec9f 100644 --- a/src/components/media_manager/test/include/media_adapter_impl_mock.h +++ b/src/components/media_manager/test/include/media_adapter_impl_mock.h @@ -53,18 +53,15 @@ typedef utils::SharedPtr<MediaAdapterListener> MediaListenerPtr; class MockMediaAdapterImpl : public ::media_manager::MediaAdapterImpl { public: MOCK_METHOD1(AddListener, - void(const utils::SharedPtr<MediaAdapterListener>&)); + void(const utils::SharedPtr<MediaAdapterListener>&)); MOCK_METHOD1(RemoveListener, - void(const utils::SharedPtr<MediaAdapterListener> &)); + void(const utils::SharedPtr<MediaAdapterListener>&)); MOCK_METHOD2(SendData, - void(int32_t application_key, - const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD1(StartActivity, - void(int32_t application_key)); - MOCK_METHOD1(StopActivity, - void(int32_t application_key)); - MOCK_CONST_METHOD1(is_app_performing_activity, - bool(int32_t application_key)); + void(int32_t application_key, + const ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD1(StartActivity, void(int32_t application_key)); + MOCK_METHOD1(StopActivity, void(int32_t application_key)); + MOCK_CONST_METHOD1(is_app_performing_activity, bool(int32_t application_key)); }; } // namespace media_manager_test diff --git a/src/components/media_manager/test/include/media_adapter_listener_mock.h b/src/components/media_manager/test/include/media_adapter_listener_mock.h index 8a29b3b3e7..2ba64479b6 100644 --- a/src/components/media_manager/test/include/media_adapter_listener_mock.h +++ b/src/components/media_manager/test/include/media_adapter_listener_mock.h @@ -46,18 +46,13 @@ namespace media_manager_test { class MockMediaAdapterListener : public ::media_manager::MediaAdapterListener { public: MOCK_METHOD2(OnDataReceived, - void(int32_t application_key, - const int32_t& data)); - MOCK_METHOD1(OnActivityStarted, - void(int32_t application_key)); - MOCK_METHOD1(OnActivityEnded, - void(int32_t application_key)); + void(int32_t application_key, const int32_t& data)); + MOCK_METHOD1(OnActivityStarted, void(int32_t application_key)); + MOCK_METHOD1(OnActivityEnded, void(int32_t application_key)); MOCK_METHOD2(OnErrorReceived, - void(int32_t application_key, - const int32_t& data)); + void(int32_t application_key, const int32_t& data)); }; - } // namespace media_manager_test } // namespace components } // namespace test diff --git a/src/components/media_manager/test/include/media_adapter_mock.h b/src/components/media_manager/test/include/media_adapter_mock.h index 14782cdb1a..576a1a1a9f 100644 --- a/src/components/media_manager/test/include/media_adapter_mock.h +++ b/src/components/media_manager/test/include/media_adapter_mock.h @@ -47,17 +47,13 @@ namespace media_manager_test { class MockMediaAdapter : public ::media_manager::MediaAdapter { public: MOCK_METHOD2(SendData, - void(int32_t application_key, - const ::protocol_handler::RawMessagePtr message)); - MOCK_METHOD1(StartActivity, - void(int32_t application_key)); - MOCK_METHOD1(StopActivity, - void(int32_t application_key)); - MOCK_CONST_METHOD1(is_app_performing_activity, - bool(int32_t application_key)); + void(int32_t application_key, + const ::protocol_handler::RawMessagePtr message)); + MOCK_METHOD1(StartActivity, void(int32_t application_key)); + MOCK_METHOD1(StopActivity, void(int32_t application_key)); + MOCK_CONST_METHOD1(is_app_performing_activity, bool(int32_t application_key)); }; - } // namespace media_manager_test } // namespace components } // namespace test diff --git a/src/components/policy/src/policy/include/policy/cache_manager.h b/src/components/policy/src/policy/include/policy/cache_manager.h index d676d14e5b..3a46d395f3 100644 --- a/src/components/policy/src/policy/include/policy/cache_manager.h +++ b/src/components/policy/src/policy/include/policy/cache_manager.h @@ -123,7 +123,7 @@ class CacheManager : public CacheManagerInterface { * @param seconds Return value: array of 5 elements * @return bool Success of operation */ - virtual bool SecondsBetweenRetries(std::vector<int> &seconds); + virtual bool SecondsBetweenRetries(std::vector<int>& seconds); /** * @brief Get information about vehicle @@ -143,12 +143,13 @@ class CacheManager : public CacheManagerInterface { /** * @brief Get message text for displaying/pronouncing for user * dependent on language and context. - * @param msg_codes Context of message (Driver distraction, Grant permission etc) + * @param msg_codes Context of message (Driver distraction, Grant permission + * etc) * @param language Language of the message * @return Array of appropriate messages parameters */ std::vector<UserFriendlyMessage> GetUserFriendlyMsg( - const std::vector<std::string>& msg_codes, const std::string& language); + const std::vector<std::string>& msg_codes, const std::string& language); /** * @brief Get list of URLs related to particular service @@ -161,7 +162,8 @@ class CacheManager : public CacheManagerInterface { /** * @brief GetLockScreenIcon allows to obtain lock screen icon url; * - * @return url which point to the resourse where lock screen icon could be obtained. + * @return url which point to the resourse where lock screen icon could be + *obtained. */ virtual std::string GetLockScreenIconUrl() const; @@ -170,7 +172,8 @@ class CacheManager : public CacheManagerInterface { * depending on application priority. * @param priority Priority of application */ - virtual rpc::policy_table_interface_base::NumberOfNotificationsType GetNotificationsNumber(const std::string& priority); + virtual rpc::policy_table_interface_base::NumberOfNotificationsType + GetNotificationsNumber(const std::string& priority); /** * @brief Get priority for given application @@ -185,7 +188,7 @@ class CacheManager : public CacheManagerInterface { * @brief Initialized Policy Table (load) * @return bool Success of operation */ - bool Init(const std::string& file_name, const PolicySettings *settings); + bool Init(const std::string& file_name, const PolicySettings* settings); /** * @brief Get snapshot of Policy Table @@ -206,7 +209,8 @@ class CacheManager : public CacheManagerInterface { * @brief Gets list of appHMIType associated with mobile appID * @param container of appHMIType */ - virtual void GetHMIAppTypeAfterUpdate(std::map<std::string, StringArray>& app_hmi_types); + virtual void GetHMIAppTypeAfterUpdate( + std::map<std::string, StringArray>& app_hmi_types); /** * Gets flag updateRequired @@ -305,8 +309,7 @@ class CacheManager : public CacheManagerInterface { * not set * @return true, if succedeed, otherwise - false */ - bool GetDefaultHMI(const std::string& app_id, - std::string &default_hmi) const; + bool GetDefaultHMI(const std::string& app_id, std::string& default_hmi) const; /** * @brief Reset user consent for device data and applications permissions @@ -322,7 +325,7 @@ class CacheManager : public CacheManagerInterface { * @return true, if query was successfull, otherwise - false */ bool GetUserPermissionsForDevice(const std::string& device_id, - StringArray &consented_groups, + StringArray& consented_groups, StringArray& disallowed_groups) const; /** @@ -334,7 +337,7 @@ class CacheManager : public CacheManagerInterface { */ bool GetPermissionsForApp(const std::string& device_id, const std::string& app_id, - FunctionalIdType &group_types); + FunctionalIdType& group_types); /** * @brief Get device groups and preconsented groups from policies section @@ -343,7 +346,7 @@ class CacheManager : public CacheManagerInterface { * @return true, if query was successful, otherwise - false */ bool GetDeviceGroupsFromPolicies( - rpc::policy_table_interface_base::Strings &groups, + rpc::policy_table_interface_base::Strings& groups, rpc::policy_table_interface_base::Strings& preconsented_groups) const; /** @@ -456,7 +459,7 @@ class CacheManager : public CacheManagerInterface { * @return the count of unconsented groups */ int CountUnconsentedGroups(const std::string& policy_app_id, - const std::string& device_id); + const std::string& device_id); /** * @brief Gets functional group names and user_consent_prompts, if any @@ -478,7 +481,7 @@ class CacheManager : public CacheManagerInterface { * @param app_id specific application id. * @param preconsented_groups parameter to fill. */ - void GetPreConsentedGroups(const std::string &app_id, + void GetPreConsentedGroups(const std::string& app_id, FunctionalGroupIDs& preconsented_groups); /** * @brief GetConsentedGroups allows to obtain list of allowed and disallowed @@ -488,8 +491,8 @@ class CacheManager : public CacheManagerInterface { * @param allowed_groups list of allowed groups * @param disallowed_groups list of disallowed groups */ - void GetConsentedGroups(const std::string &device_id, - const std::string &app_id, + void GetConsentedGroups(const std::string& device_id, + const std::string& app_id, FunctionalGroupIDs& allowed_groups, FunctionalGroupIDs& disallowed_groups); @@ -553,7 +556,6 @@ class CacheManager : public CacheManagerInterface { */ void Backup(); - /** * Returns heart beat timeout * @param app_id application id @@ -588,7 +590,8 @@ class CacheManager : public CacheManagerInterface { /** * @brief MergePreloadPT allows to load policy table from certain JSON file, - * and then decide if merge is needed. The merge is needed in case when preload + * and then decide if merge is needed. The merge is needed in case when + *preload * JSON date is different than current database. * * @param file_name the preloaded policy table JSON file. @@ -603,7 +606,8 @@ class CacheManager : public CacheManagerInterface { * present in the updated Preloaded PT * 2. "vehicle_make", “model”, “year” – leave the fields & values as they were * in the database - * 3. For all other fields – overwrite the values with the new ones from preloaded PT. + * 3. For all other fields – overwrite the values with the new ones from + *preloaded PT. * * @param new_pt the policy table loaded from updated preload JSON file. * @@ -613,14 +617,16 @@ class CacheManager : public CacheManagerInterface { policy_table::PolicyTable& pt); /** - * @brief MergeFG allows to merge FunctionalGroupings sections by definite rules. + * @brief MergeFG allows to merge FunctionalGroupings sections by definite + *rules. * * The rules are: * 1. If functional_group_name exists in both database (LocalPT) and updated * PreloadedPT -> PoliciesManager must overwrite it (that is, replace such * functional_group_name in the database by the one from Pre-PT). * 2. If functional_group_name exists in updated PreloadedPT and does not - * exist in database (LocalPT), PoliciesManager must add such group to the database. + * exist in database (LocalPT), PoliciesManager must add such group to the + *database. * 3. If functional_group_name does not exist in updated PreloadedPT and * exists in the database (LocalPT), PoliciesManager must leave such group in * the database without changes. @@ -633,9 +639,11 @@ class CacheManager : public CacheManagerInterface { policy_table::PolicyTable& pt); /** - * @brief MergeAP Allows to merge ApplicationPolicies section by definite relues. + * @brief MergeAP Allows to merge ApplicationPolicies section by definite + *relues. * The rules are: - * 1. Leave “<appID>” sub-sections as they were in the database (fields & their values). + * 1. Leave “<appID>” sub-sections as they were in the database (fields & + *their values). * 2. Over-write "default", "device", "pre_DataConsent" subsections. * * @param new_pt the policy table loaded from updated preload JSON file. @@ -646,7 +654,8 @@ class CacheManager : public CacheManagerInterface { policy_table::PolicyTable& pt); /** - * @brief MergeCFM allows to merge ConsumerFriendlyMessages section by definite rules. + * @brief MergeCFM allows to merge ConsumerFriendlyMessages section by + *definite rules. * * The rules are: * 1. If friendly_message_name exists in both database (LocalPT) and updated @@ -665,21 +674,20 @@ class CacheManager : public CacheManagerInterface { void MergeCFM(const policy_table::PolicyTable& new_pt, policy_table::PolicyTable& pt); - const PolicySettings& get_settings() const; + const PolicySettings& get_settings() const; #ifdef BUILD_TESTS - utils::SharedPtr<policy_table::Table> GetPT() const { - return pt_; - } + utils::SharedPtr<policy_table::Table> GetPT() const { + return pt_; + } #endif -private: + private: std::string currentDateTime(); struct AppHMITypeToString { - std::string operator()(rpc::Enum<policy_table::AppHMIType> value) { - return std::string( - policy_table::EnumToJsonString(value)); - } + std::string operator()(rpc::Enum<policy_table::AppHMIType> value) { + return std::string(policy_table::EnumToJsonString(value)); + } }; void GetGroupNameByHashID(const int32_t group_id, std::string& group_name); @@ -697,15 +705,15 @@ private: void ResetCalculatedPermissions(); - void AddCalculatedPermissions( - const std::string& device_id, - const std::string& policy_app_id, - const policy::Permissions& permissions); + void AddCalculatedPermissions(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions); bool IsPermissionsCalculated(const std::string& device_id, const std::string& policy_app_id, policy::Permissions& permission); -private: + + private: /** * @brief Checks, if input string is known service represented by number, than * converts input string to service number @@ -715,7 +723,7 @@ private: */ bool IsNumberService(const std::string& input, std::string& output) const; -private: + private: utils::SharedPtr<policy_table::Table> pt_; utils::SharedPtr<policy_table::Table> snapshot_; utils::SharedPtr<PTRepresentation> backup_; @@ -731,23 +739,25 @@ private: CalculatedPermissions calculated_permissions_; sync_primitives::Lock calculated_permissions_lock_; - class BackgroundBackuper: public threads::ThreadDelegate { - friend class CacheManager; - public: - BackgroundBackuper(CacheManager* cache_manager); - ~BackgroundBackuper(); - virtual void threadMain(); - virtual void exitThreadMain(); - void DoBackup(); - private: - void InternalBackup(); - CacheManager* cache_manager_; - sync_primitives::ConditionalVariable backup_notifier_; - volatile bool stop_flag_; - volatile bool new_data_available_; - - sync_primitives::Lock need_backup_lock_; - DISALLOW_COPY_AND_ASSIGN(BackgroundBackuper); + class BackgroundBackuper : public threads::ThreadDelegate { + friend class CacheManager; + + public: + BackgroundBackuper(CacheManager* cache_manager); + ~BackgroundBackuper(); + virtual void threadMain(); + virtual void exitThreadMain(); + void DoBackup(); + + private: + void InternalBackup(); + CacheManager* cache_manager_; + sync_primitives::ConditionalVariable backup_notifier_; + volatile bool stop_flag_; + volatile bool new_data_available_; + + sync_primitives::Lock need_backup_lock_; + DISALLOW_COPY_AND_ASSIGN(BackgroundBackuper); }; threads::Thread* backup_thread_; sync_primitives::Lock backuper_locker_; @@ -755,4 +765,4 @@ private: const PolicySettings* settings_; }; } // namespace policy -#endif // SRC_COMPONENTS_POLICY_INCLUDE_CACHE_MANAGER_H_ +#endif // SRC_COMPONENTS_POLICY_INCLUDE_CACHE_MANAGER_H_ diff --git a/src/components/policy/src/policy/include/policy/cache_manager_interface.h b/src/components/policy/src/policy/include/policy/cache_manager_interface.h index a6d6776acc..958864a4a6 100644 --- a/src/components/policy/src/policy/include/policy/cache_manager_interface.h +++ b/src/components/policy/src/policy/include/policy/cache_manager_interface.h @@ -47,8 +47,7 @@ namespace policy { class CacheManagerInterface { public: - virtual ~CacheManagerInterface() { - } + virtual ~CacheManagerInterface() {} /** * @brief Check if specified RPC for specified application @@ -61,7 +60,8 @@ class CacheManagerInterface { * and list of allowed params. */ virtual void CheckPermissions(const PTString& app_id, - const PTString& hmi_level, const PTString& rpc, + const PTString& hmi_level, + const PTString& rpc, CheckPermissionResult& result) = 0; /** @@ -117,7 +117,7 @@ class CacheManagerInterface { * @param seconds Return value: array of 5 elements * @return bool Success of operation */ - virtual bool SecondsBetweenRetries(std::vector<int> &seconds) = 0; + virtual bool SecondsBetweenRetries(std::vector<int>& seconds) = 0; /** * @brief Get information about vehicle @@ -137,7 +137,8 @@ class CacheManagerInterface { /** * @brief Get message text for displaying/pronouncing for user * dependent on language and context. - * @param msg_codes Context of message (Driver distraction, Grant permission etc) + * @param msg_codes Context of message (Driver distraction, Grant permission + * etc) * @param language Language of the message * @return Array of appropriate messages parameters */ @@ -156,7 +157,8 @@ class CacheManagerInterface { /** * @brief GetLockScreenIcon allows to obtain lock screen icon url; * - * @return url which point to the resourse where lock screen icon could be obtained. + * @return url which point to the resourse where lock screen icon could be + *obtained. */ virtual std::string GetLockScreenIconUrl() const = 0; @@ -165,7 +167,8 @@ class CacheManagerInterface { * depending on application priority. * @param priority Priority of application */ - virtual policy_table::NumberOfNotificationsType GetNotificationsNumber(const std::string& priority) = 0; + virtual policy_table::NumberOfNotificationsType GetNotificationsNumber( + const std::string& priority) = 0; /** * @brief Get priority for given application @@ -202,7 +205,8 @@ class CacheManagerInterface { * @brief Gets list of appHMIType associated with mobile appID * @param container of appHMIType */ - virtual void GetHMIAppTypeAfterUpdate(std::map<std::string, StringArray>& app_hmi_types) = 0; + virtual void GetHMIAppTypeAfterUpdate( + std::map<std::string, StringArray>& app_hmi_types) = 0; /** * Gets flag updateRequired @@ -303,7 +307,7 @@ class CacheManagerInterface { * @return true, if succedeed, otherwise - false */ virtual bool GetDefaultHMI(const std::string& app_id, - std::string &default_hmi) const = 0; + std::string& default_hmi) const = 0; /** * @brief Reset user consent for device data and applications permissions @@ -318,9 +322,10 @@ class CacheManagerInterface { * @param disallowed_groups Groups not consented by user * @return true, if query was successfull, otherwise - false */ - virtual bool GetUserPermissionsForDevice(const std::string& device_id, - StringArray &consented_groups, - StringArray &disallowed_groups) const = 0; + virtual bool GetUserPermissionsForDevice( + const std::string& device_id, + StringArray& consented_groups, + StringArray& disallowed_groups) const = 0; /** * @brief Gets list of groups permissions from policy table @@ -331,7 +336,7 @@ class CacheManagerInterface { */ virtual bool GetPermissionsForApp(const std::string& device_id, const std::string& app_id, - FunctionalIdType &group_types) = 0; + FunctionalIdType& group_types) = 0; /** * @brief Get device groups and preconsented groups from policies section @@ -340,8 +345,8 @@ class CacheManagerInterface { * @return true, if query was successful, otherwise - false */ virtual bool GetDeviceGroupsFromPolicies( - rpc::policy_table_interface_base::Strings &groups, - rpc::policy_table_interface_base::Strings &preconsented_groups) const = 0; + rpc::policy_table_interface_base::Strings& groups, + rpc::policy_table_interface_base::Strings& preconsented_groups) const = 0; /** * @brief Add's information about mobile device in Policy Table. @@ -359,7 +364,8 @@ class CacheManagerInterface { */ virtual bool SetDeviceData(const std::string& device_id, const std::string& hardware, - const std::string& firmware, const std::string& os, + const std::string& firmware, + const std::string& os, const std::string& os_version, const std::string& carrier, const uint32_t number_of_ports, @@ -371,7 +377,8 @@ class CacheManagerInterface { * @return bool Success of operation */ virtual bool SetUserPermissionsForDevice( - const std::string& device_id, const StringArray& consented_groups, + const std::string& device_id, + const StringArray& consented_groups, const StringArray& disallowed_groups) = 0; /** @@ -430,7 +437,8 @@ class CacheManagerInterface { * @param type type of information * @param value value of information */ - virtual void Set(const std::string& app_id, usage_statistics::AppInfoId type, + virtual void Set(const std::string& app_id, + usage_statistics::AppInfoId type, const std::string& value) = 0; /** @@ -440,7 +448,8 @@ class CacheManagerInterface { * @param seconds value for adding in seconds */ virtual void Add(const std::string& app_id, - usage_statistics::AppStopwatchId type, int seconds) = 0; + usage_statistics::AppStopwatchId type, + int seconds) = 0; /** * @brief CountUnconsentedGroups allows to obtain the count of unconsented @@ -450,7 +459,7 @@ class CacheManagerInterface { * @param the count of unconsented groups */ virtual int CountUnconsentedGroups(const std::string& policy_app_id, - const std::string& device_id) = 0; + const std::string& device_id) = 0; /** * @brief Gets functional group names and user_consent_prompts, if any @@ -473,7 +482,7 @@ class CacheManagerInterface { * @param preconsented_groups parameter to fill. */ virtual void GetPreConsentedGroups( - const std::string &app_id, FunctionalGroupIDs& preconsented_groups) = 0; + const std::string& app_id, FunctionalGroupIDs& preconsented_groups) = 0; /** * @brief GetConsentedGroups allows to obtain list of allowed and disallowed * groups for specific application on certain device. @@ -482,8 +491,8 @@ class CacheManagerInterface { * @param allowed_groups list of allowed groups * @param disallowed_groups list of disallowed groups */ - virtual void GetConsentedGroups(const std::string &device_id, - const std::string &app_id, + virtual void GetConsentedGroups(const std::string& device_id, + const std::string& app_id, FunctionalGroupIDs& allowed_groups, FunctionalGroupIDs& disallowed_groups) = 0; @@ -520,7 +529,8 @@ class CacheManagerInterface { * @param unpaired True, if should be marked as unpaired, otherwise - false * @return true if success */ - virtual bool SetUnpairedDevice(const std::string& device_id, bool unpaired = true) = 0; + virtual bool SetUnpairedDevice(const std::string& device_id, + bool unpaired = true) = 0; /** * Resets Policy Table @@ -541,7 +551,8 @@ class CacheManagerInterface { * @param table object which will be filled during file parsing. * @return true in case file was successfuly loaded, false otherwise. */ - virtual bool LoadFromFile(const std::string& file_name, policy_table::Table& table) = 0; + virtual bool LoadFromFile(const std::string& file_name, + policy_table::Table& table) = 0; /** * @brief Backup allows to save cache onto hard drive. @@ -581,10 +592,9 @@ class CacheManagerInterface { * @param permission Permissions to be filled, in case of presence in cache * @return true if present, otherwise false */ - virtual bool IsPermissionsCalculated( - const std::string& device_id, - const std::string& policy_app_id, - policy::Permissions& permission) = 0; + virtual bool IsPermissionsCalculated(const std::string& device_id, + const std::string& policy_app_id, + policy::Permissions& permission) = 0; /** * @brief Gets request types for application @@ -595,13 +605,13 @@ class CacheManagerInterface { const std::string& policy_app_id, std::vector<std::string>& request_types) const = 0; - /** - * @brief GetCertificate allows to obtain certificate in order to - * make secure connection - * - * @return The certificate in PKCS#7. - */ - virtual std::string GetCertificate() const = 0; + /** + * @brief GetCertificate allows to obtain certificate in order to + * make secure connection + * + * @return The certificate in PKCS#7. + */ + virtual std::string GetCertificate() const = 0; #ifdef BUILD_TESTS /** @@ -610,7 +620,7 @@ class CacheManagerInterface { * @return SharedPTR to PT * */ - virtual utils::SharedPtr<policy_table::Table> GetPT() const = 0; + virtual utils::SharedPtr<policy_table::Table> GetPT() const = 0; #endif }; diff --git a/src/components/policy/src/policy/include/policy/policy_helper.h b/src/components/policy/src/policy/include/policy/policy_helper.h index 15d28f3242..cd79c393be 100644 --- a/src/components/policy/src/policy/include/policy/policy_helper.h +++ b/src/components/policy/src/policy/include/policy/policy_helper.h @@ -60,10 +60,11 @@ typedef policy_table::Strings::value_type StringsValueType; * @brief Helper struct to compare functional group names */ struct CompareGroupName { - explicit CompareGroupName(const StringsValueType& group_name); - bool operator()(const StringsValueType& group_name_to_compare) const; - private: - const StringsValueType& group_name_; + explicit CompareGroupName(const StringsValueType& group_name); + bool operator()(const StringsValueType& group_name_to_compare) const; + + private: + const StringsValueType& group_name_; }; /* @@ -80,54 +81,55 @@ bool operator!=(const policy_table::ApplicationParams& first, * updated and notification will be sent to application */ struct CheckAppPolicy { - CheckAppPolicy(PolicyManagerImpl* pm, - const utils::SharedPtr<policy_table::Table> update, - const utils::SharedPtr<policy_table::Table> snapshot); - bool operator()(const AppPoliciesValueType& app_policy); - private: - enum PermissionsCheckResult { - RESULT_NO_CHANGES, - RESULT_APP_REVOKED, - RESULT_NICKNAME_MISMATCH, - RESULT_PERMISSIONS_REVOKED, - RESULT_CONSENT_NEEDED, - RESULT_CONSENT_NOT_REQIURED, - RESULT_PERMISSIONS_REVOKED_AND_CONSENT_NEEDED, - RESULT_REQUEST_TYPE_CHANGED - }; - - void SetPendingPermissions(const AppPoliciesValueType& app_policy, - PermissionsCheckResult result) const; - PermissionsCheckResult CheckPermissionsChanges( - const AppPoliciesValueType &app_policy) const; - bool HasRevokedGroups(const AppPoliciesValueType& app_policy, - policy_table::Strings* revoked_groups = NULL) const; - bool HasNewGroups(const AppPoliciesValueType& app_policy, - policy_table::Strings* new_groups = NULL) const; - bool HasConsentNeededGroups(const AppPoliciesValueType& app_policy) const; - std::vector<FunctionalGroupPermission> GetRevokedGroups( - const AppPoliciesValueType& app_policy) const; - void RemoveRevokedConsents( - const AppPoliciesValueType& app_policy, - const std::vector<FunctionalGroupPermission>& revoked_groups) const; - bool IsKnownAppication(const std::string& application_id) const; - void NotifySystem(const AppPoliciesValueType& app_policy) const; - void SendPermissionsToApp(const AppPoliciesValueType& app_policy) const; - bool IsAppRevoked(const AppPoliciesValueType& app_policy) const; - bool NicknamesMatch(const AppPoliciesValueType& app_policy) const; - /** - * @brief Allows to check if appropriate group requires any consent. - * @param group_name the group for which consent will be checked. - * @return true if consent is required, false otherwise. - */ - bool IsConsentRequired(const std::string& app_id, - const std::string& group_name) const; - bool IsRequestTypeChanged(const AppPoliciesValueType& app_policy) const; - - private: - PolicyManagerImpl* pm_; - const utils::SharedPtr<policy_table::Table> update_; - const utils::SharedPtr<policy_table::Table> snapshot_; + CheckAppPolicy(PolicyManagerImpl* pm, + const utils::SharedPtr<policy_table::Table> update, + const utils::SharedPtr<policy_table::Table> snapshot); + bool operator()(const AppPoliciesValueType& app_policy); + + private: + enum PermissionsCheckResult { + RESULT_NO_CHANGES, + RESULT_APP_REVOKED, + RESULT_NICKNAME_MISMATCH, + RESULT_PERMISSIONS_REVOKED, + RESULT_CONSENT_NEEDED, + RESULT_CONSENT_NOT_REQIURED, + RESULT_PERMISSIONS_REVOKED_AND_CONSENT_NEEDED, + RESULT_REQUEST_TYPE_CHANGED + }; + + void SetPendingPermissions(const AppPoliciesValueType& app_policy, + PermissionsCheckResult result) const; + PermissionsCheckResult CheckPermissionsChanges( + const AppPoliciesValueType& app_policy) const; + bool HasRevokedGroups(const AppPoliciesValueType& app_policy, + policy_table::Strings* revoked_groups = NULL) const; + bool HasNewGroups(const AppPoliciesValueType& app_policy, + policy_table::Strings* new_groups = NULL) const; + bool HasConsentNeededGroups(const AppPoliciesValueType& app_policy) const; + std::vector<FunctionalGroupPermission> GetRevokedGroups( + const AppPoliciesValueType& app_policy) const; + void RemoveRevokedConsents( + const AppPoliciesValueType& app_policy, + const std::vector<FunctionalGroupPermission>& revoked_groups) const; + bool IsKnownAppication(const std::string& application_id) const; + void NotifySystem(const AppPoliciesValueType& app_policy) const; + void SendPermissionsToApp(const AppPoliciesValueType& app_policy) const; + bool IsAppRevoked(const AppPoliciesValueType& app_policy) const; + bool NicknamesMatch(const AppPoliciesValueType& app_policy) const; + /** + * @brief Allows to check if appropriate group requires any consent. + * @param group_name the group for which consent will be checked. + * @return true if consent is required, false otherwise. + */ + bool IsConsentRequired(const std::string& app_id, + const std::string& group_name) const; + bool IsRequestTypeChanged(const AppPoliciesValueType& app_policy) const; + + private: + PolicyManagerImpl* pm_; + const utils::SharedPtr<policy_table::Table> update_; + const utils::SharedPtr<policy_table::Table> snapshot_; }; /* @@ -135,22 +137,24 @@ struct CheckAppPolicy { * parameters */ struct FillNotificationData { - FillNotificationData(Permissions& data, GroupConsent group_state, - GroupConsent undefined_group_consent); - bool operator()(const RpcValueType& rpc); - void UpdateHMILevels(const policy_table::HmiLevels& in_hmi, - std::set<HMILevel>& out_hmi); - void UpdateParameters(const policy_table::Parameters& in_parameters, - std::set<Parameter>& out_parameter); - private: - void ExcludeSame(); - void ExcludeSameHMILevels(std::set<HMILevel>& source, - const std::set<HMILevel>& target); - void ExcludeSameParameters(std::set<Parameter>& source, - const std::set<Parameter>& target); - void InitRpcKeys(const std::string& rpc_name); - std::string current_key_; - Permissions& data_; + FillNotificationData(Permissions& data, + GroupConsent group_state, + GroupConsent undefined_group_consent); + bool operator()(const RpcValueType& rpc); + void UpdateHMILevels(const policy_table::HmiLevels& in_hmi, + std::set<HMILevel>& out_hmi); + void UpdateParameters(const policy_table::Parameters& in_parameters, + std::set<Parameter>& out_parameter); + + private: + void ExcludeSame(); + void ExcludeSameHMILevels(std::set<HMILevel>& source, + const std::set<HMILevel>& target); + void ExcludeSameParameters(std::set<Parameter>& source, + const std::set<Parameter>& target); + void InitRpcKeys(const std::string& rpc_name); + std::string current_key_; + Permissions& data_; }; /* @@ -158,27 +162,29 @@ struct FillNotificationData { * which fills permissions data according to group consent */ struct ProcessFunctionalGroup { - ProcessFunctionalGroup( + ProcessFunctionalGroup( const policy_table::FunctionalGroupings& fg, const std::vector<FunctionalGroupPermission>& group_permissions, Permissions& data, GroupConsent undefined_group_consent = GroupConsent::kGroupDisallowed); - bool operator()(const StringsValueType& group_name); - private: - GroupConsent GetGroupState(const std::string& group_name); - const policy_table::FunctionalGroupings& fg_; - const std::vector<FunctionalGroupPermission>& group_permissions_; - Permissions& data_; - GroupConsent undefined_group_consent_; + bool operator()(const StringsValueType& group_name); + + private: + GroupConsent GetGroupState(const std::string& group_name); + const policy_table::FunctionalGroupings& fg_; + const std::vector<FunctionalGroupPermission>& group_permissions_; + Permissions& data_; + GroupConsent undefined_group_consent_; }; struct FunctionalGroupInserter { - FunctionalGroupInserter(const policy_table::Strings& preconsented_groups, - PermissionsList& list); - void operator()(const StringsValueType& group_name); - private: - PermissionsList& list_; - const policy_table::Strings& preconsented_; + FunctionalGroupInserter(const policy_table::Strings& preconsented_groups, + PermissionsList& list); + void operator()(const StringsValueType& group_name); + + private: + PermissionsList& list_; + const policy_table::Strings& preconsented_; }; /** @@ -189,10 +195,10 @@ struct FunctionalGroupInserter { * @param permissions Struct to be filled with provided params */ void FillFunctionalGroupPermissions( - FunctionalGroupIDs& ids, - FunctionalGroupNames& names, - GroupConsent state, - std::vector<FunctionalGroupPermission>& permissions); + FunctionalGroupIDs& ids, + FunctionalGroupNames& names, + GroupConsent state, + std::vector<FunctionalGroupPermission>& permissions); /** * @brief Checks, if application is predefined, e.g. "default", i.e. which is @@ -237,7 +243,6 @@ FunctionalGroupIDs FindSame(const FunctionalGroupIDs& first, * @return true, if succeded, otherwise - false */ bool UnwrapAppPolicies(policy_table::ApplicationPolicies& app_policies); - } -#endif // SRC_COMPONENTS_POLICY_INCLUDE_POLICY_POLICY_HELPER_H_ +#endif // SRC_COMPONENTS_POLICY_INCLUDE_POLICY_POLICY_HELPER_H_ diff --git a/src/components/policy/src/policy/include/policy/policy_manager_impl.h b/src/components/policy/src/policy/include/policy/policy_manager_impl.h index b6e861dfa0..23727b243d 100644 --- a/src/components/policy/src/policy/include/policy/policy_manager_impl.h +++ b/src/components/policy/src/policy/include/policy/policy_manager_impl.h @@ -54,286 +54,297 @@ namespace policy { struct CheckAppPolicy; class PolicyManagerImpl : public PolicyManager { - public: - PolicyManagerImpl(); - virtual void set_listener(PolicyListener* listener); - PolicyListener* listener() const { - return listener_; - } - virtual bool InitPT(const std::string& file_name, const PolicySettings *settings); - virtual bool LoadPT(const std::string& file, const BinaryMessage& pt_content); - virtual bool ResetPT(const std::string& file_name); - - virtual void GetServiceUrls(const std::string& service_type, - EndpointUrls& end_points); - - virtual std::string GetLockScreenIconUrl() const; - virtual bool RequestPTUpdate(); - virtual void CheckPermissions(const PTString& app_id, - const PTString& hmi_level, - const PTString& rpc, - const RPCParams& rpc_params, - CheckPermissionResult& result); - virtual bool ResetUserConsent(); - virtual void KmsChanged(int kilometers); - virtual void IncrementIgnitionCycles(); - virtual std::string ForcePTExchange(); - virtual std::string GetPolicyTableStatus() const; - virtual void ResetRetrySequence(); - virtual uint32_t NextRetryTimeout(); - virtual int TimeoutExchange(); - virtual const std::vector<int> RetrySequenceDelaysSeconds(); - virtual void OnExceededTimeout(); - virtual void OnUpdateStarted(); - virtual void PTUpdatedAt(Counters counter, int value); - - /** - * Refresh data about retry sequence from policy table - */ - virtual void RefreshRetrySequence(); - virtual DeviceConsent GetUserConsentForDevice(const std::string& device_id) const OVERRIDE; - virtual void GetUserConsentForApp( - const std::string& device_id, const std::string& policy_app_id, + public: + PolicyManagerImpl(); + virtual void set_listener(PolicyListener* listener); + PolicyListener* listener() const { + return listener_; + } + virtual bool InitPT(const std::string& file_name, + const PolicySettings* settings); + virtual bool LoadPT(const std::string& file, const BinaryMessage& pt_content); + virtual bool ResetPT(const std::string& file_name); + + virtual void GetServiceUrls(const std::string& service_type, + EndpointUrls& end_points); + + virtual std::string GetLockScreenIconUrl() const; + virtual bool RequestPTUpdate(); + virtual void CheckPermissions(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + const RPCParams& rpc_params, + CheckPermissionResult& result); + virtual bool ResetUserConsent(); + virtual void KmsChanged(int kilometers); + virtual void IncrementIgnitionCycles(); + virtual std::string ForcePTExchange(); + virtual std::string GetPolicyTableStatus() const; + virtual void ResetRetrySequence(); + virtual uint32_t NextRetryTimeout(); + virtual int TimeoutExchange(); + virtual const std::vector<int> RetrySequenceDelaysSeconds(); + virtual void OnExceededTimeout(); + virtual void OnUpdateStarted(); + virtual void PTUpdatedAt(Counters counter, int value); + + /** + * Refresh data about retry sequence from policy table + */ + virtual void RefreshRetrySequence(); + virtual DeviceConsent GetUserConsentForDevice( + const std::string& device_id) const OVERRIDE; + virtual void GetUserConsentForApp( + const std::string& device_id, + const std::string& policy_app_id, std::vector<FunctionalGroupPermission>& permissions); - virtual void SetUserConsentForDevice(const std::string& device_id, - bool is_allowed); - virtual bool ReactOnUserDevConsentForApp(const std::string app_id, - bool is_device_allowed); - virtual bool GetInitialAppData(const std::string& application_id, - StringArray* nicknames = NULL, - StringArray* app_hmi_types = NULL); + virtual void SetUserConsentForDevice(const std::string& device_id, + bool is_allowed); + virtual bool ReactOnUserDevConsentForApp(const std::string app_id, + bool is_device_allowed); + virtual bool GetInitialAppData(const std::string& application_id, + StringArray* nicknames = NULL, + StringArray* app_hmi_types = NULL); - virtual void AddDevice(const std::string& device_id, - const std::string& connection_type); + virtual void AddDevice(const std::string& device_id, + const std::string& connection_type); - virtual void SetDeviceInfo(const std::string& device_id, - const DeviceInfo& device_info); + virtual void SetDeviceInfo(const std::string& device_id, + const DeviceInfo& device_info); - virtual void SetUserConsentForApp(const PermissionConsent& permissions); + virtual void SetUserConsentForApp(const PermissionConsent& permissions); - virtual bool GetDefaultHmi(const std::string& policy_app_id, - std::string* default_hmi) const ; + virtual bool GetDefaultHmi(const std::string& policy_app_id, + std::string* default_hmi) const; - virtual bool GetPriority(const std::string& policy_app_id, - std::string* priority) const; + virtual bool GetPriority(const std::string& policy_app_id, + std::string* priority) const; - virtual std::vector<UserFriendlyMessage> GetUserFriendlyMessages( - const std::vector<std::string>& message_code, const std::string& language); + virtual std::vector<UserFriendlyMessage> GetUserFriendlyMessages( + const std::vector<std::string>& message_code, + const std::string& language); - virtual bool IsApplicationRevoked(const std::string& app_id) const; + virtual bool IsApplicationRevoked(const std::string& app_id) const; - virtual void GetPermissionsForApp( - const std::string& device_id, const std::string& policy_app_id, + virtual void GetPermissionsForApp( + const std::string& device_id, + const std::string& policy_app_id, std::vector<FunctionalGroupPermission>& permissions); - virtual std::string& GetCurrentDeviceId(const std::string& policy_app_id) const; + virtual std::string& GetCurrentDeviceId( + const std::string& policy_app_id) const; - virtual void SetSystemLanguage(const std::string& language); + virtual void SetSystemLanguage(const std::string& language); - virtual void SetSystemInfo(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language); - virtual void OnSystemReady(); + virtual void SetSystemInfo(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language); + virtual void OnSystemReady(); - virtual uint32_t GetNotificationsNumber(const std::string& priority) const OVERRIDE; + virtual uint32_t GetNotificationsNumber( + const std::string& priority) const OVERRIDE; - virtual void SetVINValue(const std::string& value); + virtual void SetVINValue(const std::string& value); - // Interface StatisticsManager (begin) - virtual void Increment(usage_statistics::GlobalCounterId type); - virtual void Increment(const std::string& app_id, - usage_statistics::AppCounterId type); - virtual void Set(const std::string& app_id, usage_statistics::AppInfoId type, - const std::string& value); - virtual void Add(const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds); - // Interface StatisticsManager (end) + // Interface StatisticsManager (begin) + virtual void Increment(usage_statistics::GlobalCounterId type); + virtual void Increment(const std::string& app_id, + usage_statistics::AppCounterId type); + virtual void Set(const std::string& app_id, + usage_statistics::AppInfoId type, + const std::string& value); + virtual void Add(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds); + // Interface StatisticsManager (end) - AppPermissions GetAppPermissionsChanges(const std::string& policy_app_id); - void RemovePendingPermissionChanges(const std::string& app_id); + AppPermissions GetAppPermissionsChanges(const std::string& policy_app_id); + void RemovePendingPermissionChanges(const std::string& app_id); - void SendNotificationOnPermissionsUpdated(const std::string& application_id); + void SendNotificationOnPermissionsUpdated(const std::string& application_id); - bool CleanupUnpairedDevices(); + bool CleanupUnpairedDevices(); - bool CanAppKeepContext(const std::string& app_id) const; - bool CanAppStealFocus(const std::string& app_id) const; - void MarkUnpairedDevice(const std::string& device_id); + bool CanAppKeepContext(const std::string& app_id) const; + bool CanAppStealFocus(const std::string& app_id) const; + void MarkUnpairedDevice(const std::string& device_id); - void AddApplication(const std::string& application_id); + void AddApplication(const std::string& application_id); - virtual void RemoveAppConsentForGroup(const std::string& app_id, - const std::string& group_name); + virtual void RemoveAppConsentForGroup(const std::string& app_id, + const std::string& group_name); - virtual uint32_t HeartBeatTimeout(const std::string& app_id) const; + virtual uint32_t HeartBeatTimeout(const std::string& app_id) const; - virtual void SaveUpdateStatusRequired(bool is_update_needed); + virtual void SaveUpdateStatusRequired(bool is_update_needed); - virtual bool IsPredataPolicy(const std::string& policy_app_id); - void set_cache_manager(CacheManagerInterface* cache_manager); + virtual bool IsPredataPolicy(const std::string& policy_app_id); + void set_cache_manager(CacheManagerInterface* cache_manager); - virtual void OnAppsSearchStarted(); + virtual void OnAppsSearchStarted(); - virtual void OnAppsSearchCompleted(); + virtual void OnAppsSearchCompleted(); #ifdef BUILD_TESTS - inline CacheManagerInterfaceSPtr GetCache() { return cache_; } + inline CacheManagerInterfaceSPtr GetCache() { + return cache_; + } #endif // BUILD_TESTS - virtual const std::vector<std::string> GetAppRequestTypes( + virtual const std::vector<std::string> GetAppRequestTypes( const std::string policy_app_id) const; - virtual const VehicleInfo GetVehicleInfo() const; - - virtual void OnAppRegisteredOnMobile(const std::string& application_id) OVERRIDE; - - virtual std::string RetrieveCertificate() const OVERRIDE; - - protected: - #ifdef USE_HMI_PTU_DECRYPTION - virtual utils::SharedPtr<policy_table::Table> Parse( - const BinaryMessage& pt_content); - #else - virtual utils::SharedPtr<policy_table::Table> ParseArray( - const BinaryMessage& pt_content); - #endif - - const PolicySettings& get_settings() const OVERRIDE; - - private: - void CheckTriggers(); - /* - * @brief Checks policy table update along with current data for any changes - * in assigned functional group list of application - * - * @param Policy table update struct - */ - void CheckPermissionsChanges( + virtual const VehicleInfo GetVehicleInfo() const; + + virtual void OnAppRegisteredOnMobile( + const std::string& application_id) OVERRIDE; + + virtual std::string RetrieveCertificate() const OVERRIDE; + + protected: +#ifdef USE_HMI_PTU_DECRYPTION + virtual utils::SharedPtr<policy_table::Table> Parse( + const BinaryMessage& pt_content); +#else + virtual utils::SharedPtr<policy_table::Table> ParseArray( + const BinaryMessage& pt_content); +#endif + + const PolicySettings& get_settings() const OVERRIDE; + + private: + void CheckTriggers(); + /* + * @brief Checks policy table update along with current data for any changes + * in assigned functional group list of application + * + * @param Policy table update struct + */ + void CheckPermissionsChanges( const utils::SharedPtr<policy_table::Table> update, const utils::SharedPtr<policy_table::Table> snapshot); - /** - * @brief Fill structure to be sent with OnPermissionsChanged notification - * - * @param Policy table struct, which contains rpc functional groups data - * @param List of rpc functional group names, which should be checked - * @param group_permission User permissions for functional groups - * @param Notification struct to be filled and sent - */ - void PrepareNotificationData( + /** + * @brief Fill structure to be sent with OnPermissionsChanged notification + * + * @param Policy table struct, which contains rpc functional groups data + * @param List of rpc functional group names, which should be checked + * @param group_permission User permissions for functional groups + * @param Notification struct to be filled and sent + */ + void PrepareNotificationData( const policy_table::FunctionalGroupings& groups, const policy_table::Strings& group_names, const std::vector<FunctionalGroupPermission>& group_permission, Permissions& notification_data); - /** - * @brief Validate PermissionConsent structure according to currently - * assigned groups - * @param permissions PermissionConsent structure that should be validated. - * @return PermissonConsent struct, which contains no foreign groups - */ - PermissionConsent EnsureCorrectPermissionConsent( - const PermissionConsent& permissions_to_check); - - /** - * @brief Allows to process case when added application is not present in - * policy db. - * @param policy application id. - * @param cuuren consent for application's device. - */ - void AddNewApplication(const std::string& application_id, - DeviceConsent device_consent); - - /** - * @brief Allows to process case when added application is already - * in policy db. - * @param policy application id. - * @param cuuren consent for application's device. - */ - void PromoteExistedApplication(const std::string& application_id, - DeviceConsent device_consent); - - /** - * @brief Check if certain application already in policy db. - * @param policy application id. - * @return true if application presents false otherwise. - */ - bool IsNewApplication(const std::string& application_id) const; - - /** - * Checks existing and permissions of AppStorageFolder - * @return true if AppStorageFolder exists and has permissions read/write - */ - bool CheckAppStorageFolder() const; - - /** - * @brief Checks whether need ask the permission of users - * @return true if user consent is needed - */ - virtual bool IsConsentNeeded(const std::string& app_id); - - /** - * @brief Changes isConsentNeeded for app pending permissions, in case - * user set permissions before app activation. - * @param Unique app id - * @param Current permissions for app - */ - void CheckPendingPermissionsChanges( - const std::string& policy_app_id, - const std::vector<FunctionalGroupPermission>& current_permissions); - - virtual void StartPTExchange(); - virtual bool ExceededDays(); - virtual bool ExceededIgnitionCycles(); - bool IsPTValid(utils::SharedPtr<policy_table::Table> policy_table, - policy_table::PolicyTableType type) const; - - void RetrySequence(); - -private: - PolicyListener* listener_; - - UpdateStatusManager update_status_manager_; - CacheManagerInterfaceSPtr cache_; - sync_primitives::Lock apps_registration_lock_; - sync_primitives::Lock app_permissions_diff_lock_; - std::map<std::string, AppPermissions> app_permissions_diff_; - - /** - * Timeout to wait response with UpdatePT - */ - uint32_t retry_sequence_timeout_; - - /** - * Seconds between retries to update PT - */ - std::vector<int> retry_sequence_seconds_; - - /** - * Current index trying of retry sequence - */ - uint32_t retry_sequence_index_; - - /** - * Lock for guarding retry sequence - */ - sync_primitives::Lock retry_sequence_lock_; - - /** - * Timer to retry UpdatePT - */ - timer::Timer timer_retry_sequence_; - - /** - * @brief Device id, which is used during PTU handling for specific - * application - */ - mutable std::string last_device_id_; - - bool ignition_check; - - const PolicySettings* settings_; - friend struct CheckAppPolicy; + /** + * @brief Validate PermissionConsent structure according to currently + * assigned groups + * @param permissions PermissionConsent structure that should be validated. + * @return PermissonConsent struct, which contains no foreign groups + */ + PermissionConsent EnsureCorrectPermissionConsent( + const PermissionConsent& permissions_to_check); + + /** + * @brief Allows to process case when added application is not present in + * policy db. + * @param policy application id. + * @param cuuren consent for application's device. + */ + void AddNewApplication(const std::string& application_id, + DeviceConsent device_consent); + + /** + * @brief Allows to process case when added application is already + * in policy db. + * @param policy application id. + * @param cuuren consent for application's device. + */ + void PromoteExistedApplication(const std::string& application_id, + DeviceConsent device_consent); + + /** + * @brief Check if certain application already in policy db. + * @param policy application id. + * @return true if application presents false otherwise. + */ + bool IsNewApplication(const std::string& application_id) const; + + /** + * Checks existing and permissions of AppStorageFolder + * @return true if AppStorageFolder exists and has permissions read/write + */ + bool CheckAppStorageFolder() const; + + /** + * @brief Checks whether need ask the permission of users + * @return true if user consent is needed + */ + virtual bool IsConsentNeeded(const std::string& app_id); + + /** + * @brief Changes isConsentNeeded for app pending permissions, in case + * user set permissions before app activation. + * @param Unique app id + * @param Current permissions for app + */ + void CheckPendingPermissionsChanges( + const std::string& policy_app_id, + const std::vector<FunctionalGroupPermission>& current_permissions); + + virtual void StartPTExchange(); + virtual bool ExceededDays(); + virtual bool ExceededIgnitionCycles(); + bool IsPTValid(utils::SharedPtr<policy_table::Table> policy_table, + policy_table::PolicyTableType type) const; + + void RetrySequence(); + + private: + PolicyListener* listener_; + + UpdateStatusManager update_status_manager_; + CacheManagerInterfaceSPtr cache_; + sync_primitives::Lock apps_registration_lock_; + sync_primitives::Lock app_permissions_diff_lock_; + std::map<std::string, AppPermissions> app_permissions_diff_; + + /** + * Timeout to wait response with UpdatePT + */ + uint32_t retry_sequence_timeout_; + + /** + * Seconds between retries to update PT + */ + std::vector<int> retry_sequence_seconds_; + + /** + * Current index trying of retry sequence + */ + uint32_t retry_sequence_index_; + + /** + * Lock for guarding retry sequence + */ + sync_primitives::Lock retry_sequence_lock_; + + /** + * Timer to retry UpdatePT + */ + timer::Timer timer_retry_sequence_; + + /** + * @brief Device id, which is used during PTU handling for specific + * application + */ + mutable std::string last_device_id_; + + bool ignition_check; + + const PolicySettings* settings_; + friend struct CheckAppPolicy; }; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/policy_types.h b/src/components/policy/src/policy/include/policy/policy_types.h index 85d196e90b..f03278619c 100644 --- a/src/components/policy/src/policy/include/policy/policy_types.h +++ b/src/components/policy/src/policy/include/policy/policy_types.h @@ -43,8 +43,7 @@ namespace policy { // TODO(PV): specify errors -enum PolicyErrorEnum { -}; +enum PolicyErrorEnum {}; const std::string kDefaultDeviceMacAddress = "00:00:00:00:00:00"; const std::string kDefaultDeviceName = "MyDevice"; @@ -62,10 +61,10 @@ const std::string kDeviceId = "device"; * @brief Status of policy table update */ enum PolicyTableStatus { - StatusUpToDate = 0, - StatusUpdatePending, - StatusUpdateRequired, - StatusUnknown + StatusUpToDate = 0, + StatusUpdatePending, + StatusUpdateRequired, + StatusUnknown }; // Code generator uses String class name, so this typedef was renamed to PTSring @@ -79,11 +78,12 @@ typedef std::string RpcName; typedef std::vector<std::string> RPCParams; typedef std::map<std::string, std::set<policy::HMILevel> > HMIPermissions; -typedef std::map<std::string, std::set<policy::Parameter> > ParameterPermissions; +typedef std::map<std::string, std::set<policy::Parameter> > + ParameterPermissions; struct RpcPermissions { - HMIPermissions hmi_permissions; - ParameterPermissions parameter_permissions; + HMIPermissions hmi_permissions; + ParameterPermissions parameter_permissions; }; typedef std::map<RpcName, RpcPermissions> Permissions; @@ -98,11 +98,7 @@ typedef std::vector<std::string> PermissionsList; */ typedef std::vector<std::string> StringArray; -enum PermitResult { - kRpcAllowed = 0, - kRpcDisallowed, - kRpcUserDisallowed -}; +enum PermitResult { kRpcAllowed = 0, kRpcDisallowed, kRpcUserDisallowed }; /** * @struct Stores result of check: @@ -110,28 +106,26 @@ enum PermitResult { * and list of parameters allowed for RPC if specified in PT. */ struct CheckPermissionResult { - CheckPermissionResult() - : hmi_level_permitted(kRpcDisallowed) { - } + CheckPermissionResult() : hmi_level_permitted(kRpcDisallowed) {} - PermitResult hmi_level_permitted; - std::vector<PTString> list_of_allowed_params; - std::vector<PTString> list_of_disallowed_params; - std::vector<PTString> list_of_undefined_params; + PermitResult hmi_level_permitted; + std::vector<PTString> list_of_allowed_params; + std::vector<PTString> list_of_disallowed_params; + std::vector<PTString> list_of_undefined_params; }; /** @struct Holds Url string and optional policy app id. */ struct EndpointData { - explicit EndpointData(const std::string& url_string = "") - : app_id("default") { - if (false == url_string.empty()) { - url.push_back(url_string); - } + explicit EndpointData(const std::string& url_string = "") + : app_id("default") { + if (false == url_string.empty()) { + url.push_back(url_string); } - std::vector<std::string> url; - std::string app_id; + } + std::vector<std::string> url; + std::string app_id; }; typedef std::vector<EndpointData> EndpointUrls; @@ -140,26 +134,25 @@ typedef std::vector<EndpointData> EndpointUrls; * @brief Struct contains device data to be used for dialogs, generation of IDs */ struct DeviceParams { - DeviceParams() - : device_name(kDefaultDeviceName), - device_mac_address(kDefaultDeviceMacAddress), - device_connection_type(kDefaultDeviceConnectionType), - device_handle(0) { - } - - std::string device_name; - std::string device_mac_address; - std::string device_connection_type; - uint32_t device_handle; + DeviceParams() + : device_name(kDefaultDeviceName) + , device_mac_address(kDefaultDeviceMacAddress) + , device_connection_type(kDefaultDeviceConnectionType) + , device_handle(0) {} + + std::string device_name; + std::string device_mac_address; + std::string device_connection_type; + uint32_t device_handle; }; /** * @brief User consent for device data usage */ enum DeviceConsent { - kDeviceAllowed = 0, - kDeviceDisallowed, - kDeviceHasNoConsent + kDeviceAllowed = 0, + kDeviceDisallowed, + kDeviceHasNoConsent }; /** @@ -167,88 +160,77 @@ enum DeviceConsent { * registration and should be stored in policy table */ struct DeviceInfo { - DeviceInfo() - : max_number_rfcom_ports(0) { - } - - std::string hardware; - std::string firmware_rev; - std::string os; - std::string os_ver; - std::string carrier; - uint32_t max_number_rfcom_ports; - std::string connection_type; - - void AdoptDeviceType(const std::string& deviceType) { - connection_type = "USB_serial_number"; - using namespace helpers; - static const std::string bluetooth("BLUETOOTH"); - static const std::string wifi("WIFI"); - if (Compare<std::string, EQ, ONE>(deviceType, bluetooth, wifi)) { - connection_type.assign("BTMAC"); - } + DeviceInfo() : max_number_rfcom_ports(0) {} + + std::string hardware; + std::string firmware_rev; + std::string os; + std::string os_ver; + std::string carrier; + uint32_t max_number_rfcom_ports; + std::string connection_type; + + void AdoptDeviceType(const std::string& deviceType) { + connection_type = "USB_serial_number"; + using namespace helpers; + static const std::string bluetooth("BLUETOOTH"); + static const std::string wifi("WIFI"); + if (Compare<std::string, EQ, ONE>(deviceType, bluetooth, wifi)) { + connection_type.assign("BTMAC"); } + } }; /** * @brief User consent for functional group */ -enum GroupConsent { - kGroupAllowed = 0, - kGroupDisallowed, - kGroupUndefined -}; +enum GroupConsent { kGroupAllowed = 0, kGroupDisallowed, kGroupUndefined }; /** * @brief Contains user permission for RPC functional group with specific name * and id from DB */ struct FunctionalGroupPermission { - FunctionalGroupPermission() - : group_id(0), - state(kGroupUndefined) { - } + FunctionalGroupPermission() : group_id(0), state(kGroupUndefined) {} - bool operator ==(const FunctionalGroupPermission& rhs) { - if (this->group_id == rhs.group_id && - this->group_alias == rhs.group_alias && - this->group_name == rhs.group_name) { - return true; - } - return false; + bool operator==(const FunctionalGroupPermission& rhs) { + if (this->group_id == rhs.group_id && + this->group_alias == rhs.group_alias && + this->group_name == rhs.group_name) { + return true; } + return false; + } - std::string group_alias; - std::string group_name; - int32_t group_id; - GroupConsent state; + std::string group_alias; + std::string group_name; + int32_t group_id; + GroupConsent state; }; /** * @brief Stores data to be sent to HMI on application permissions change */ struct AppPermissions { - - AppPermissions(const std::string& app_id) - : application_id(app_id), - isAppPermissionsRevoked(false), - appRevoked(false), - appPermissionsConsentNeeded(false), - appUnauthorized(false), - requestTypeChanged(false) { - } - - std::string application_id; - bool isAppPermissionsRevoked; - std::vector<policy::FunctionalGroupPermission> appRevokedPermissions; - bool appRevoked; - bool appPermissionsConsentNeeded; - bool appUnauthorized; - bool isSDLAllowed; - std::string priority; - DeviceParams deviceInfo; - bool requestTypeChanged; - std::vector<std::string> requestType; + AppPermissions(const std::string& app_id) + : application_id(app_id) + , isAppPermissionsRevoked(false) + , appRevoked(false) + , appPermissionsConsentNeeded(false) + , appUnauthorized(false) + , requestTypeChanged(false) {} + + std::string application_id; + bool isAppPermissionsRevoked; + std::vector<policy::FunctionalGroupPermission> appRevokedPermissions; + bool appRevoked; + bool appPermissionsConsentNeeded; + bool appUnauthorized; + bool isSDLAllowed; + std::string priority; + DeviceParams deviceInfo; + bool requestTypeChanged; + std::vector<std::string> requestType; }; /** @@ -256,33 +238,34 @@ struct AppPermissions { * functional groups on given device */ struct PermissionConsent { - std::string device_id; - std::string policy_app_id; - std::vector<FunctionalGroupPermission> group_permissions; - std::string consent_source; + std::string device_id; + std::string policy_app_id; + std::vector<FunctionalGroupPermission> group_permissions; + std::string consent_source; }; /** * @brief Contain data for GetUserFriendyMessage response */ struct UserFriendlyMessage { - std::string message_code; + std::string message_code; }; /** * @brief Types of functional groups in policy table */ enum GroupType { - kTypeDefault = 0, // groups assigned to 'default' permissions section - kTypeAllowed, // groups allowed by user for specific application - kTypeDisallowed, // groups disallowed by user for specific application - kTypeUnconsented, // groups disallowed by default but consent may be changed by user - kTypePreconsented, // groups allowed for specific application without - // user consent by default (could be changed by user) - kTypeGeneral, // groups assigned to specific application - kTypePreDataConsented, // groups assigned to 'pre_DataConsent' permissions - // section - kTypeDevice // groups assigned to 'device' permissions section + kTypeDefault = 0, // groups assigned to 'default' permissions section + kTypeAllowed, // groups allowed by user for specific application + kTypeDisallowed, // groups disallowed by user for specific application + kTypeUnconsented, // groups disallowed by default but consent may be changed + // by user + kTypePreconsented, // groups allowed for specific application without + // user consent by default (could be changed by user) + kTypeGeneral, // groups assigned to specific application + kTypePreDataConsented, // groups assigned to 'pre_DataConsent' permissions + // section + kTypeDevice // groups assigned to 'device' permissions section }; /** @@ -299,7 +282,8 @@ typedef std::map<GroupType, FunctionalGroupIDs> FunctionalIdType; * @brief Array of functional group ids binded to user_consent_prompt (e.g. * VehicleData) and group name (e.g. VehicleData-4) */ -typedef std::map<uint32_t, std::pair<std::string, std::string> > FunctionalGroupNames; +typedef std::map<uint32_t, std::pair<std::string, std::string> > + FunctionalGroupNames; /** * @brief Array of device ids, which are an identifiers in policy table @@ -309,10 +293,7 @@ typedef std::vector<std::string> DeviceIds; /** * @brief Counters that calculated on receiving of succesful update */ -enum Counters { - KILOMETERS, - DAYS_AFTER_EPOCH -}; +enum Counters { KILOMETERS, DAYS_AFTER_EPOCH }; /** * @struct Vehicle information @@ -327,9 +308,9 @@ struct VehicleInfo { * @brief The MetaInfo information */ struct MetaInfo { - std::string ccpu_version; - std::string wers_country_code; - std::string language; + std::string ccpu_version; + std::string wers_country_code; + std::string language; }; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/pt_ext_representation.h b/src/components/policy/src/policy/include/policy/pt_ext_representation.h index 55ed86e445..2c5db4f002 100644 --- a/src/components/policy/src/policy/include/policy/pt_ext_representation.h +++ b/src/components/policy/src/policy/include/policy/pt_ext_representation.h @@ -57,277 +57,274 @@ enum StatisticsType { S_RUN_ATTEMPTS_WHILE_REVOKED }; -enum LanguageType { - L_NONE = 0, - L_GUI, - L_VUI -}; +enum LanguageType { L_NONE = 0, L_GUI, L_VUI }; class PTExtRepresentation : public virtual PTRepresentation { - public: - virtual ~PTExtRepresentation() { - } - - /** - * @brief Is application allowed to send notifications while in - * Backgound or limited mode. - * @param app_id Application id - * @return bool Allowed/disallowed. - */ - virtual bool CanAppKeepContext(const std::string& app_id) = 0; - - /** - * @brief Is application allowed to move foreground at will? - * @param app_id Application id - * @return bool Allowed/disallowed. - */ - virtual bool CanAppStealFocus(const std::string& app_id) = 0; - - /** - * @brief Get default_hmi for given application - * @param policy_app_id Unique application id - * @param default_hmi Default HMI level for application or empty, if value was - * not set - * @return true, if succedeed, otherwise - false - */ - virtual bool GetDefaultHMI(const std::string& policy_app_id, - std::string* default_hmi) = 0; - - /** - * @brief Reset user consent for device data and applications permissions - * @return - */ - virtual bool ResetUserConsent() = 0; - - /** - * @brief Reset user consent for device data - * @return - */ - virtual bool ResetDeviceConsents() = 0; - - /** - * @brief Reset user consent for applications permissions - * @return - */ - virtual bool ResetAppConsents() = 0; - - /** - * @brief Get user permissions for device data usage - * @param device_id Generated or obtained id of device - * @param consented_groups Groups consented by user - * @param disallowed_groups Groups not consented by user - * @return true, if query was successfull, otherwise - false - */ - virtual bool GetUserPermissionsForDevice( - const std::string& device_id, StringArray* consented_groups = NULL, + public: + virtual ~PTExtRepresentation() {} + + /** + * @brief Is application allowed to send notifications while in + * Backgound or limited mode. + * @param app_id Application id + * @return bool Allowed/disallowed. + */ + virtual bool CanAppKeepContext(const std::string& app_id) = 0; + + /** + * @brief Is application allowed to move foreground at will? + * @param app_id Application id + * @return bool Allowed/disallowed. + */ + virtual bool CanAppStealFocus(const std::string& app_id) = 0; + + /** + * @brief Get default_hmi for given application + * @param policy_app_id Unique application id + * @param default_hmi Default HMI level for application or empty, if value was + * not set + * @return true, if succedeed, otherwise - false + */ + virtual bool GetDefaultHMI(const std::string& policy_app_id, + std::string* default_hmi) = 0; + + /** + * @brief Reset user consent for device data and applications permissions + * @return + */ + virtual bool ResetUserConsent() = 0; + + /** + * @brief Reset user consent for device data + * @return + */ + virtual bool ResetDeviceConsents() = 0; + + /** + * @brief Reset user consent for applications permissions + * @return + */ + virtual bool ResetAppConsents() = 0; + + /** + * @brief Get user permissions for device data usage + * @param device_id Generated or obtained id of device + * @param consented_groups Groups consented by user + * @param disallowed_groups Groups not consented by user + * @return true, if query was successfull, otherwise - false + */ + virtual bool GetUserPermissionsForDevice( + const std::string& device_id, + StringArray* consented_groups = NULL, StringArray* disallowed_groups = NULL) = 0; - /** - * @brief Gets list of groups permissions from policy table - * @param device_id Unique device id, which hosts specific application - * @param policy_app_id Unique application id - * @param group_types Group list sorted by permission status - * @return true, if query was successfull, otherwise - false - */ - virtual bool GetPermissionsForApp( - const std::string& device_id, - const std::string& policy_app_id, - FunctionalIdType* group_types) = 0; - - /** - * @brief Get device groups and preconsented groups from policies section - * @param groups List of groups to be consented for device usage - * @param preconsented_groups List of preconsented groups for device usage - * @return true, if query was successful, otherwise - false - */ - virtual bool GetDeviceGroupsFromPolicies( + /** + * @brief Gets list of groups permissions from policy table + * @param device_id Unique device id, which hosts specific application + * @param policy_app_id Unique application id + * @param group_types Group list sorted by permission status + * @return true, if query was successfull, otherwise - false + */ + virtual bool GetPermissionsForApp(const std::string& device_id, + const std::string& policy_app_id, + FunctionalIdType* group_types) = 0; + + /** + * @brief Get device groups and preconsented groups from policies section + * @param groups List of groups to be consented for device usage + * @param preconsented_groups List of preconsented groups for device usage + * @return true, if query was successful, otherwise - false + */ + virtual bool GetDeviceGroupsFromPolicies( policy_table::Strings* groups = NULL, policy_table::Strings* preconsented_groups = NULL) = 0; - /** - * @brief Record information about mobile device in Policy Table. - * @param device_id Generated or obtained id of device - * @return bool Success of operation - */ - virtual bool SetDeviceData(const std::string& device_id, - const std::string& hardware = "", - const std::string& firmware = "", - const std::string& os = "", - const std::string& os_version = "", - const std::string& carrier = "", - const uint32_t number_of_ports = 0, - const std::string& connection_type = "") = 0; - - /** - * @brief Sets user consent for particular mobile device, - * i.e. to use device for exchanging of Policy Table. - * @return bool Success of operation - */ - virtual bool SetUserPermissionsForDevice( - const std::string& device_id, const StringArray& consented_groups = - StringArray(), + /** + * @brief Record information about mobile device in Policy Table. + * @param device_id Generated or obtained id of device + * @return bool Success of operation + */ + virtual bool SetDeviceData(const std::string& device_id, + const std::string& hardware = "", + const std::string& firmware = "", + const std::string& os = "", + const std::string& os_version = "", + const std::string& carrier = "", + const uint32_t number_of_ports = 0, + const std::string& connection_type = "") = 0; + + /** + * @brief Sets user consent for particular mobile device, + * i.e. to use device for exchanging of Policy Table. + * @return bool Success of operation + */ + virtual bool SetUserPermissionsForDevice( + const std::string& device_id, + const StringArray& consented_groups = StringArray(), const StringArray& disallowed_gropus = StringArray()) = 0; - /** - * @brief Update Application Policies as reaction - * on User allowing/disallowing device this app is running on. - */ - virtual bool ReactOnUserDevConsentForApp( - const std::string& app_id, - bool is_device_allowed) = 0; - - /** - * @brief Set user consent on functional groups - * @param permissions User consent on functional group - * @return true, if operation succedeed, otherwise - false - */ - virtual bool SetUserPermissionsForApp( + /** + * @brief Update Application Policies as reaction + * on User allowing/disallowing device this app is running on. + */ + virtual bool ReactOnUserDevConsentForApp(const std::string& app_id, + bool is_device_allowed) = 0; + + /** + * @brief Set user consent on functional groups + * @param permissions User consent on functional group + * @return true, if operation succedeed, otherwise - false + */ + virtual bool SetUserPermissionsForApp( const PermissionConsent& permissions) = 0; - /** - * @brief Counter for statistics information: adds 1 to existing number. - * @param type Type of statistics (errors, mins in mode etc) - * @return bool Success of operation - */ - virtual bool IncreaseStatisticsData(StatisticsType type) = 0; - - /** - * @brief Records information about what language - * application tried to register with. - * @param app_id Id of application - * @param type - language for UI/VR - * @param language Language - * @return bool Success of operation - */ - virtual bool SetAppRegistrationLanguage(const std::string& app_id, - LanguageType type, - const std::string& language) = 0; - - /** - * @brief Records information about head unit system to PT - * @return bool Success of operation - */ - virtual bool SetMetaInfo(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language) = 0; - - /** - * @brief Checks, if specific head unit is present in PT - * @return boot Suceess, if present, otherwise - false - */ - virtual bool IsMetaInfoPresent() = 0; - - /** - * @brief Kms pass since last successfull PT update - */ - virtual int GetKmFromSuccessfulExchange() = 0; - - /** - * @brief Days pass since last successfull PT update - */ - virtual int GetDayFromScsExchange() = 0; - - /** - * @brief Ignition cycles pass since last successfull PT update - */ - virtual int GetIgnitionsFromScsExchange() = 0; - - /** - * @brief Set current system language - * @param language System language - * @return true, if succedeed, otherwise - false - */ - virtual bool SetSystemLanguage(const std::string& language) = 0; - - /** - * Increments global counter - * @param type type of counter - */ - virtual void Increment(const std::string& type) const = 0; - - /** - * Increments counter of application - * @param app_id id application - * @param type type of counter - */ - virtual void Increment(const std::string& app_id, - const std::string& type) const = 0; - - /** - * Sets value of application information - * @param app_id id application - * @param type type of information - * @param value value of information - */ - virtual void Set(const std::string& app_id, const std::string& type, - const std::string& value) const = 0; - - /** - * Adds value to stopwatch of application - * @param app_id id application - * @param type type of stopwatch - * @param seconds value for adding in seconds - */ - virtual void Add(const std::string& app_id, const std::string& type, - int seconds) const = 0; - - virtual bool CountUnconsentedGroups(const std::string& policy_app_id, - const std::string& device_id, - int* result) const = 0; - - /** - * @brief Gets functional group names and user_consent_prompts, if any - * @param Array to be filled with group ids, names and functional prompts - * @return true, if succeeded, otherwise - false - */ - // TODO(AOleynik): Possibly, we can get rid of this method. Check this. - virtual bool GetFunctionalGroupNames(policy::FunctionalGroupNames& names) = 0; - - /** - * @brief Set app policy to pre_DataConsented policy - * @param app_id Policy ID of application to be changed - * @return true, if succeeded, otherwise - false - */ - virtual bool SetPredataPolicy(const std::string& app_id) = 0; - - /** - * @brief Updates application policy to either pre_DataConsented or not - * @param app_id Policy Id of application to be checked - * @param is_pre_data True of False to setting app policy to be pre_DataConsented - * @return true, if succeeded, otherwise - false - */ - virtual bool SetIsPredata(const std::string& app_id, bool is_pre_data) = 0; - - /** - * @brief Removes unpaired devices - * @return true if success - */ - virtual bool CleanupUnpairedDevices(const DeviceIds& device_ids) const = 0; - - /** - * Sets flag of unpaired device - * @param device_id Unique device id - * @param unpaired True, if unpaired, otherwise - false - * @return true if success - */ - virtual bool SetUnpairedDevice(const std::string& device_id, - bool unpaired) const = 0; - - /** - * Gets list of unpaired devices - * @param device_ids output list - * @return true if success - */ - virtual bool UnpairedDevicesList(DeviceIds* device_ids) const = 0; - - /** - * @brief Remove application consent for particular group - * @param policy_app_id Unique application id - * @param functional_group_name Functional group name, which consents should - * be removed - * @return true, in case of success, otherwise - false - */ - virtual bool RemoveAppConsentForGroup( + /** + * @brief Counter for statistics information: adds 1 to existing number. + * @param type Type of statistics (errors, mins in mode etc) + * @return bool Success of operation + */ + virtual bool IncreaseStatisticsData(StatisticsType type) = 0; + + /** + * @brief Records information about what language + * application tried to register with. + * @param app_id Id of application + * @param type - language for UI/VR + * @param language Language + * @return bool Success of operation + */ + virtual bool SetAppRegistrationLanguage(const std::string& app_id, + LanguageType type, + const std::string& language) = 0; + + /** + * @brief Records information about head unit system to PT + * @return bool Success of operation + */ + virtual bool SetMetaInfo(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language) = 0; + + /** + * @brief Checks, if specific head unit is present in PT + * @return boot Suceess, if present, otherwise - false + */ + virtual bool IsMetaInfoPresent() = 0; + + /** + * @brief Kms pass since last successfull PT update + */ + virtual int GetKmFromSuccessfulExchange() = 0; + + /** + * @brief Days pass since last successfull PT update + */ + virtual int GetDayFromScsExchange() = 0; + + /** + * @brief Ignition cycles pass since last successfull PT update + */ + virtual int GetIgnitionsFromScsExchange() = 0; + + /** + * @brief Set current system language + * @param language System language + * @return true, if succedeed, otherwise - false + */ + virtual bool SetSystemLanguage(const std::string& language) = 0; + + /** + * Increments global counter + * @param type type of counter + */ + virtual void Increment(const std::string& type) const = 0; + + /** + * Increments counter of application + * @param app_id id application + * @param type type of counter + */ + virtual void Increment(const std::string& app_id, + const std::string& type) const = 0; + + /** + * Sets value of application information + * @param app_id id application + * @param type type of information + * @param value value of information + */ + virtual void Set(const std::string& app_id, + const std::string& type, + const std::string& value) const = 0; + + /** + * Adds value to stopwatch of application + * @param app_id id application + * @param type type of stopwatch + * @param seconds value for adding in seconds + */ + virtual void Add(const std::string& app_id, + const std::string& type, + int seconds) const = 0; + + virtual bool CountUnconsentedGroups(const std::string& policy_app_id, + const std::string& device_id, + int* result) const = 0; + + /** + * @brief Gets functional group names and user_consent_prompts, if any + * @param Array to be filled with group ids, names and functional prompts + * @return true, if succeeded, otherwise - false + */ + // TODO(AOleynik): Possibly, we can get rid of this method. Check this. + virtual bool GetFunctionalGroupNames(policy::FunctionalGroupNames& names) = 0; + + /** + * @brief Set app policy to pre_DataConsented policy + * @param app_id Policy ID of application to be changed + * @return true, if succeeded, otherwise - false + */ + virtual bool SetPredataPolicy(const std::string& app_id) = 0; + + /** + * @brief Updates application policy to either pre_DataConsented or not + * @param app_id Policy Id of application to be checked + * @param is_pre_data True of False to setting app policy to be + * pre_DataConsented + * @return true, if succeeded, otherwise - false + */ + virtual bool SetIsPredata(const std::string& app_id, bool is_pre_data) = 0; + + /** + * @brief Removes unpaired devices + * @return true if success + */ + virtual bool CleanupUnpairedDevices(const DeviceIds& device_ids) const = 0; + + /** + * Sets flag of unpaired device + * @param device_id Unique device id + * @param unpaired True, if unpaired, otherwise - false + * @return true if success + */ + virtual bool SetUnpairedDevice(const std::string& device_id, + bool unpaired) const = 0; + + /** + * Gets list of unpaired devices + * @param device_ids output list + * @return true if success + */ + virtual bool UnpairedDevicesList(DeviceIds* device_ids) const = 0; + + /** + * @brief Remove application consent for particular group + * @param policy_app_id Unique application id + * @param functional_group_name Functional group name, which consents should + * be removed + * @return true, in case of success, otherwise - false + */ + virtual bool RemoveAppConsentForGroup( const std::string& policy_app_id, const std::string& functional_group_name) const = 0; }; diff --git a/src/components/policy/src/policy/include/policy/pt_representation.h b/src/components/policy/src/policy/include/policy/pt_representation.h index 86ab149a6a..650c94b931 100644 --- a/src/components/policy/src/policy/include/policy/pt_representation.h +++ b/src/components/policy/src/policy/include/policy/pt_representation.h @@ -43,284 +43,280 @@ namespace policy_table = rpc::policy_table_interface_base; namespace policy { -enum InitResult { - NONE = 0, - EXISTS, - SUCCESS, - FAIL -}; +enum InitResult { NONE = 0, EXISTS, SUCCESS, FAIL }; class PTRepresentation { - public: - virtual ~PTRepresentation() { - } - - /** - * @brief Check if specified RPC for specified application - * has permission to be executed in specified HMI Level - * and also its permitted params. - * @param app_id Id of application provided during registration - * @param hmi_level Current HMI Level of application - * @param rpc Name of RPC - * @params CheckPermissionResult containing flag if HMI Level is allowed - * and list of allowed params. - */ - virtual void CheckPermissions(const PTString& app_id, - const PTString& hmi_level, - const PTString& rpc, - CheckPermissionResult& result) = 0; - - /** - * @brief Returns true if Policy Table was not updated yet - * from preloaded pt file. - */ - virtual bool IsPTPreloaded() = 0; - - virtual bool RefreshDB() = 0; - /** - * Gets number of ignition cycles before next update policy table - * @return number of ignition cycles - */ - virtual int IgnitionCyclesBeforeExchange() = 0; - - /** - * Gets value in kilometers before next update policy table - * @param current value in kilometers from the odometers - * @return value in kilometers - */ - virtual int KilometersBeforeExchange(int current) = 0; - - /** - * @brief Sets kilometers and days after epoch, that passed for recieved - * successful PT UPdate - */ - virtual bool SetCountersPassedForSuccessfulUpdate(int kilometers, - int days_after_epoch) = 0; - - /** - * Gets value in days before next update policy table - * @param current value in days after epoch - * @return value in days - */ - virtual int DaysBeforeExchange(int current) = 0; - - /** - * @brief Increment number of ignition cycles since last exchange by 1 - */ - virtual void IncrementIgnitionCycles() = 0; - - /** - * @brief Reset number of ignition cycles since last exchange to 0 - */ - virtual void ResetIgnitionCycles() = 0; - - /** - * @brief Returns timeout to wait for a response of PT update - * @return value in seconds - */ - virtual int TimeoutResponse() = 0; - - /** - * @brief Returns number of seconds between each try of sending PTS - * @param seconds Return value: array of 5 elements - * @return bool Success of operation - */ - virtual bool SecondsBetweenRetries(std::vector<int>* seconds) = 0; - - /** - * @brief Get information about vehicle - */ - virtual const VehicleInfo GetVehicleInfo() const = 0; - - /** - * @brief Allows to update 'vin' field in module_meta table. - * - * @param new 'vin' value. - * - * @return true in case when data has been successfully updated, - * false otherwise. - */ - virtual bool SetVINValue(const std::string& value) = 0; - - /** - * @brief Get message text for displaying/pronouncing for user - * dependent on language and context. - * @param msg_codes Context of message (Driver distraction, Grant permission etc) - * @param language Language of the message - * @return Array of appropriate messages parameters - */ - virtual std::vector<UserFriendlyMessage> GetUserFriendlyMsg( - const std::vector<std::string>& msg_codes, const std::string& language) = 0; - - /** - * @brief Get list of URL to send PTS to - * @param service_type If URLs for specific service are preset, - * return them otherwise default URLs. - */ - virtual EndpointUrls GetUpdateUrls(int service_type) = 0; - - /** - * @brief GetLockScreenIcon allows to obtain lock screen icon url; - * - * @return url which point to the resourse where lock screen icon could be obtained. - */ - virtual std::string GetLockScreenIconUrl() const = 0; - - /** - * @brief Get allowed number of notifications - * depending on application priority. - * @param priority Priority of application - */ - virtual int GetNotificationsNumber(const std::string& priority) = 0; - - /** - * @brief Get priority for given application - * @param policy_app_id Unique application id - * @param priority Priority for application or empty, if value was not set - * @return true, if succedeed, otherwise - false - */ - virtual bool GetPriority(const std::string& policy_app_id, - std::string* priority) = 0; - - - /** - * @brief Initialized Policy Table (load) - * @return bool Success of operation - */ - virtual InitResult Init(const PolicySettings* settings) = 0; - - /** - * @brief Close policy table - * @return bool Success of operation - */ - virtual bool Close() = 0; - - /** - * @brief Removes policy table content. - * @return bool Success of operation - */ - virtual bool Clear() = 0; - - /** - * Drops policy table (schema and content) - * @return true if successfully - */ - virtual bool Drop() = 0; - - /** - * @brief Get snapshot of Policy Table - * including app_policies, functional_groups, - * device_info, statistics, excluding user messages - * @return Generated structure for obtaining Json string. - */ - virtual utils::SharedPtr<policy_table::Table> GenerateSnapshot() const = 0; - - - virtual bool Save(const policy_table::Table& table) = 0; - - /** - * Gets flag updateRequired - * @return true if update is required - */ - virtual bool UpdateRequired() const = 0; - - /** - * Saves flag updateRequired - */ - virtual void SaveUpdateRequired(bool value) = 0; - - /* - Retrieves data from app_policies about app on its registration: - app_id - id of registered app; all outputs are filled in only if not null - output: nicknames Synonyms for application - output: app_types Section on HMI where app can appear (Navigation, Phone etc) - */ - virtual bool GetInitialAppData(const std::string& app_id, - StringArray* nicknames = NULL, - StringArray* app_types = NULL) = 0; - - /** - * Checks if the application is revoked - * @param app_id application id - * @return true if application is revoked - */ - virtual bool IsApplicationRevoked(const std::string& app_id) const = 0; - - /** - * @brief Get functional groupings from DB - * @param groups Known functional groupings - * @return true, if succeeded, otherwise - false - */ - virtual bool GetFunctionalGroupings(policy_table::FunctionalGroupings& groups) = 0; - - /** - * Checks if the application is represented in policy table - * @param app_id application id - * @return true if application is represented in policy table - */ - virtual bool IsApplicationRepresented(const std::string& app_id) const = 0; - - /** - * Checks if the application has default policy - * @param app_id application id - * @return true if application has default policy - */ - virtual bool IsDefaultPolicy(const std::string& app_id) const = 0; - - /** - * Checks if the application has pre_data policy - * @param app_id application id - * @return true if application has pre_data policy - */ - virtual bool IsPredataPolicy(const std::string& app_id) const = 0; - - /** - * Sets default policy for application - * @param app_id application id - * @return true if success - */ - virtual bool SetDefaultPolicy(const std::string& app_id) = 0; - - /** - * @brief SaveApplicationCustomData allows to save specific data to database. - * This data is only for internal use. - * @param app_id the application id for which the data will be saved. - * @param is_revoked parameter to save. - * @param is_default parameter to save. - * @param is_predata parameter to save. - */ - virtual bool SaveApplicationCustomData(const std::string& app_id, - bool is_revoked, - bool is_default, - bool is_predata) = 0; - - virtual void WriteDb() = 0; - - /** - * @brief RemoveDB allows to remove the database. - * It will either remove or do nothing in case file not exists or any other - * troubles are happens during this operation. - */ - virtual void RemoveDB() const = 0; - - /** - * @brief Checks if DB version is actual to current schema - * @return true if actual, otherwise - false - */ - virtual bool IsDBVersionActual() const = 0; - - /** - * @brief Updates DB version according to current schema - * @return true if success, otherwise - false - */ - virtual bool UpdateDBVersion() const = 0; - - protected: - const PolicySettings& get_settings() const { - DCHECK(settings_); - return *settings_; - } - const PolicySettings* settings_; + public: + virtual ~PTRepresentation() {} + + /** + * @brief Check if specified RPC for specified application + * has permission to be executed in specified HMI Level + * and also its permitted params. + * @param app_id Id of application provided during registration + * @param hmi_level Current HMI Level of application + * @param rpc Name of RPC + * @params CheckPermissionResult containing flag if HMI Level is allowed + * and list of allowed params. + */ + virtual void CheckPermissions(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + CheckPermissionResult& result) = 0; + + /** + * @brief Returns true if Policy Table was not updated yet + * from preloaded pt file. + */ + virtual bool IsPTPreloaded() = 0; + + virtual bool RefreshDB() = 0; + /** + * Gets number of ignition cycles before next update policy table + * @return number of ignition cycles + */ + virtual int IgnitionCyclesBeforeExchange() = 0; + + /** + * Gets value in kilometers before next update policy table + * @param current value in kilometers from the odometers + * @return value in kilometers + */ + virtual int KilometersBeforeExchange(int current) = 0; + + /** + * @brief Sets kilometers and days after epoch, that passed for recieved + * successful PT UPdate + */ + virtual bool SetCountersPassedForSuccessfulUpdate(int kilometers, + int days_after_epoch) = 0; + + /** + * Gets value in days before next update policy table + * @param current value in days after epoch + * @return value in days + */ + virtual int DaysBeforeExchange(int current) = 0; + + /** + * @brief Increment number of ignition cycles since last exchange by 1 + */ + virtual void IncrementIgnitionCycles() = 0; + + /** + * @brief Reset number of ignition cycles since last exchange to 0 + */ + virtual void ResetIgnitionCycles() = 0; + + /** + * @brief Returns timeout to wait for a response of PT update + * @return value in seconds + */ + virtual int TimeoutResponse() = 0; + + /** + * @brief Returns number of seconds between each try of sending PTS + * @param seconds Return value: array of 5 elements + * @return bool Success of operation + */ + virtual bool SecondsBetweenRetries(std::vector<int>* seconds) = 0; + + /** + * @brief Get information about vehicle + */ + virtual const VehicleInfo GetVehicleInfo() const = 0; + + /** + * @brief Allows to update 'vin' field in module_meta table. + * + * @param new 'vin' value. + * + * @return true in case when data has been successfully updated, + * false otherwise. + */ + virtual bool SetVINValue(const std::string& value) = 0; + + /** + * @brief Get message text for displaying/pronouncing for user + * dependent on language and context. + * @param msg_codes Context of message (Driver distraction, Grant permission + * etc) + * @param language Language of the message + * @return Array of appropriate messages parameters + */ + virtual std::vector<UserFriendlyMessage> GetUserFriendlyMsg( + const std::vector<std::string>& msg_codes, + const std::string& language) = 0; + + /** + * @brief Get list of URL to send PTS to + * @param service_type If URLs for specific service are preset, + * return them otherwise default URLs. + */ + virtual EndpointUrls GetUpdateUrls(int service_type) = 0; + + /** + * @brief GetLockScreenIcon allows to obtain lock screen icon url; + * + * @return url which point to the resourse where lock screen icon could be + *obtained. + */ + virtual std::string GetLockScreenIconUrl() const = 0; + + /** + * @brief Get allowed number of notifications + * depending on application priority. + * @param priority Priority of application + */ + virtual int GetNotificationsNumber(const std::string& priority) = 0; + + /** + * @brief Get priority for given application + * @param policy_app_id Unique application id + * @param priority Priority for application or empty, if value was not set + * @return true, if succedeed, otherwise - false + */ + virtual bool GetPriority(const std::string& policy_app_id, + std::string* priority) = 0; + + /** + * @brief Initialized Policy Table (load) + * @return bool Success of operation + */ + virtual InitResult Init(const PolicySettings* settings) = 0; + + /** + * @brief Close policy table + * @return bool Success of operation + */ + virtual bool Close() = 0; + + /** + * @brief Removes policy table content. + * @return bool Success of operation + */ + virtual bool Clear() = 0; + + /** + * Drops policy table (schema and content) + * @return true if successfully + */ + virtual bool Drop() = 0; + + /** + * @brief Get snapshot of Policy Table + * including app_policies, functional_groups, + * device_info, statistics, excluding user messages + * @return Generated structure for obtaining Json string. + */ + virtual utils::SharedPtr<policy_table::Table> GenerateSnapshot() const = 0; + + virtual bool Save(const policy_table::Table& table) = 0; + + /** + * Gets flag updateRequired + * @return true if update is required + */ + virtual bool UpdateRequired() const = 0; + + /** + * Saves flag updateRequired + */ + virtual void SaveUpdateRequired(bool value) = 0; + + /* + Retrieves data from app_policies about app on its registration: + app_id - id of registered app; all outputs are filled in only if not null + output: nicknames Synonyms for application + output: app_types Section on HMI where app can appear (Navigation, Phone etc) + */ + virtual bool GetInitialAppData(const std::string& app_id, + StringArray* nicknames = NULL, + StringArray* app_types = NULL) = 0; + + /** + * Checks if the application is revoked + * @param app_id application id + * @return true if application is revoked + */ + virtual bool IsApplicationRevoked(const std::string& app_id) const = 0; + + /** + * @brief Get functional groupings from DB + * @param groups Known functional groupings + * @return true, if succeeded, otherwise - false + */ + virtual bool GetFunctionalGroupings( + policy_table::FunctionalGroupings& groups) = 0; + + /** + * Checks if the application is represented in policy table + * @param app_id application id + * @return true if application is represented in policy table + */ + virtual bool IsApplicationRepresented(const std::string& app_id) const = 0; + + /** + * Checks if the application has default policy + * @param app_id application id + * @return true if application has default policy + */ + virtual bool IsDefaultPolicy(const std::string& app_id) const = 0; + + /** + * Checks if the application has pre_data policy + * @param app_id application id + * @return true if application has pre_data policy + */ + virtual bool IsPredataPolicy(const std::string& app_id) const = 0; + + /** + * Sets default policy for application + * @param app_id application id + * @return true if success + */ + virtual bool SetDefaultPolicy(const std::string& app_id) = 0; + + /** + * @brief SaveApplicationCustomData allows to save specific data to database. + * This data is only for internal use. + * @param app_id the application id for which the data will be saved. + * @param is_revoked parameter to save. + * @param is_default parameter to save. + * @param is_predata parameter to save. + */ + virtual bool SaveApplicationCustomData(const std::string& app_id, + bool is_revoked, + bool is_default, + bool is_predata) = 0; + + virtual void WriteDb() = 0; + + /** + * @brief RemoveDB allows to remove the database. + * It will either remove or do nothing in case file not exists or any other + * troubles are happens during this operation. + */ + virtual void RemoveDB() const = 0; + + /** + * @brief Checks if DB version is actual to current schema + * @return true if actual, otherwise - false + */ + virtual bool IsDBVersionActual() const = 0; + + /** + * @brief Updates DB version according to current schema + * @return true if success, otherwise - false + */ + virtual bool UpdateDBVersion() const = 0; + + protected: + const PolicySettings& get_settings() const { + DCHECK(settings_); + return *settings_; + } + const PolicySettings* settings_; }; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/sql_pt_ext_representation.h b/src/components/policy/src/policy/include/policy/sql_pt_ext_representation.h index 1a8663fdee..1d33750b12 100644 --- a/src/components/policy/src/policy/include/policy/sql_pt_ext_representation.h +++ b/src/components/policy/src/policy/include/policy/sql_pt_ext_representation.h @@ -40,160 +40,164 @@ namespace policy { class SQLPTExtRepresentation : public SQLPTRepresentation, - public PTExtRepresentation { - public: - bool CanAppKeepContext(const std::string& app_id); - bool CanAppStealFocus(const std::string& app_id); - bool GetDefaultHMI(const std::string& policy_app_id, - std::string* default_hmi); - bool ResetUserConsent(); - bool ResetDeviceConsents(); - bool ResetAppConsents(); - bool GetUserPermissionsForDevice(const std::string& device_id, - StringArray* consented_groups = NULL, - StringArray* disallowed_groups = NULL); - - bool GetPermissionsForApp( - const std::string& device_id, const std::string& policy_app_id, - FunctionalIdType* group_types); - - bool GetDeviceGroupsFromPolicies(policy_table::Strings* groups = NULL, - policy_table::Strings* preconsented_groups = - NULL); - bool SetDeviceData(const std::string& device_id, - const std::string& hardware = "", - const std::string& firmware = "", - const std::string& os = "", - const std::string& os_version = "", - const std::string& carrier = "", - const uint32_t number_of_ports = 0, - const std::string& connection_type = ""); - bool SetUserPermissionsForDevice(const std::string& device_id, - const StringArray& consented_groups = - StringArray(), - const StringArray& disallowed_groups = - StringArray()); - - bool ReactOnUserDevConsentForApp(const std::string& app_id, - bool is_device_allowed); - - bool SetUserPermissionsForApp(const PermissionConsent& permissions); - - std::vector<UserFriendlyMessage> GetUserFriendlyMsg( + public PTExtRepresentation { + public: + bool CanAppKeepContext(const std::string& app_id); + bool CanAppStealFocus(const std::string& app_id); + bool GetDefaultHMI(const std::string& policy_app_id, + std::string* default_hmi); + bool ResetUserConsent(); + bool ResetDeviceConsents(); + bool ResetAppConsents(); + bool GetUserPermissionsForDevice(const std::string& device_id, + StringArray* consented_groups = NULL, + StringArray* disallowed_groups = NULL); + + bool GetPermissionsForApp(const std::string& device_id, + const std::string& policy_app_id, + FunctionalIdType* group_types); + + bool GetDeviceGroupsFromPolicies( + policy_table::Strings* groups = NULL, + policy_table::Strings* preconsented_groups = NULL); + bool SetDeviceData(const std::string& device_id, + const std::string& hardware = "", + const std::string& firmware = "", + const std::string& os = "", + const std::string& os_version = "", + const std::string& carrier = "", + const uint32_t number_of_ports = 0, + const std::string& connection_type = ""); + bool SetUserPermissionsForDevice( + const std::string& device_id, + const StringArray& consented_groups = StringArray(), + const StringArray& disallowed_groups = StringArray()); + + bool ReactOnUserDevConsentForApp(const std::string& app_id, + bool is_device_allowed); + + bool SetUserPermissionsForApp(const PermissionConsent& permissions); + + std::vector<UserFriendlyMessage> GetUserFriendlyMsg( const std::vector<std::string>& msg_codes, const std::string& language); - bool IncreaseStatisticsData(StatisticsType type) { - return true; - } - bool SetAppRegistrationLanguage(const std::string& app_id, LanguageType type, - const std::string& language) { - return true; - } - - bool SetMetaInfo(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language); - - bool IsMetaInfoPresent(); - - bool SetSystemLanguage(const std::string& language); - - int GetKmFromSuccessfulExchange() { - return true; - } - int GetDayFromScsExchange() { - return true; - } - int GetIgnitionsFromScsExchange() { - return true; - } - - bool GetFunctionalGroupNames(FunctionalGroupNames& names); - bool CleanupUnpairedDevices(const DeviceIds& device_ids) const; - - void Increment(const std::string& type) const; - void Increment(const std::string& app_id, const std::string& type) const; - void Set(const std::string& app_id, const std::string& type, - const std::string& value) const; - void Add(const std::string& app_id, const std::string& type, - int seconds) const; - bool SetDefaultPolicy(const std::string& app_id); - bool SetPredataPolicy(const std::string& app_id); - bool SetIsPredata(const std::string& app_id, bool is_pre_data); - bool IsPredataPolicy(const std::string& app_id) const; - bool SetUnpairedDevice(const std::string& device_id, bool unpaired) const; - bool UnpairedDevicesList(DeviceIds* device_ids) const; - bool RemoveAppConsentForGroup( - const std::string& policy_app_id, - const std::string& functional_group_name) const; - - virtual bool SetVINValue(const std::string& value); - - private: - void GatherModuleMeta(policy_table::ModuleMeta* meta) const; - void GatherPreconsentedGroup(const std::string& app_id, - policy_table::Strings* groups) const; - bool GatherUsageAndErrorCounts( + bool IncreaseStatisticsData(StatisticsType type) { + return true; + } + bool SetAppRegistrationLanguage(const std::string& app_id, + LanguageType type, + const std::string& language) { + return true; + } + + bool SetMetaInfo(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language); + + bool IsMetaInfoPresent(); + + bool SetSystemLanguage(const std::string& language); + + int GetKmFromSuccessfulExchange() { + return true; + } + int GetDayFromScsExchange() { + return true; + } + int GetIgnitionsFromScsExchange() { + return true; + } + + bool GetFunctionalGroupNames(FunctionalGroupNames& names); + bool CleanupUnpairedDevices(const DeviceIds& device_ids) const; + + void Increment(const std::string& type) const; + void Increment(const std::string& app_id, const std::string& type) const; + void Set(const std::string& app_id, + const std::string& type, + const std::string& value) const; + void Add(const std::string& app_id, + const std::string& type, + int seconds) const; + bool SetDefaultPolicy(const std::string& app_id); + bool SetPredataPolicy(const std::string& app_id); + bool SetIsPredata(const std::string& app_id, bool is_pre_data); + bool IsPredataPolicy(const std::string& app_id) const; + bool SetUnpairedDevice(const std::string& device_id, bool unpaired) const; + bool UnpairedDevicesList(DeviceIds* device_ids) const; + bool RemoveAppConsentForGroup(const std::string& policy_app_id, + const std::string& functional_group_name) const; + + virtual bool SetVINValue(const std::string& value); + + private: + void GatherModuleMeta(policy_table::ModuleMeta* meta) const; + void GatherPreconsentedGroup(const std::string& app_id, + policy_table::Strings* groups) const; + bool GatherUsageAndErrorCounts( policy_table::UsageAndErrorCounts* counts) const; - bool GatherAppLevels(policy_table::AppLevels* apps) const; - void GatherDeviceData(policy_table::DeviceData* data) const; - void GatherConsentGroup(const std::string& device_id, - policy_table::UserConsentRecords* records) const; - bool GatherApplicationPoliciesSection( - policy_table::ApplicationPoliciesSection* policies) const; - bool SaveDeviceData(const policy_table::DeviceData& devices); - bool GatherConsumerFriendlyMessages( - policy_table::ConsumerFriendlyMessages* messages) const; - bool SaveConsentGroup(const std::string& device_id, - const policy_table::UserConsentRecords& records); - bool SaveApplicationPoliciesSection(const policy_table::ApplicationPoliciesSection& policies); - bool SaveSpecificAppPolicy( - const policy_table::ApplicationPolicies::value_type& app); - bool SaveDevicePolicy(const policy_table::DevicePolicy& device); - bool SavePreconsentedGroup(const std::string& app_id, - const policy_table::Strings& groups); - bool SaveMessageString(const std::string& type, const std::string& lang, - const policy_table::MessageString& strings); - - virtual bool SaveUsageAndErrorCounts( - const policy_table::UsageAndErrorCounts& counts); - - virtual bool SaveModuleMeta(const policy_table::ModuleMeta& meta); - - bool SaveAppCounters(const policy_table::AppLevels& app_levels); - - bool SaveGlobalCounters(const policy_table::UsageAndErrorCounts& counts); - - bool IsExistAppLevel(const std::string& app_id) const; - - bool GetAllAppGroups(const std::string& policy_app_id, - FunctionalGroupIDs& all_groups); - - bool GetConsentedGroups(const std::string& policy_app_id, - const std::string& device_id, - FunctionalGroupIDs& allowed_groups, - FunctionalGroupIDs& disallowed_groups); - - bool GetPreconsentedGroups(const std::string& policy_app_id, - FunctionalGroupIDs& preconsented_groups); - - void FillFunctionalGroupPermissions( - FunctionalGroupIDs& ids, FunctionalGroupNames& names, + bool GatherAppLevels(policy_table::AppLevels* apps) const; + void GatherDeviceData(policy_table::DeviceData* data) const; + void GatherConsentGroup(const std::string& device_id, + policy_table::UserConsentRecords* records) const; + bool GatherApplicationPoliciesSection( + policy_table::ApplicationPoliciesSection* policies) const; + bool SaveDeviceData(const policy_table::DeviceData& devices); + bool GatherConsumerFriendlyMessages( + policy_table::ConsumerFriendlyMessages* messages) const; + bool SaveConsentGroup(const std::string& device_id, + const policy_table::UserConsentRecords& records); + bool SaveApplicationPoliciesSection( + const policy_table::ApplicationPoliciesSection& policies); + bool SaveSpecificAppPolicy( + const policy_table::ApplicationPolicies::value_type& app); + bool SaveDevicePolicy(const policy_table::DevicePolicy& device); + bool SavePreconsentedGroup(const std::string& app_id, + const policy_table::Strings& groups); + bool SaveMessageString(const std::string& type, + const std::string& lang, + const policy_table::MessageString& strings); + + virtual bool SaveUsageAndErrorCounts( + const policy_table::UsageAndErrorCounts& counts); + + virtual bool SaveModuleMeta(const policy_table::ModuleMeta& meta); + + bool SaveAppCounters(const policy_table::AppLevels& app_levels); + + bool SaveGlobalCounters(const policy_table::UsageAndErrorCounts& counts); + + bool IsExistAppLevel(const std::string& app_id) const; + + bool GetAllAppGroups(const std::string& policy_app_id, + FunctionalGroupIDs& all_groups); + + bool GetConsentedGroups(const std::string& policy_app_id, + const std::string& device_id, + FunctionalGroupIDs& allowed_groups, + FunctionalGroupIDs& disallowed_groups); + + bool GetPreconsentedGroups(const std::string& policy_app_id, + FunctionalGroupIDs& preconsented_groups); + + void FillFunctionalGroupPermissions( + FunctionalGroupIDs& ids, + FunctionalGroupNames& names, GroupConsent state, std::vector<FunctionalGroupPermission>& permissions); - bool CountUnconsentedGroups(const std::string& policy_app_id, - const std::string& device_id, - int* result) const; - - /** - * @brief Checks, if there is message present with requested language in PT - * @param message Message name - * @param language Required message language - * @return True, if message with requested language is present, otherwise - - * false - */ - bool IsMsgLanguagePresent(const std::string& message, - const std::string& language); + bool CountUnconsentedGroups(const std::string& policy_app_id, + const std::string& device_id, + int* result) const; + + /** + * @brief Checks, if there is message present with requested language in PT + * @param message Message name + * @param language Required message language + * @return True, if message with requested language is present, otherwise - + * false + */ + bool IsMsgLanguagePresent(const std::string& message, + const std::string& language); }; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/sql_pt_representation.h b/src/components/policy/src/policy/include/policy/sql_pt_representation.h index c232c5c47c..223acb5f3d 100644 --- a/src/components/policy/src/policy/include/policy/sql_pt_representation.h +++ b/src/components/policy/src/policy/include/policy/sql_pt_representation.h @@ -44,161 +44,159 @@ namespace policy_table = rpc::policy_table_interface_base; namespace utils { namespace dbms { class SQLDatabase; -} // namespace dbms -} // namespace utils - +} // namespace dbms +} // namespace utils namespace policy { class SQLPTRepresentation : public virtual PTRepresentation { - public: - SQLPTRepresentation(); - ~SQLPTRepresentation(); - virtual void CheckPermissions(const PTString& app_id, - const PTString& hmi_level, - const PTString& rpc, - CheckPermissionResult& result); - - virtual bool IsPTPreloaded(); - virtual int IgnitionCyclesBeforeExchange(); - virtual int KilometersBeforeExchange(int current); - virtual bool SetCountersPassedForSuccessfulUpdate(int kilometers, - int days_after_epoch); - virtual int DaysBeforeExchange(int current); - virtual void IncrementIgnitionCycles(); - virtual void ResetIgnitionCycles(); - virtual int TimeoutResponse(); - virtual bool SecondsBetweenRetries(std::vector<int>* seconds); - virtual bool RefreshDB(); - virtual const VehicleInfo GetVehicleInfo() const; - - virtual std::vector<UserFriendlyMessage> GetUserFriendlyMsg( + public: + SQLPTRepresentation(); + ~SQLPTRepresentation(); + virtual void CheckPermissions(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + CheckPermissionResult& result); + + virtual bool IsPTPreloaded(); + virtual int IgnitionCyclesBeforeExchange(); + virtual int KilometersBeforeExchange(int current); + virtual bool SetCountersPassedForSuccessfulUpdate(int kilometers, + int days_after_epoch); + virtual int DaysBeforeExchange(int current); + virtual void IncrementIgnitionCycles(); + virtual void ResetIgnitionCycles(); + virtual int TimeoutResponse(); + virtual bool SecondsBetweenRetries(std::vector<int>* seconds); + virtual bool RefreshDB(); + virtual const VehicleInfo GetVehicleInfo() const; + + virtual std::vector<UserFriendlyMessage> GetUserFriendlyMsg( const std::vector<std::string>& msg_codes, const std::string& language); - virtual EndpointUrls GetUpdateUrls(int service_type); - virtual std::string GetLockScreenIconUrl() const; - virtual int GetNotificationsNumber(const std::string& priority); - virtual bool GetPriority(const std::string& policy_app_id, - std::string* priority); - InitResult Init(const PolicySettings* settings); - bool Close(); - bool Clear(); - bool Drop(); - virtual void WriteDb(); - virtual utils::SharedPtr<policy_table::Table> GenerateSnapshot() const; - virtual bool Save(const policy_table::Table& table); - bool GetInitialAppData(const std::string& app_id, StringArray* nicknames = - NULL, - StringArray* app_hmi_types = NULL); - bool GetFunctionalGroupings(policy_table::FunctionalGroupings& groups); + virtual EndpointUrls GetUpdateUrls(int service_type); + virtual std::string GetLockScreenIconUrl() const; + virtual int GetNotificationsNumber(const std::string& priority); + virtual bool GetPriority(const std::string& policy_app_id, + std::string* priority); + InitResult Init(const PolicySettings* settings); + bool Close(); + bool Clear(); + bool Drop(); + virtual void WriteDb(); + virtual utils::SharedPtr<policy_table::Table> GenerateSnapshot() const; + virtual bool Save(const policy_table::Table& table); + bool GetInitialAppData(const std::string& app_id, + StringArray* nicknames = NULL, + StringArray* app_hmi_types = NULL); + bool GetFunctionalGroupings(policy_table::FunctionalGroupings& groups); #ifdef BUILD_TESTS - uint32_t open_counter() { + uint32_t open_counter() { return open_counter_; - } -#endif // BUILD_TESTS - protected: - virtual void GatherModuleMeta(policy_table::ModuleMeta* meta) const; - virtual void GatherModuleConfig(policy_table::ModuleConfig* config) const; - virtual bool GatherUsageAndErrorCounts( + } +#endif // BUILD_TESTS + protected: + virtual void GatherModuleMeta(policy_table::ModuleMeta* meta) const; + virtual void GatherModuleConfig(policy_table::ModuleConfig* config) const; + virtual bool GatherUsageAndErrorCounts( policy_table::UsageAndErrorCounts* counts) const; - virtual void GatherDeviceData(policy_table::DeviceData* data) const; - virtual bool GatherFunctionalGroupings( + virtual void GatherDeviceData(policy_table::DeviceData* data) const; + virtual bool GatherFunctionalGroupings( policy_table::FunctionalGroupings* groups) const; - virtual bool GatherConsumerFriendlyMessages( + virtual bool GatherConsumerFriendlyMessages( policy_table::ConsumerFriendlyMessages* messages) const; - virtual bool GatherApplicationPoliciesSection( + virtual bool GatherApplicationPoliciesSection( policy_table::ApplicationPoliciesSection* policies) const; - bool GatherAppGroup(const std::string& app_id, - policy_table::Strings* app_groups) const; - bool GatherAppType(const std::string& app_id, - policy_table::AppHMITypes* app_types) const; - bool GatherRequestType(const std::string& app_id, - policy_table::RequestTypes* request_types) const; - bool GatherNickName(const std::string& app_id, - policy_table::Strings* nicknames) const; - - virtual bool SaveApplicationCustomData(const std::string& app_id, - bool is_revoked, - bool is_default, - bool is_predata); - - virtual bool SaveModuleMeta(const policy_table::ModuleMeta& meta); - virtual bool SaveModuleConfig(const policy_table::ModuleConfig& config); - virtual bool SaveUsageAndErrorCounts( + bool GatherAppGroup(const std::string& app_id, + policy_table::Strings* app_groups) const; + bool GatherAppType(const std::string& app_id, + policy_table::AppHMITypes* app_types) const; + bool GatherRequestType(const std::string& app_id, + policy_table::RequestTypes* request_types) const; + bool GatherNickName(const std::string& app_id, + policy_table::Strings* nicknames) const; + + virtual bool SaveApplicationCustomData(const std::string& app_id, + bool is_revoked, + bool is_default, + bool is_predata); + + virtual bool SaveModuleMeta(const policy_table::ModuleMeta& meta); + virtual bool SaveModuleConfig(const policy_table::ModuleConfig& config); + virtual bool SaveUsageAndErrorCounts( const policy_table::UsageAndErrorCounts& counts); - virtual bool SaveDeviceData(const policy_table::DeviceData& devices); - virtual bool SaveFunctionalGroupings( + virtual bool SaveDeviceData(const policy_table::DeviceData& devices); + virtual bool SaveFunctionalGroupings( const policy_table::FunctionalGroupings& groups); - virtual bool SaveConsumerFriendlyMessages( + virtual bool SaveConsumerFriendlyMessages( const policy_table::ConsumerFriendlyMessages& messages); - virtual bool SaveApplicationPoliciesSection( + virtual bool SaveApplicationPoliciesSection( const policy_table::ApplicationPoliciesSection& policies); - virtual bool SaveSpecificAppPolicy( + virtual bool SaveSpecificAppPolicy( const policy_table::ApplicationPolicies::value_type& app); - virtual bool SaveDevicePolicy(const policy_table::DevicePolicy& device); - - virtual bool SaveMessageString(const std::string& type, - const std::string& lang, - const policy_table::MessageString& strings); + virtual bool SaveDevicePolicy(const policy_table::DevicePolicy& device); - bool SaveAppGroup(const std::string& app_id, - const policy_table::Strings& app_groups); - bool SaveNickname(const std::string& app_id, - const policy_table::Strings& nicknames); - bool SaveAppType(const std::string& app_id, - const policy_table::AppHMITypes& types); - bool SaveRequestType(const std::string& app_id, - const policy_table::RequestTypes& types); + virtual bool SaveMessageString(const std::string& type, + const std::string& lang, + const policy_table::MessageString& strings); - public: - bool UpdateRequired() const; - void SaveUpdateRequired(bool value); + bool SaveAppGroup(const std::string& app_id, + const policy_table::Strings& app_groups); + bool SaveNickname(const std::string& app_id, + const policy_table::Strings& nicknames); + bool SaveAppType(const std::string& app_id, + const policy_table::AppHMITypes& types); + bool SaveRequestType(const std::string& app_id, + const policy_table::RequestTypes& types); - bool IsApplicationRepresented(const std::string& app_id) const; - bool CopyApplication(const std::string& source, - const std::string& destination); + public: + bool UpdateRequired() const; + void SaveUpdateRequired(bool value); - bool IsApplicationRevoked(const std::string& app_id) const; - virtual bool IsDefaultPolicy(const std::string& app_id) const; - virtual bool IsPredataPolicy(const std::string& app_id) const; - virtual bool SetDefaultPolicy(const std::string& app_id); - virtual void SetPreloaded(bool value); + bool IsApplicationRepresented(const std::string& app_id) const; + bool CopyApplication(const std::string& source, + const std::string& destination); - virtual bool SetVINValue(const std::string& value); + bool IsApplicationRevoked(const std::string& app_id) const; + virtual bool IsDefaultPolicy(const std::string& app_id) const; + virtual bool IsPredataPolicy(const std::string& app_id) const; + virtual bool SetDefaultPolicy(const std::string& app_id); + virtual void SetPreloaded(bool value); - virtual utils::dbms::SQLDatabase* db() const; - virtual bool SetIsDefault(const std::string& app_id, bool is_default) const; + virtual bool SetVINValue(const std::string& value); + virtual utils::dbms::SQLDatabase* db() const; + virtual bool SetIsDefault(const std::string& app_id, bool is_default) const; - void RemoveDB() const OVERRIDE; - virtual bool IsDBVersionActual() const OVERRIDE; - virtual bool UpdateDBVersion() const OVERRIDE; + void RemoveDB() const OVERRIDE; + virtual bool IsDBVersionActual() const OVERRIDE; + virtual bool UpdateDBVersion() const OVERRIDE; - private: - static const std::string kDatabaseName; - utils::dbms::SQLDatabase* db_; + private: + static const std::string kDatabaseName; + utils::dbms::SQLDatabase* db_; #ifdef BUILD_TESTS - uint32_t open_counter_; -#endif // BUILD_TESTS - - /** - * @brief Calculates DB version from current schema - * @return version - */ - const int32_t GetDBVersion() const; - bool SaveRpcs(int64_t group_id, const policy_table::Rpc& rpcs); - bool SaveServiceEndpoints(const policy_table::ServiceEndpoints& endpoints); - bool SaveSecondsBetweenRetries( + uint32_t open_counter_; +#endif // BUILD_TESTS + + /** + * @brief Calculates DB version from current schema + * @return version + */ + const int32_t GetDBVersion() const; + bool SaveRpcs(int64_t group_id, const policy_table::Rpc& rpcs); + bool SaveServiceEndpoints(const policy_table::ServiceEndpoints& endpoints); + bool SaveSecondsBetweenRetries( const policy_table::SecondsBetweenRetries& seconds); - bool SaveNumberOfNotificationsPerMinute( + bool SaveNumberOfNotificationsPerMinute( const policy_table::NumberOfNotificationsPerMinute& notifications); - bool SaveMessageType(const std::string& type); - bool SaveLanguage(const std::string& code); + bool SaveMessageType(const std::string& type); + bool SaveLanguage(const std::string& code); - bool is_in_memory; + bool is_in_memory; }; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/sql_wrapper.h b/src/components/policy/src/policy/include/policy/sql_wrapper.h index 29dbdd481d..d6639f6635 100644 --- a/src/components/policy/src/policy/include/policy/sql_wrapper.h +++ b/src/components/policy/src/policy/include/policy/sql_wrapper.h @@ -34,11 +34,11 @@ #define SRC_COMPONENTS_POLICY_INCLUDE_POLICY_SQL_WRAPPER_H_ #if __QNX__ -# include "qdb_wrapper/sql_database.h" -# include "qdb_wrapper/sql_query.h" +#include "qdb_wrapper/sql_database.h" +#include "qdb_wrapper/sql_query.h" #else // __QNX__ -# include "sqlite_wrapper/sql_database.h" -# include "sqlite_wrapper/sql_query.h" +#include "sqlite_wrapper/sql_database.h" +#include "sqlite_wrapper/sql_query.h" #endif // __QNX__ #endif // SRC_COMPONENTS_POLICY_INCLUDE_POLICY_SQL_WRAPPER_H_ diff --git a/src/components/policy/src/policy/include/policy/update_status_manager.h b/src/components/policy/src/policy/include/policy/update_status_manager.h index f239325bdf..b4f52a8b03 100644 --- a/src/components/policy/src/policy/include/policy/update_status_manager.h +++ b/src/components/policy/src/policy/include/policy/update_status_manager.h @@ -122,11 +122,11 @@ class UpdateStatusManager { #ifdef BUILD_TESTS PolicyTableStatus GetLastUpdateStatus() const { - return GetUpdateStatus(); + return GetUpdateStatus(); } -#endif // BUILD_TESTS +#endif // BUILD_TESTS -private: + private: /* * @brief Sets flag for update progress * @@ -153,8 +153,7 @@ private: */ void CheckUpdateStatus(); -private: - + private: /** * @brief Returns current policy update status * @return @@ -176,26 +175,24 @@ private: */ PolicyTableStatus last_update_status_; - class UpdateThreadDelegate: public threads::ThreadDelegate { - - public: + class UpdateThreadDelegate : public threads::ThreadDelegate { + public: UpdateThreadDelegate(UpdateStatusManager* update_status_manager); ~UpdateThreadDelegate(); virtual void threadMain(); virtual void exitThreadMain(); void updateTimeOut(const uint32_t timeout_ms); - volatile uint32_t timeout_; - volatile bool stop_flag_; - sync_primitives::Lock state_lock_; - sync_primitives::ConditionalVariable termination_condition_; - UpdateStatusManager* update_status_manager_; + volatile uint32_t timeout_; + volatile bool stop_flag_; + sync_primitives::Lock state_lock_; + sync_primitives::ConditionalVariable termination_condition_; + UpdateStatusManager* update_status_manager_; }; - UpdateThreadDelegate* update_status_thread_delegate_; - threads::Thread* thread_; + UpdateThreadDelegate* update_status_thread_delegate_; + threads::Thread* thread_; }; - } -#endif // SRC_COMPONENTS_POLICY_INCLUDE_POLICY_UPDATE_STATUS_MANAGER_H +#endif // SRC_COMPONENTS_POLICY_INCLUDE_POLICY_UPDATE_STATUS_MANAGER_H diff --git a/src/components/policy/src/policy/include/policy/update_status_manager_interface.h b/src/components/policy/src/policy/include/policy/update_status_manager_interface.h index f059958477..4c74910791 100644 --- a/src/components/policy/src/policy/include/policy/update_status_manager_interface.h +++ b/src/components/policy/src/policy/include/policy/update_status_manager_interface.h @@ -42,8 +42,7 @@ class PolicyListener; class UpdateStatusManagerInterface { public: - virtual ~UpdateStatusManagerInterface() { - } + virtual ~UpdateStatusManagerInterface() {} /** * @brief Sets listener pointer * @param listener Pointer to policy listener implementation @@ -100,7 +99,8 @@ class UpdateStatusManagerInterface { virtual PolicyTableStatus GetUpdateStatus() = 0; }; -typedef utils::SharedPtr<UpdateStatusManagerInterface> UpdateStatusManagerInterfaceSPtr; +typedef utils::SharedPtr<UpdateStatusManagerInterface> + UpdateStatusManagerInterfaceSPtr; } // namespace policy diff --git a/src/components/policy/src/policy/include/policy/user_consent_manager.h b/src/components/policy/src/policy/include/policy/user_consent_manager.h index 4bf80afb13..55c6239a6c 100644 --- a/src/components/policy/src/policy/include/policy/user_consent_manager.h +++ b/src/components/policy/src/policy/include/policy/user_consent_manager.h @@ -35,9 +35,9 @@ namespace policy { class UserConsentManager { - public: - UserConsentManager() {} - ~UserConsentManager() {} + public: + UserConsentManager() {} + ~UserConsentManager() {} }; } // namespace policy diff --git a/src/components/policy/src/policy/policy_table/table_struct/enums.cc b/src/components/policy/src/policy/policy_table/table_struct/enums.cc index 5ba1efe52c..c8da3aebcd 100644 --- a/src/components/policy/src/policy/policy_table/table_struct/enums.cc +++ b/src/components/policy/src/policy/policy_table/table_struct/enums.cc @@ -5,24 +5,38 @@ namespace rpc { namespace policy_table_interface_base { bool IsValidEnum(Priority val) { switch (val) { - case P_EMERGENCY: return true; - case P_NAVIGATION: return true; - case P_VOICECOM: return true; - case P_COMMUNICATION: return true; - case P_NORMAL: return true; - case P_NONE: return true; - default: return false; + case P_EMERGENCY: + return true; + case P_NAVIGATION: + return true; + case P_VOICECOM: + return true; + case P_COMMUNICATION: + return true; + case P_NORMAL: + return true; + case P_NONE: + return true; + default: + return false; } } const char* EnumToJsonString(Priority val) { switch (val) { - case P_EMERGENCY: return "EMERGENCY"; - case P_NAVIGATION: return "NAVIGATION"; - case P_VOICECOM: return "VOICECOM"; - case P_COMMUNICATION: return "COMMUNICATION"; - case P_NORMAL: return "NORMAL"; - case P_NONE: return "NONE"; - default: return ""; + case P_EMERGENCY: + return "EMERGENCY"; + case P_NAVIGATION: + return "NAVIGATION"; + case P_VOICECOM: + return "VOICECOM"; + case P_COMMUNICATION: + return "COMMUNICATION"; + case P_NORMAL: + return "NORMAL"; + case P_NONE: + return "NONE"; + default: + return ""; } } bool EnumFromJsonString(const std::string& literal, Priority* result) { @@ -51,20 +65,30 @@ bool EnumFromJsonString(const std::string& literal, Priority* result) { bool IsValidEnum(HmiLevel val) { switch (val) { - case HL_BACKGROUND: return true; - case HL_FULL: return true; - case HL_LIMITED: return true; - case HL_NONE: return true; - default: return false; + case HL_BACKGROUND: + return true; + case HL_FULL: + return true; + case HL_LIMITED: + return true; + case HL_NONE: + return true; + default: + return false; } } const char* EnumToJsonString(HmiLevel val) { switch (val) { - case HL_BACKGROUND: return "BACKGROUND"; - case HL_FULL: return "FULL"; - case HL_LIMITED: return "LIMITED"; - case HL_NONE: return "NONE"; - default: return ""; + case HL_BACKGROUND: + return "BACKGROUND"; + case HL_FULL: + return "FULL"; + case HL_LIMITED: + return "LIMITED"; + case HL_NONE: + return "NONE"; + default: + return ""; } } bool EnumFromJsonString(const std::string& literal, HmiLevel* result) { @@ -87,62 +111,114 @@ bool EnumFromJsonString(const std::string& literal, HmiLevel* result) { bool IsValidEnum(Parameter val) { switch (val) { - case P_GPS: return true; - case P_SPEED: return true; - case P_ENGINETORQUE: return true; - case P_EXTERNALTEMPERATURE: return true; - case P_FUELLEVEL: return true; - case P_FUELLEVEL_STATE: return true; - case P_HEADLAMPSTATUS: return true; - case P_INSTANTFUELCONSUMPTION: return true; - case P_ODOMETER: return true; - case P_TIREPRESSURE: return true; - case P_WIPERSTATUS: return true; - case P_VIN: return true; - case P_ACCPEDALPOSITION: return true; - case P_BELTSTATUS: return true; - case P_DRIVERBRAKING: return true; - case P_PRNDL: return true; - case P_RPM: return true; - case P_STEERINGWHEELANGLE: return true; - case P_MYKEY: return true; - case P_AIRBAGSTATUS: return true; - case P_BODYINFORMATION: return true; - case P_CLUSTERMODESTATUS: return true; - case P_DEVICESTATUS: return true; - case P_EMERGENCYEVENT: return true; - case P_ECALLINFO: return true; - default: return false; + case P_GPS: + return true; + case P_SPEED: + return true; + case P_ENGINETORQUE: + return true; + case P_EXTERNALTEMPERATURE: + return true; + case P_FUELLEVEL: + return true; + case P_FUELLEVEL_STATE: + return true; + case P_HEADLAMPSTATUS: + return true; + case P_INSTANTFUELCONSUMPTION: + return true; + case P_ODOMETER: + return true; + case P_TIREPRESSURE: + return true; + case P_WIPERSTATUS: + return true; + case P_VIN: + return true; + case P_ACCPEDALPOSITION: + return true; + case P_BELTSTATUS: + return true; + case P_DRIVERBRAKING: + return true; + case P_PRNDL: + return true; + case P_RPM: + return true; + case P_STEERINGWHEELANGLE: + return true; + case P_MYKEY: + return true; + case P_AIRBAGSTATUS: + return true; + case P_BODYINFORMATION: + return true; + case P_CLUSTERMODESTATUS: + return true; + case P_DEVICESTATUS: + return true; + case P_EMERGENCYEVENT: + return true; + case P_ECALLINFO: + return true; + default: + return false; } } const char* EnumToJsonString(Parameter val) { switch (val) { - case P_GPS: return "gps"; - case P_SPEED: return "speed"; - case P_ENGINETORQUE: return "engineTorque"; - case P_EXTERNALTEMPERATURE: return "externalTemperature"; - case P_FUELLEVEL: return "fuelLevel"; - case P_FUELLEVEL_STATE: return "fuelLevel_State"; - case P_HEADLAMPSTATUS: return "headLampStatus"; - case P_INSTANTFUELCONSUMPTION: return "instantFuelConsumption"; - case P_ODOMETER: return "odometer"; - case P_TIREPRESSURE: return "tirePressure"; - case P_WIPERSTATUS: return "wiperStatus"; - case P_VIN: return "vin"; - case P_ACCPEDALPOSITION: return "accPedalPosition"; - case P_BELTSTATUS: return "beltStatus"; - case P_DRIVERBRAKING: return "driverBraking"; - case P_PRNDL: return "prndl"; - case P_RPM: return "rpm"; - case P_STEERINGWHEELANGLE: return "steeringWheelAngle"; - case P_MYKEY: return "myKey"; - case P_AIRBAGSTATUS: return "airbagStatus"; - case P_BODYINFORMATION: return "bodyInformation"; - case P_CLUSTERMODESTATUS: return "clusterModeStatus"; - case P_DEVICESTATUS: return "deviceStatus"; - case P_EMERGENCYEVENT: return "emergencyEvent"; - case P_ECALLINFO: return "eCallInfo"; - default: return ""; + case P_GPS: + return "gps"; + case P_SPEED: + return "speed"; + case P_ENGINETORQUE: + return "engineTorque"; + case P_EXTERNALTEMPERATURE: + return "externalTemperature"; + case P_FUELLEVEL: + return "fuelLevel"; + case P_FUELLEVEL_STATE: + return "fuelLevel_State"; + case P_HEADLAMPSTATUS: + return "headLampStatus"; + case P_INSTANTFUELCONSUMPTION: + return "instantFuelConsumption"; + case P_ODOMETER: + return "odometer"; + case P_TIREPRESSURE: + return "tirePressure"; + case P_WIPERSTATUS: + return "wiperStatus"; + case P_VIN: + return "vin"; + case P_ACCPEDALPOSITION: + return "accPedalPosition"; + case P_BELTSTATUS: + return "beltStatus"; + case P_DRIVERBRAKING: + return "driverBraking"; + case P_PRNDL: + return "prndl"; + case P_RPM: + return "rpm"; + case P_STEERINGWHEELANGLE: + return "steeringWheelAngle"; + case P_MYKEY: + return "myKey"; + case P_AIRBAGSTATUS: + return "airbagStatus"; + case P_BODYINFORMATION: + return "bodyInformation"; + case P_CLUSTERMODESTATUS: + return "clusterModeStatus"; + case P_DEVICESTATUS: + return "deviceStatus"; + case P_EMERGENCYEVENT: + return "emergencyEvent"; + case P_ECALLINFO: + return "eCallInfo"; + default: + return ""; } } bool EnumFromJsonString(const std::string& literal, Parameter* result) { @@ -228,32 +304,54 @@ bool EnumFromJsonString(const std::string& literal, Parameter* result) { bool IsValidEnum(AppHMIType val) { switch (val) { - case AHT_DEFAULT: return true; - case AHT_COMMUNICATION: return true; - case AHT_MEDIA: return true; - case AHT_MESSAGING: return true; - case AHT_NAVIGATION: return true; - case AHT_INFORMATION: return true; - case AHT_SOCIAL: return true; - case AHT_BACKGROUND_PROCESS: return true; - case AHT_TESTING: return true; - case AHT_SYSTEM: return true; - default: return false; + case AHT_DEFAULT: + return true; + case AHT_COMMUNICATION: + return true; + case AHT_MEDIA: + return true; + case AHT_MESSAGING: + return true; + case AHT_NAVIGATION: + return true; + case AHT_INFORMATION: + return true; + case AHT_SOCIAL: + return true; + case AHT_BACKGROUND_PROCESS: + return true; + case AHT_TESTING: + return true; + case AHT_SYSTEM: + return true; + default: + return false; } } const char* EnumToJsonString(AppHMIType val) { switch (val) { - case AHT_DEFAULT: return "DEFAULT"; - case AHT_COMMUNICATION: return "COMMUNICATION"; - case AHT_MEDIA: return "MEDIA"; - case AHT_MESSAGING: return "MESSAGING"; - case AHT_NAVIGATION: return "NAVIGATION"; - case AHT_INFORMATION: return "INFORMATION"; - case AHT_SOCIAL: return "SOCIAL"; - case AHT_BACKGROUND_PROCESS: return "BACKGROUND_PROCESS"; - case AHT_TESTING: return "TESTING"; - case AHT_SYSTEM: return "SYSTEM"; - default: return ""; + case AHT_DEFAULT: + return "DEFAULT"; + case AHT_COMMUNICATION: + return "COMMUNICATION"; + case AHT_MEDIA: + return "MEDIA"; + case AHT_MESSAGING: + return "MESSAGING"; + case AHT_NAVIGATION: + return "NAVIGATION"; + case AHT_INFORMATION: + return "INFORMATION"; + case AHT_SOCIAL: + return "SOCIAL"; + case AHT_BACKGROUND_PROCESS: + return "BACKGROUND_PROCESS"; + case AHT_TESTING: + return "TESTING"; + case AHT_SYSTEM: + return "SYSTEM"; + default: + return ""; } } bool EnumFromJsonString(const std::string& literal, AppHMIType* result) { @@ -293,54 +391,96 @@ bool EnumFromJsonString(const std::string& literal, AppHMIType* result) { } bool IsValidEnum(RequestType val) { - switch(val) { - case RT_HTTP : return true; - case RT_FILE_RESUME : return true; - case RT_AUTH_REQUEST: return true; - case RT_AUTH_CHALLENGE: return true; - case RT_AUTH_ACK: return true; - case RT_PROPRIETARY: return true; - case RT_QUERY_APPS: return true; - case RT_LAUNCH_APP: return true; - case RT_LOCK_SCREEN_ICON_URL: return true; - case RT_TRAFFIC_MESSAGE_CHANNEL: return true; - case RT_DRIVER_PROFILE: return true; - case RT_VOICE_SEARCH: return true; - case RT_NAVIGATION: return true; - case RT_PHONE: return true; - case RT_CLIMATE: return true; - case RT_SETTINGS: return true; - case RT_VEHICLE_DIAGNOSTICS: return true; - case RT_EMERGENCY: return true; - case RT_MEDIA: return true; - case RT_FOTA: return true; - default: return false; + switch (val) { + case RT_HTTP: + return true; + case RT_FILE_RESUME: + return true; + case RT_AUTH_REQUEST: + return true; + case RT_AUTH_CHALLENGE: + return true; + case RT_AUTH_ACK: + return true; + case RT_PROPRIETARY: + return true; + case RT_QUERY_APPS: + return true; + case RT_LAUNCH_APP: + return true; + case RT_LOCK_SCREEN_ICON_URL: + return true; + case RT_TRAFFIC_MESSAGE_CHANNEL: + return true; + case RT_DRIVER_PROFILE: + return true; + case RT_VOICE_SEARCH: + return true; + case RT_NAVIGATION: + return true; + case RT_PHONE: + return true; + case RT_CLIMATE: + return true; + case RT_SETTINGS: + return true; + case RT_VEHICLE_DIAGNOSTICS: + return true; + case RT_EMERGENCY: + return true; + case RT_MEDIA: + return true; + case RT_FOTA: + return true; + default: + return false; } } -const char*EnumToJsonString(RequestType val) { - switch(val) { - case RT_HTTP : return "HTTP"; - case RT_FILE_RESUME : return "FILE_RESUME"; - case RT_AUTH_REQUEST: return "AUTH_REQUEST"; - case RT_AUTH_CHALLENGE: return "AUTH_CHALLENGE"; - case RT_AUTH_ACK: return "AUTH_ACK"; - case RT_PROPRIETARY: return "PROPRIETARY"; - case RT_QUERY_APPS: return "QUERY_APPS"; - case RT_LAUNCH_APP: return "LAUNCH_APP"; - case RT_LOCK_SCREEN_ICON_URL: return "LOCK_SCREEN_ICON_URL"; - case RT_TRAFFIC_MESSAGE_CHANNEL: return "TRAFFIC_MESSAGE_CHANNEL"; - case RT_DRIVER_PROFILE: return "DRIVER_PROFILE"; - case RT_VOICE_SEARCH: return "VOICE_SEARCH"; - case RT_NAVIGATION: return "NAVIGATION"; - case RT_PHONE: return "PHONE"; - case RT_CLIMATE: return "CLIMATE"; - case RT_SETTINGS: return "SETTINGS"; - case RT_VEHICLE_DIAGNOSTICS: return "VEHICLE_DIAGNOSTICS"; - case RT_EMERGENCY: return "EMERGENCY"; - case RT_MEDIA: return "MEDIA"; - case RT_FOTA: return "FOTA"; - default: return ""; +const char* EnumToJsonString(RequestType val) { + switch (val) { + case RT_HTTP: + return "HTTP"; + case RT_FILE_RESUME: + return "FILE_RESUME"; + case RT_AUTH_REQUEST: + return "AUTH_REQUEST"; + case RT_AUTH_CHALLENGE: + return "AUTH_CHALLENGE"; + case RT_AUTH_ACK: + return "AUTH_ACK"; + case RT_PROPRIETARY: + return "PROPRIETARY"; + case RT_QUERY_APPS: + return "QUERY_APPS"; + case RT_LAUNCH_APP: + return "LAUNCH_APP"; + case RT_LOCK_SCREEN_ICON_URL: + return "LOCK_SCREEN_ICON_URL"; + case RT_TRAFFIC_MESSAGE_CHANNEL: + return "TRAFFIC_MESSAGE_CHANNEL"; + case RT_DRIVER_PROFILE: + return "DRIVER_PROFILE"; + case RT_VOICE_SEARCH: + return "VOICE_SEARCH"; + case RT_NAVIGATION: + return "NAVIGATION"; + case RT_PHONE: + return "PHONE"; + case RT_CLIMATE: + return "CLIMATE"; + case RT_SETTINGS: + return "SETTINGS"; + case RT_VEHICLE_DIAGNOSTICS: + return "VEHICLE_DIAGNOSTICS"; + case RT_EMERGENCY: + return "EMERGENCY"; + case RT_MEDIA: + return "MEDIA"; + case RT_FOTA: + return "FOTA"; + default: + return ""; } } @@ -421,7 +561,7 @@ bool EnumFromJsonString(const std::string& literal, RequestType* result) { *result = RT_MEDIA; return true; } - if ("FOTA" == literal) { + if ("FOTA" == literal) { *result = RT_FOTA; return true; } else { @@ -435,4 +575,3 @@ const std::string kDeviceApp = "device"; } // namespace policy_table_interface_base } // namespace rpc - diff --git a/src/components/policy/src/policy/policy_table/table_struct/enums.h b/src/components/policy/src/policy/policy_table/table_struct/enums.h index f003679e13..523c2e9d04 100644 --- a/src/components/policy/src/policy/policy_table/table_struct/enums.h +++ b/src/components/policy/src/policy/policy_table/table_struct/enums.h @@ -19,7 +19,6 @@ bool IsValidEnum(Priority val); const char* EnumToJsonString(Priority val); bool EnumFromJsonString(const std::string& literal, Priority* result); - enum HmiLevel { HL_BACKGROUND, HL_FULL, @@ -30,7 +29,6 @@ bool IsValidEnum(HmiLevel val); const char* EnumToJsonString(HmiLevel val); bool EnumFromJsonString(const std::string& literal, HmiLevel* result); - enum Parameter { P_GPS, P_SPEED, @@ -62,7 +60,6 @@ bool IsValidEnum(Parameter val); const char* EnumToJsonString(Parameter val); bool EnumFromJsonString(const std::string& literal, Parameter* result); - enum AppHMIType { AHT_DEFAULT, AHT_COMMUNICATION, @@ -79,7 +76,6 @@ bool IsValidEnum(AppHMIType val); const char* EnumToJsonString(AppHMIType val); bool EnumFromJsonString(const std::string& literal, AppHMIType* result); - enum RequestType { RT_HTTP, RT_FILE_RESUME, diff --git a/src/components/policy/src/policy/policy_table/table_struct/types.cc b/src/components/policy/src/policy/policy_table/table_struct/types.cc index 458b5cfb9f..4f1e3e50eb 100644 --- a/src/components/policy/src/policy/policy_table/table_struct/types.cc +++ b/src/components/policy/src/policy/policy_table/table_struct/types.cc @@ -5,192 +5,168 @@ namespace rpc { namespace policy_table_interface_base { - std::string PolicyTableTypeToString(const PolicyTableType pt_type) { - switch (pt_type) { - case PT_PRELOADED: { - return "PT_PRELOADED"; - } - case PT_UPDATE: { - return "PT_UPDATE"; - } - case PT_SNAPSHOT: { - return "PT_SNAPSHOT"; - } - default :{ - return "INVALID_PT_TYPE"; - } - } +std::string PolicyTableTypeToString(const PolicyTableType pt_type) { + switch (pt_type) { + case PT_PRELOADED: { + return "PT_PRELOADED"; + } + case PT_UPDATE: { + return "PT_UPDATE"; + } + case PT_SNAPSHOT: { + return "PT_SNAPSHOT"; + } + default: { return "INVALID_PT_TYPE"; } } +} - // PolicyBase methods - PolicyBase::PolicyBase() - : CompositeType(kUninitialized) { - } +// PolicyBase methods +PolicyBase::PolicyBase() : CompositeType(kUninitialized) {} - PolicyBase::PolicyBase(Priority priority) - : CompositeType(kUninitialized), - priority(priority) { - } +PolicyBase::PolicyBase(Priority priority) + : CompositeType(kUninitialized), priority(priority) {} - PolicyBase::~PolicyBase() { - } +PolicyBase::~PolicyBase() {} - PolicyBase::PolicyBase(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - priority(impl::ValueMember(value__, "priority")) { - } +PolicyBase::PolicyBase(const Json::Value* value__) + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , priority(impl::ValueMember(value__, "priority")) {} - Json::Value PolicyBase::ToJsonValue() const { - Json::Value result__(Json::objectValue); - impl::WriteJsonField("priority", priority, &result__); - return result__; - } +Json::Value PolicyBase::ToJsonValue() const { + Json::Value result__(Json::objectValue); + impl::WriteJsonField("priority", priority, &result__); + return result__; +} - bool PolicyBase::is_valid() const { - if (!priority.is_valid()) { - return false; - } - return Validate(); +bool PolicyBase::is_valid() const { + if (!priority.is_valid()) { + return false; } + return Validate(); +} - bool PolicyBase::is_initialized() const { - return (initialization_state__ != kUninitialized) || (!struct_empty()); - } +bool PolicyBase::is_initialized() const { + return (initialization_state__ != kUninitialized) || (!struct_empty()); +} - bool PolicyBase::struct_empty() const { - if (priority.is_initialized()) { - return false; - } - return true; +bool PolicyBase::struct_empty() const { + if (priority.is_initialized()) { + return false; } + return true; +} - void PolicyBase::ReportErrors(rpc::ValidationReport* report__) const { - if (struct_empty()) { - rpc::CompositeType::ReportErrors(report__); - } - if (!priority.is_valid()) { - priority.ReportErrors(&report__->ReportSubobject("priority")); - } +void PolicyBase::ReportErrors(rpc::ValidationReport* report__) const { + if (struct_empty()) { + rpc::CompositeType::ReportErrors(report__); } - - void PolicyBase::SetPolicyTableType(PolicyTableType pt_type) { - CompositeType::SetPolicyTableType(pt_type); - priority.SetPolicyTableType(pt_type); + if (!priority.is_valid()) { + priority.ReportErrors(&report__->ReportSubobject("priority")); } +} - // DevicePolicy methods - DevicePolicy::DevicePolicy() - : PolicyBase() { - } +void PolicyBase::SetPolicyTableType(PolicyTableType pt_type) { + CompositeType::SetPolicyTableType(pt_type); + priority.SetPolicyTableType(pt_type); +} - DevicePolicy::DevicePolicy(Priority priority) - : PolicyBase(priority) { - } +// DevicePolicy methods +DevicePolicy::DevicePolicy() : PolicyBase() {} - DevicePolicy::~DevicePolicy() { - } +DevicePolicy::DevicePolicy(Priority priority) : PolicyBase(priority) {} - DevicePolicy::DevicePolicy(const Json::Value* value__) - : PolicyBase(value__) { - } +DevicePolicy::~DevicePolicy() {} - // AppPoliciesSection methods - ApplicationPoliciesSection::ApplicationPoliciesSection() - : CompositeType(kUninitialized) { - } +DevicePolicy::DevicePolicy(const Json::Value* value__) : PolicyBase(value__) {} - ApplicationPoliciesSection::ApplicationPoliciesSection(const ApplicationPolicies& apps, const DevicePolicy& device) - : CompositeType(kUninitialized), - apps(apps), - device(device) { - } +// AppPoliciesSection methods +ApplicationPoliciesSection::ApplicationPoliciesSection() + : CompositeType(kUninitialized) {} - ApplicationPoliciesSection::~ApplicationPoliciesSection() { - } +ApplicationPoliciesSection::ApplicationPoliciesSection( + const ApplicationPolicies& apps, const DevicePolicy& device) + : CompositeType(kUninitialized), apps(apps), device(device) {} - ApplicationPoliciesSection::ApplicationPoliciesSection(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - apps(value__), - device(impl::ValueMember(value__, "device")) { - // Since "device" is moved to separate struct, we have to delete it from - // parsed apps to avoid validation issues due to possible wrong params in - // device section - apps.erase("device"); - } +ApplicationPoliciesSection::~ApplicationPoliciesSection() {} - Json::Value ApplicationPoliciesSection::ToJsonValue() const { - Json::Value result__(Json::objectValue); - result__ = apps.ToJsonValue(); - impl::WriteJsonField("device", device, &result__); - return result__; - } +ApplicationPoliciesSection::ApplicationPoliciesSection( + const Json::Value* value__) + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , apps(value__) + , device(impl::ValueMember(value__, "device")) { + // Since "device" is moved to separate struct, we have to delete it from + // parsed apps to avoid validation issues due to possible wrong params in + // device section + apps.erase("device"); +} - bool ApplicationPoliciesSection::is_valid() const { - if (!device.is_valid()) { - return false; - } - if (!apps.is_valid()) { - return false; - } - return Validate(); - } +Json::Value ApplicationPoliciesSection::ToJsonValue() const { + Json::Value result__(Json::objectValue); + result__ = apps.ToJsonValue(); + impl::WriteJsonField("device", device, &result__); + return result__; +} - bool ApplicationPoliciesSection::is_initialized() const { - return (initialization_state__ != kUninitialized) || (!struct_empty()); +bool ApplicationPoliciesSection::is_valid() const { + if (!device.is_valid()) { + return false; } - - bool ApplicationPoliciesSection::struct_empty() const { - if (device.is_initialized()) { - return false; - } - if (apps.is_initialized()) { - return false; - } - return true; + if (!apps.is_valid()) { + return false; } + return Validate(); +} - void ApplicationPoliciesSection::ReportErrors(rpc::ValidationReport* report__) const { - if (struct_empty()) { - rpc::CompositeType::ReportErrors(report__); - } - if (!device.is_valid()) { - device.ReportErrors(&report__->ReportSubobject("device")); - } - if (!apps.is_valid()) { - apps.ReportErrors(&report__->ReportSubobject("apps")); - } +bool ApplicationPoliciesSection::is_initialized() const { + return (initialization_state__ != kUninitialized) || (!struct_empty()); +} + +bool ApplicationPoliciesSection::struct_empty() const { + if (device.is_initialized()) { + return false; + } + if (apps.is_initialized()) { + return false; } + return true; +} - void ApplicationPoliciesSection::SetPolicyTableType(PolicyTableType pt_type) { - CompositeType::SetPolicyTableType(pt_type); - device.SetPolicyTableType(pt_type); - apps.SetPolicyTableType(pt_type); +void ApplicationPoliciesSection::ReportErrors( + rpc::ValidationReport* report__) const { + if (struct_empty()) { + rpc::CompositeType::ReportErrors(report__); + } + if (!device.is_valid()) { + device.ReportErrors(&report__->ReportSubobject("device")); } + if (!apps.is_valid()) { + apps.ReportErrors(&report__->ReportSubobject("apps")); + } +} -// ApplicationParams methods -ApplicationParams::ApplicationParams() - : PolicyBase(), - groups() { +void ApplicationPoliciesSection::SetPolicyTableType(PolicyTableType pt_type) { + CompositeType::SetPolicyTableType(pt_type); + device.SetPolicyTableType(pt_type); + apps.SetPolicyTableType(pt_type); } +// ApplicationParams methods +ApplicationParams::ApplicationParams() : PolicyBase(), groups() {} + ApplicationParams::ApplicationParams(const Strings& groups, Priority priority) - : PolicyBase(priority), - groups(groups) { -} + : PolicyBase(priority), groups(groups) {} -ApplicationParams::~ApplicationParams() { -} +ApplicationParams::~ApplicationParams() {} ApplicationParams::ApplicationParams(const Json::Value* value__) - : PolicyBase(value__), - groups(impl::ValueMember(value__, "groups")), - nicknames(impl::ValueMember(value__, "nicknames")), - AppHMIType(impl::ValueMember(value__, "AppHMIType")), - RequestType(impl::ValueMember(value__, "RequestType")), - memory_kb(impl::ValueMember(value__, "memory_kb"), 0), - heart_beat_timeout_ms(impl::ValueMember(value__, "heart_beat_timeout_ms")), - certificate(impl::ValueMember(value__, "certificate"), "not_specified") { -} + : PolicyBase(value__) + , groups(impl::ValueMember(value__, "groups")) + , nicknames(impl::ValueMember(value__, "nicknames")) + , AppHMIType(impl::ValueMember(value__, "AppHMIType")) + , RequestType(impl::ValueMember(value__, "RequestType")) + , memory_kb(impl::ValueMember(value__, "memory_kb"), 0) + , heart_beat_timeout_ms(impl::ValueMember(value__, "heart_beat_timeout_ms")) + , certificate(impl::ValueMember(value__, "certificate"), "not_specified") {} Json::Value ApplicationParams::ToJsonValue() const { Json::Value result__(PolicyBase::ToJsonValue()); @@ -199,7 +175,8 @@ Json::Value ApplicationParams::ToJsonValue() const { impl::WriteJsonField("AppHMIType", AppHMIType, &result__); impl::WriteJsonField("RequestType", RequestType, &result__); impl::WriteJsonField("memory_kb", memory_kb, &result__); - impl::WriteJsonField("heart_beat_timeout_ms", heart_beat_timeout_ms, &result__); + impl::WriteJsonField( + "heart_beat_timeout_ms", heart_beat_timeout_ms, &result__); impl::WriteJsonField("certificate", certificate, &result__); return result__; } @@ -286,7 +263,8 @@ void ApplicationParams::ReportErrors(rpc::ValidationReport* report__) const { memory_kb.ReportErrors(&report__->ReportSubobject("memory_kb")); } if (!heart_beat_timeout_ms.is_valid()) { - heart_beat_timeout_ms.ReportErrors(&report__->ReportSubobject("heart_beat_timeout_ms")); + heart_beat_timeout_ms.ReportErrors( + &report__->ReportSubobject("heart_beat_timeout_ms")); } if (!certificate.is_valid()) { certificate.ReportErrors(&report__->ReportSubobject("certificate")); @@ -304,20 +282,14 @@ void ApplicationParams::SetPolicyTableType(PolicyTableType pt_type) { } // RpcParameters methods -RpcParameters::RpcParameters() - : CompositeType(kUninitialized) { -} +RpcParameters::RpcParameters() : CompositeType(kUninitialized) {} RpcParameters::RpcParameters(const HmiLevels& hmi_levels) - : CompositeType(kUninitialized), - hmi_levels(hmi_levels) { -} -RpcParameters::~RpcParameters() { -} + : CompositeType(kUninitialized), hmi_levels(hmi_levels) {} +RpcParameters::~RpcParameters() {} RpcParameters::RpcParameters(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - hmi_levels(impl::ValueMember(value__, "hmi_levels")), - parameters(impl::ValueMember(value__, "parameters")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , hmi_levels(impl::ValueMember(value__, "hmi_levels")) + , parameters(impl::ValueMember(value__, "parameters")) {} Json::Value RpcParameters::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("hmi_levels", hmi_levels, &result__); @@ -365,20 +337,13 @@ void RpcParameters::SetPolicyTableType(PolicyTableType pt_type) { } // Rpcs methods -Rpcs::Rpcs() - : CompositeType(kUninitialized) { -} -Rpcs::Rpcs(const Rpc& rpcs) - : CompositeType(kUninitialized), - rpcs(rpcs) { -} -Rpcs::~Rpcs() { -} +Rpcs::Rpcs() : CompositeType(kUninitialized) {} +Rpcs::Rpcs(const Rpc& rpcs) : CompositeType(kUninitialized), rpcs(rpcs) {} +Rpcs::~Rpcs() {} Rpcs::Rpcs(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - user_consent_prompt(impl::ValueMember(value__, "user_consent_prompt")), - rpcs(impl::ValueMember(value__, "rpcs")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , user_consent_prompt(impl::ValueMember(value__, "user_consent_prompt")) + , rpcs(impl::ValueMember(value__, "rpcs")) {} Json::Value Rpcs::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("user_consent_prompt", user_consent_prompt, &result__); @@ -412,7 +377,8 @@ void Rpcs::ReportErrors(rpc::ValidationReport* report__) const { rpc::CompositeType::ReportErrors(report__); } if (!user_consent_prompt.is_valid()) { - user_consent_prompt.ReportErrors(&report__->ReportSubobject("user_consent_prompt")); + user_consent_prompt.ReportErrors( + &report__->ReportSubobject("user_consent_prompt")); } if (!rpcs.is_valid()) { rpcs.ReportErrors(&report__->ReportSubobject("rpcs")); @@ -426,67 +392,84 @@ void Rpcs::SetPolicyTableType(PolicyTableType pt_type) { } // ModuleConfig methods -ModuleConfig::ModuleConfig() - : CompositeType(kUninitialized) { -} -ModuleConfig::ModuleConfig(uint8_t exchange_after_x_ignition_cycles, int64_t exchange_after_x_kilometers, uint8_t exchange_after_x_days, uint16_t timeout_after_x_seconds, const SecondsBetweenRetries& seconds_between_retries, const ServiceEndpoints& endpoints, const NumberOfNotificationsPerMinute& notifications_per_minute_by_priority) - : CompositeType(kUninitialized), - exchange_after_x_ignition_cycles(exchange_after_x_ignition_cycles), - exchange_after_x_kilometers(exchange_after_x_kilometers), - exchange_after_x_days(exchange_after_x_days), - timeout_after_x_seconds(timeout_after_x_seconds), - seconds_between_retries(seconds_between_retries), - endpoints(endpoints), - notifications_per_minute_by_priority(notifications_per_minute_by_priority) { -} -ModuleConfig::~ModuleConfig() { -} +ModuleConfig::ModuleConfig() : CompositeType(kUninitialized) {} +ModuleConfig::ModuleConfig( + uint8_t exchange_after_x_ignition_cycles, + int64_t exchange_after_x_kilometers, + uint8_t exchange_after_x_days, + uint16_t timeout_after_x_seconds, + const SecondsBetweenRetries& seconds_between_retries, + const ServiceEndpoints& endpoints, + const NumberOfNotificationsPerMinute& notifications_per_minute_by_priority) + : CompositeType(kUninitialized) + , exchange_after_x_ignition_cycles(exchange_after_x_ignition_cycles) + , exchange_after_x_kilometers(exchange_after_x_kilometers) + , exchange_after_x_days(exchange_after_x_days) + , timeout_after_x_seconds(timeout_after_x_seconds) + , seconds_between_retries(seconds_between_retries) + , endpoints(endpoints) + , notifications_per_minute_by_priority( + notifications_per_minute_by_priority) {} +ModuleConfig::~ModuleConfig() {} ModuleConfig::ModuleConfig(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - device_certificates(impl::ValueMember(value__, "device_certificates")), - preloaded_pt(impl::ValueMember(value__, "preloaded_pt")), - exchange_after_x_ignition_cycles(impl::ValueMember(value__, "exchange_after_x_ignition_cycles")), - exchange_after_x_kilometers(impl::ValueMember(value__, "exchange_after_x_kilometers")), - exchange_after_x_days(impl::ValueMember(value__, "exchange_after_x_days")), - timeout_after_x_seconds(impl::ValueMember(value__, "timeout_after_x_seconds")), - seconds_between_retries(impl::ValueMember(value__, "seconds_between_retries")), - endpoints(impl::ValueMember(value__, "endpoints")), - notifications_per_minute_by_priority(impl::ValueMember(value__, "notifications_per_minute_by_priority")), - vehicle_make(impl::ValueMember(value__, "vehicle_make")), - vehicle_model(impl::ValueMember(value__, "vehicle_model")), - vehicle_year(impl::ValueMember(value__, "vehicle_year")), - preloaded_date(impl::ValueMember(value__, "preloaded_date")), - certificate(impl::ValueMember(value__, "certificate")){ -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , device_certificates(impl::ValueMember(value__, "device_certificates")) + , preloaded_pt(impl::ValueMember(value__, "preloaded_pt")) + , exchange_after_x_ignition_cycles( + impl::ValueMember(value__, "exchange_after_x_ignition_cycles")) + , exchange_after_x_kilometers( + impl::ValueMember(value__, "exchange_after_x_kilometers")) + , exchange_after_x_days(impl::ValueMember(value__, "exchange_after_x_days")) + , timeout_after_x_seconds( + impl::ValueMember(value__, "timeout_after_x_seconds")) + , seconds_between_retries( + impl::ValueMember(value__, "seconds_between_retries")) + , endpoints(impl::ValueMember(value__, "endpoints")) + , notifications_per_minute_by_priority( + impl::ValueMember(value__, "notifications_per_minute_by_priority")) + , vehicle_make(impl::ValueMember(value__, "vehicle_make")) + , vehicle_model(impl::ValueMember(value__, "vehicle_model")) + , vehicle_year(impl::ValueMember(value__, "vehicle_year")) + , preloaded_date(impl::ValueMember(value__, "preloaded_date")) + , certificate(impl::ValueMember(value__, "certificate")) {} void ModuleConfig::SafeCopyFrom(const ModuleConfig& from) { -// device_certificates = from.device_certificates; // According to the requirements this is optional. + // device_certificates = from.device_certificates; // According to the + // requirements this is optional. exchange_after_x_ignition_cycles = from.exchange_after_x_ignition_cycles; exchange_after_x_kilometers = from.exchange_after_x_kilometers; exchange_after_x_days = from.exchange_after_x_days; timeout_after_x_seconds = from.timeout_after_x_seconds; seconds_between_retries = from.seconds_between_retries; endpoints = from.endpoints; - notifications_per_minute_by_priority = from.notifications_per_minute_by_priority; + notifications_per_minute_by_priority = + from.notifications_per_minute_by_priority; vehicle_make.assign_if_valid(from.vehicle_make); vehicle_model.assign_if_valid(from.vehicle_model); vehicle_year.assign_if_valid(from.vehicle_year); - certificate .assign_if_valid(from.certificate); - + certificate.assign_if_valid(from.certificate); } Json::Value ModuleConfig::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("device_certificates", device_certificates, &result__); impl::WriteJsonField("preloaded_pt", preloaded_pt, &result__); - impl::WriteJsonField("exchange_after_x_ignition_cycles", exchange_after_x_ignition_cycles, &result__); - impl::WriteJsonField("exchange_after_x_kilometers", exchange_after_x_kilometers, &result__); - impl::WriteJsonField("exchange_after_x_days", exchange_after_x_days, &result__); - impl::WriteJsonField("timeout_after_x_seconds", timeout_after_x_seconds, &result__); - impl::WriteJsonField("seconds_between_retries", seconds_between_retries, &result__); + impl::WriteJsonField("exchange_after_x_ignition_cycles", + exchange_after_x_ignition_cycles, + &result__); + impl::WriteJsonField( + "exchange_after_x_kilometers", exchange_after_x_kilometers, &result__); + impl::WriteJsonField( + "exchange_after_x_days", exchange_after_x_days, &result__); + impl::WriteJsonField( + "timeout_after_x_seconds", timeout_after_x_seconds, &result__); + impl::WriteJsonField( + "seconds_between_retries", seconds_between_retries, &result__); impl::WriteJsonField("endpoints", endpoints, &result__); - impl::WriteJsonField("notifications_per_minute_by_priority", notifications_per_minute_by_priority, &result__); + impl::WriteJsonField("notifications_per_minute_by_priority", + notifications_per_minute_by_priority, + &result__); impl::WriteJsonField("vehicle_make", vehicle_make, &result__); impl::WriteJsonField("vehicle_model", vehicle_model, &result__); impl::WriteJsonField("vehicle_year", vehicle_year, &result__); @@ -592,31 +575,38 @@ void ModuleConfig::ReportErrors(rpc::ValidationReport* report__) const { rpc::CompositeType::ReportErrors(report__); } if (!device_certificates.is_valid()) { - device_certificates.ReportErrors(&report__->ReportSubobject("device_certificates")); + device_certificates.ReportErrors( + &report__->ReportSubobject("device_certificates")); } if (!preloaded_pt.is_valid()) { preloaded_pt.ReportErrors(&report__->ReportSubobject("preloaded_pt")); } if (!exchange_after_x_ignition_cycles.is_valid()) { - exchange_after_x_ignition_cycles.ReportErrors(&report__->ReportSubobject("exchange_after_x_ignition_cycles")); + exchange_after_x_ignition_cycles.ReportErrors( + &report__->ReportSubobject("exchange_after_x_ignition_cycles")); } if (!exchange_after_x_kilometers.is_valid()) { - exchange_after_x_kilometers.ReportErrors(&report__->ReportSubobject("exchange_after_x_kilometers")); + exchange_after_x_kilometers.ReportErrors( + &report__->ReportSubobject("exchange_after_x_kilometers")); } if (!exchange_after_x_days.is_valid()) { - exchange_after_x_days.ReportErrors(&report__->ReportSubobject("exchange_after_x_days")); + exchange_after_x_days.ReportErrors( + &report__->ReportSubobject("exchange_after_x_days")); } if (!timeout_after_x_seconds.is_valid()) { - timeout_after_x_seconds.ReportErrors(&report__->ReportSubobject("timeout_after_x_seconds")); + timeout_after_x_seconds.ReportErrors( + &report__->ReportSubobject("timeout_after_x_seconds")); } if (!seconds_between_retries.is_valid()) { - seconds_between_retries.ReportErrors(&report__->ReportSubobject("seconds_between_retries")); + seconds_between_retries.ReportErrors( + &report__->ReportSubobject("seconds_between_retries")); } if (!endpoints.is_valid()) { endpoints.ReportErrors(&report__->ReportSubobject("endpoints")); } if (!notifications_per_minute_by_priority.is_valid()) { - notifications_per_minute_by_priority.ReportErrors(&report__->ReportSubobject("notifications_per_minute_by_priority")); + notifications_per_minute_by_priority.ReportErrors( + &report__->ReportSubobject("notifications_per_minute_by_priority")); } if (!vehicle_make.is_valid()) { vehicle_make.ReportErrors(&report__->ReportSubobject("vehicle_make")); @@ -628,8 +618,8 @@ void ModuleConfig::ReportErrors(rpc::ValidationReport* report__) const { vehicle_year.ReportErrors(&report__->ReportSubobject("vehicle_year")); } if (PT_PRELOADED == GetPolicyTableType()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); + std::string validation_info = + ommited_validation_info + PolicyTableTypeToString(GetPolicyTableType()); rpc::ValidationReport* ommited_field_report; if (vehicle_make.is_initialized()) { ommited_field_report = &report__->ReportSubobject("vehicle_make"); @@ -663,19 +653,15 @@ void ModuleConfig::SetPolicyTableType(PolicyTableType pt_type) { } // MessageString methods -MessageString::MessageString() - : CompositeType(kUninitialized) { -} -MessageString::~MessageString() { -} +MessageString::MessageString() : CompositeType(kUninitialized) {} +MessageString::~MessageString() {} MessageString::MessageString(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - line1(impl::ValueMember(value__, "line1")), - line2(impl::ValueMember(value__, "line2")), - tts(impl::ValueMember(value__, "tts")), - label(impl::ValueMember(value__, "label")), - textBody(impl::ValueMember(value__, "textBody")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , line1(impl::ValueMember(value__, "line1")) + , line2(impl::ValueMember(value__, "line2")) + , tts(impl::ValueMember(value__, "tts")) + , label(impl::ValueMember(value__, "label")) + , textBody(impl::ValueMember(value__, "textBody")) {} Json::Value MessageString::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("line1", line1, &result__); @@ -760,19 +746,13 @@ void MessageString::SetPolicyTableType(PolicyTableType pt_type) { } // MessageLanguages methods -MessageLanguages::MessageLanguages() - : CompositeType(kUninitialized) { -} +MessageLanguages::MessageLanguages() : CompositeType(kUninitialized) {} MessageLanguages::MessageLanguages(const Languages& languages) - : CompositeType(kUninitialized), - languages(languages) { -} -MessageLanguages::~MessageLanguages() { -} + : CompositeType(kUninitialized), languages(languages) {} +MessageLanguages::~MessageLanguages() {} MessageLanguages::MessageLanguages(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - languages(impl::ValueMember(value__, "languages")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , languages(impl::ValueMember(value__, "languages")) {} Json::Value MessageLanguages::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("languages", languages, &result__); @@ -800,9 +780,11 @@ void MessageLanguages::ReportErrors(rpc::ValidationReport* report__) const { } if (PT_SNAPSHOT == GetPolicyTableType()) { if (languages.is_initialized()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); - report__->ReportSubobject("languages").set_validation_info(validation_info); + std::string validation_info = + ommited_validation_info + + PolicyTableTypeToString(GetPolicyTableType()); + report__->ReportSubobject("languages") + .set_validation_info(validation_info); } } if (!languages.is_valid()) { @@ -817,19 +799,14 @@ void MessageLanguages::SetPolicyTableType(PolicyTableType pt_type) { // ConsumerFriendlyMessages methods ConsumerFriendlyMessages::ConsumerFriendlyMessages() - : CompositeType(kUninitialized) { -} + : CompositeType(kUninitialized) {} ConsumerFriendlyMessages::ConsumerFriendlyMessages(const std::string& version) - : CompositeType(kUninitialized), - version(version) { -} -ConsumerFriendlyMessages::~ConsumerFriendlyMessages() { -} + : CompositeType(kUninitialized), version(version) {} +ConsumerFriendlyMessages::~ConsumerFriendlyMessages() {} ConsumerFriendlyMessages::ConsumerFriendlyMessages(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - version(impl::ValueMember(value__, "version")), - messages(impl::ValueMember(value__, "messages")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , version(impl::ValueMember(value__, "version")) + , messages(impl::ValueMember(value__, "messages")) {} Json::Value ConsumerFriendlyMessages::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("version", version, &result__); @@ -858,7 +835,8 @@ bool ConsumerFriendlyMessages::struct_empty() const { return true; } -void ConsumerFriendlyMessages::ReportErrors(rpc::ValidationReport* report__) const { +void ConsumerFriendlyMessages::ReportErrors( + rpc::ValidationReport* report__) const { if (struct_empty()) { rpc::CompositeType::ReportErrors(report__); } @@ -867,9 +845,11 @@ void ConsumerFriendlyMessages::ReportErrors(rpc::ValidationReport* report__) con } if (PT_SNAPSHOT == GetPolicyTableType()) { if (messages.is_initialized()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); - report__->ReportSubobject("messages").set_validation_info(validation_info); + std::string validation_info = + ommited_validation_info + + PolicyTableTypeToString(GetPolicyTableType()); + report__->ReportSubobject("messages") + .set_validation_info(validation_info); } } if (!messages.is_valid()) { @@ -884,14 +864,10 @@ void ConsumerFriendlyMessages::SetPolicyTableType(PolicyTableType pt_type) { } // ModuleMeta methods -ModuleMeta::ModuleMeta() - : CompositeType(kUninitialized) { -} -ModuleMeta::~ModuleMeta() { -} +ModuleMeta::ModuleMeta() : CompositeType(kUninitialized) {} +ModuleMeta::~ModuleMeta() {} ModuleMeta::ModuleMeta(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) {} Json::Value ModuleMeta::ToJsonValue() const { Json::Value result__(Json::objectValue); return result__; @@ -915,65 +891,109 @@ void ModuleMeta::ReportErrors(rpc::ValidationReport* report__) const { } // AppLevel methods -AppLevel::AppLevel() - : CompositeType(kUninitialized) { -} - -AppLevel::AppLevel(uint16_t minutes_in_hmi_full, const std::string& app_registration_language_gui, const std::string& app_registration_language_vui, uint16_t minutes_in_hmi_limited, uint16_t minutes_in_hmi_background, uint16_t minutes_in_hmi_none, uint16_t count_of_user_selections, uint16_t count_of_rejections_sync_out_of_memory, uint16_t count_of_rejections_nickname_mismatch, uint16_t count_of_rejections_duplicate_name, uint16_t count_of_rejected_rpc_calls, uint16_t count_of_rpcs_sent_in_hmi_none, uint16_t count_of_removals_for_bad_behavior, uint16_t count_of_tls_errors, uint16_t count_of_run_attempts_while_revoked) - : CompositeType(kUninitialized), - minutes_in_hmi_full(minutes_in_hmi_full), - app_registration_language_gui(app_registration_language_gui), - app_registration_language_vui(app_registration_language_vui), - minutes_in_hmi_limited(minutes_in_hmi_limited), - minutes_in_hmi_background(minutes_in_hmi_background), - minutes_in_hmi_none(minutes_in_hmi_none), - count_of_user_selections(count_of_user_selections), - count_of_rejections_sync_out_of_memory(count_of_rejections_sync_out_of_memory), - count_of_rejections_nickname_mismatch(count_of_rejections_nickname_mismatch), - count_of_rejections_duplicate_name(count_of_rejections_duplicate_name), - count_of_rejected_rpc_calls(count_of_rejected_rpc_calls), - count_of_rpcs_sent_in_hmi_none(count_of_rpcs_sent_in_hmi_none), - count_of_removals_for_bad_behavior(count_of_removals_for_bad_behavior), - count_of_tls_errors(count_of_tls_errors), - count_of_run_attempts_while_revoked(count_of_run_attempts_while_revoked) { -} -AppLevel::~AppLevel() { -} +AppLevel::AppLevel() : CompositeType(kUninitialized) {} + +AppLevel::AppLevel(uint16_t minutes_in_hmi_full, + const std::string& app_registration_language_gui, + const std::string& app_registration_language_vui, + uint16_t minutes_in_hmi_limited, + uint16_t minutes_in_hmi_background, + uint16_t minutes_in_hmi_none, + uint16_t count_of_user_selections, + uint16_t count_of_rejections_sync_out_of_memory, + uint16_t count_of_rejections_nickname_mismatch, + uint16_t count_of_rejections_duplicate_name, + uint16_t count_of_rejected_rpc_calls, + uint16_t count_of_rpcs_sent_in_hmi_none, + uint16_t count_of_removals_for_bad_behavior, + uint16_t count_of_tls_errors, + uint16_t count_of_run_attempts_while_revoked) + : CompositeType(kUninitialized) + , minutes_in_hmi_full(minutes_in_hmi_full) + , app_registration_language_gui(app_registration_language_gui) + , app_registration_language_vui(app_registration_language_vui) + , minutes_in_hmi_limited(minutes_in_hmi_limited) + , minutes_in_hmi_background(minutes_in_hmi_background) + , minutes_in_hmi_none(minutes_in_hmi_none) + , count_of_user_selections(count_of_user_selections) + , count_of_rejections_sync_out_of_memory( + count_of_rejections_sync_out_of_memory) + , count_of_rejections_nickname_mismatch( + count_of_rejections_nickname_mismatch) + , count_of_rejections_duplicate_name(count_of_rejections_duplicate_name) + , count_of_rejected_rpc_calls(count_of_rejected_rpc_calls) + , count_of_rpcs_sent_in_hmi_none(count_of_rpcs_sent_in_hmi_none) + , count_of_removals_for_bad_behavior(count_of_removals_for_bad_behavior) + , count_of_tls_errors(count_of_tls_errors) + , count_of_run_attempts_while_revoked(count_of_run_attempts_while_revoked) { +} +AppLevel::~AppLevel() {} AppLevel::AppLevel(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - minutes_in_hmi_full(impl::ValueMember(value__, "minutes_in_hmi_full")), - app_registration_language_gui(impl::ValueMember(value__, "app_registration_language_gui")), - app_registration_language_vui(impl::ValueMember(value__, "app_registration_language_vui")), - minutes_in_hmi_limited(impl::ValueMember(value__, "minutes_in_hmi_limited")), - minutes_in_hmi_background(impl::ValueMember(value__, "minutes_in_hmi_background")), - minutes_in_hmi_none(impl::ValueMember(value__, "minutes_in_hmi_none")), - count_of_user_selections(impl::ValueMember(value__, "count_of_user_selections")), - count_of_rejections_sync_out_of_memory(impl::ValueMember(value__, "count_of_rejections_sync_out_of_memory")), - count_of_rejections_nickname_mismatch(impl::ValueMember(value__, "count_of_rejections_nickname_mismatch")), - count_of_rejections_duplicate_name(impl::ValueMember(value__, "count_of_rejections_duplicate_name")), - count_of_rejected_rpc_calls(impl::ValueMember(value__, "count_of_rejected_rpc_calls")), - count_of_rpcs_sent_in_hmi_none(impl::ValueMember(value__, "count_of_rpcs_sent_in_hmi_none")), - count_of_removals_for_bad_behavior(impl::ValueMember(value__, "count_of_removals_for_bad_behavior")), - count_of_tls_errors(impl::ValueMember(value__, "count_of_tls_errors")), - count_of_run_attempts_while_revoked(impl::ValueMember(value__, "count_of_run_attempts_while_revoked")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , minutes_in_hmi_full(impl::ValueMember(value__, "minutes_in_hmi_full")) + , app_registration_language_gui( + impl::ValueMember(value__, "app_registration_language_gui")) + , app_registration_language_vui( + impl::ValueMember(value__, "app_registration_language_vui")) + , minutes_in_hmi_limited( + impl::ValueMember(value__, "minutes_in_hmi_limited")) + , minutes_in_hmi_background( + impl::ValueMember(value__, "minutes_in_hmi_background")) + , minutes_in_hmi_none(impl::ValueMember(value__, "minutes_in_hmi_none")) + , count_of_user_selections( + impl::ValueMember(value__, "count_of_user_selections")) + , count_of_rejections_sync_out_of_memory( + impl::ValueMember(value__, "count_of_rejections_sync_out_of_memory")) + , count_of_rejections_nickname_mismatch( + impl::ValueMember(value__, "count_of_rejections_nickname_mismatch")) + , count_of_rejections_duplicate_name( + impl::ValueMember(value__, "count_of_rejections_duplicate_name")) + , count_of_rejected_rpc_calls( + impl::ValueMember(value__, "count_of_rejected_rpc_calls")) + , count_of_rpcs_sent_in_hmi_none( + impl::ValueMember(value__, "count_of_rpcs_sent_in_hmi_none")) + , count_of_removals_for_bad_behavior( + impl::ValueMember(value__, "count_of_removals_for_bad_behavior")) + , count_of_tls_errors(impl::ValueMember(value__, "count_of_tls_errors")) + , count_of_run_attempts_while_revoked( + impl::ValueMember(value__, "count_of_run_attempts_while_revoked")) {} Json::Value AppLevel::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("minutes_in_hmi_full", minutes_in_hmi_full, &result__); - impl::WriteJsonField("app_registration_language_gui", app_registration_language_gui, &result__); - impl::WriteJsonField("app_registration_language_vui", app_registration_language_vui, &result__); - impl::WriteJsonField("minutes_in_hmi_limited", minutes_in_hmi_limited, &result__); - impl::WriteJsonField("minutes_in_hmi_background", minutes_in_hmi_background, &result__); + impl::WriteJsonField("app_registration_language_gui", + app_registration_language_gui, + &result__); + impl::WriteJsonField("app_registration_language_vui", + app_registration_language_vui, + &result__); + impl::WriteJsonField( + "minutes_in_hmi_limited", minutes_in_hmi_limited, &result__); + impl::WriteJsonField( + "minutes_in_hmi_background", minutes_in_hmi_background, &result__); impl::WriteJsonField("minutes_in_hmi_none", minutes_in_hmi_none, &result__); - impl::WriteJsonField("count_of_user_selections", count_of_user_selections, &result__); - impl::WriteJsonField("count_of_rejections_sync_out_of_memory", count_of_rejections_sync_out_of_memory, &result__); - impl::WriteJsonField("count_of_rejections_nickname_mismatch", count_of_rejections_nickname_mismatch, &result__); - impl::WriteJsonField("count_of_rejections_duplicate_name", count_of_rejections_duplicate_name, &result__); - impl::WriteJsonField("count_of_rejected_rpc_calls", count_of_rejected_rpc_calls, &result__); - impl::WriteJsonField("count_of_rpcs_sent_in_hmi_none", count_of_rpcs_sent_in_hmi_none, &result__); - impl::WriteJsonField("count_of_removals_for_bad_behavior", count_of_removals_for_bad_behavior, &result__); + impl::WriteJsonField( + "count_of_user_selections", count_of_user_selections, &result__); + impl::WriteJsonField("count_of_rejections_sync_out_of_memory", + count_of_rejections_sync_out_of_memory, + &result__); + impl::WriteJsonField("count_of_rejections_nickname_mismatch", + count_of_rejections_nickname_mismatch, + &result__); + impl::WriteJsonField("count_of_rejections_duplicate_name", + count_of_rejections_duplicate_name, + &result__); + impl::WriteJsonField( + "count_of_rejected_rpc_calls", count_of_rejected_rpc_calls, &result__); + impl::WriteJsonField("count_of_rpcs_sent_in_hmi_none", + count_of_rpcs_sent_in_hmi_none, + &result__); + impl::WriteJsonField("count_of_removals_for_bad_behavior", + count_of_removals_for_bad_behavior, + &result__); impl::WriteJsonField("count_of_tls_errors", count_of_tls_errors, &result__); - impl::WriteJsonField("count_of_run_attempts_while_revoked", count_of_run_attempts_while_revoked, &result__); + impl::WriteJsonField("count_of_run_attempts_while_revoked", + count_of_run_attempts_while_revoked, + &result__); return result__; } bool AppLevel::is_valid() const { @@ -1028,7 +1048,6 @@ bool AppLevel::is_initialized() const { return (initialization_state__ != kUninitialized) || (!struct_empty()); } bool AppLevel::struct_empty() const { - if (minutes_in_hmi_full.is_initialized()) { return false; } @@ -1088,23 +1107,19 @@ void AppLevel::ReportErrors(rpc::ValidationReport* report__) const { } if (PT_PRELOADED == GetPolicyTableType() || PT_UPDATE == GetPolicyTableType()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); + std::string validation_info = + ommited_validation_info + PolicyTableTypeToString(GetPolicyTableType()); report__->set_validation_info(validation_info); } } // UsageAndErrorCounts methods -UsageAndErrorCounts::UsageAndErrorCounts() - : CompositeType(kUninitialized) { -} +UsageAndErrorCounts::UsageAndErrorCounts() : CompositeType(kUninitialized) {} -UsageAndErrorCounts::~UsageAndErrorCounts() { -} +UsageAndErrorCounts::~UsageAndErrorCounts() {} UsageAndErrorCounts::UsageAndErrorCounts(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - app_level(impl::ValueMember(value__, "app_level")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , app_level(impl::ValueMember(value__, "app_level")) {} Json::Value UsageAndErrorCounts::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("app_level", app_level, &result__); @@ -1134,8 +1149,8 @@ void UsageAndErrorCounts::ReportErrors(rpc::ValidationReport* report__) const { } if (PT_PRELOADED == GetPolicyTableType() || PT_UPDATE == GetPolicyTableType()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); + std::string validation_info = + ommited_validation_info + PolicyTableTypeToString(GetPolicyTableType()); report__->set_validation_info(validation_info); } if (!app_level.is_valid()) { @@ -1149,14 +1164,10 @@ void UsageAndErrorCounts::SetPolicyTableType(PolicyTableType pt_type) { } // DeviceParams methods -DeviceParams::DeviceParams() - : CompositeType(kUninitialized) { -} -DeviceParams::~DeviceParams() { -} +DeviceParams::DeviceParams() : CompositeType(kUninitialized) {} +DeviceParams::~DeviceParams() {} DeviceParams::DeviceParams(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) {} Json::Value DeviceParams::ToJsonValue() const { Json::Value result__(Json::objectValue); return result__; @@ -1180,36 +1191,39 @@ void DeviceParams::ReportErrors(rpc::ValidationReport* report__) const { } // PolicyTable methods -PolicyTable::PolicyTable() - : CompositeType(kUninitialized) { -} -PolicyTable::PolicyTable(const ApplicationPoliciesSection& app_policies_section, const FunctionalGroupings& functional_groupings, const ConsumerFriendlyMessages& consumer_friendly_messages, const ModuleConfig& module_config) - : CompositeType(kUninitialized), - app_policies_section(app_policies_section), - functional_groupings(functional_groupings), - consumer_friendly_messages(consumer_friendly_messages), - module_config(module_config) { -} -PolicyTable::~PolicyTable() { -} +PolicyTable::PolicyTable() : CompositeType(kUninitialized) {} +PolicyTable::PolicyTable( + const ApplicationPoliciesSection& app_policies_section, + const FunctionalGroupings& functional_groupings, + const ConsumerFriendlyMessages& consumer_friendly_messages, + const ModuleConfig& module_config) + : CompositeType(kUninitialized) + , app_policies_section(app_policies_section) + , functional_groupings(functional_groupings) + , consumer_friendly_messages(consumer_friendly_messages) + , module_config(module_config) {} +PolicyTable::~PolicyTable() {} PolicyTable::PolicyTable(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - app_policies_section(impl::ValueMember(value__, "app_policies")), - functional_groupings(impl::ValueMember(value__, "functional_groupings")), - consumer_friendly_messages(impl::ValueMember(value__, "consumer_friendly_messages")), - module_config(impl::ValueMember(value__, "module_config")), - module_meta(impl::ValueMember(value__, "module_meta")), - usage_and_error_counts(impl::ValueMember(value__, "usage_and_error_counts")), - device_data(impl::ValueMember(value__, "device_data")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , app_policies_section(impl::ValueMember(value__, "app_policies")) + , functional_groupings(impl::ValueMember(value__, "functional_groupings")) + , consumer_friendly_messages( + impl::ValueMember(value__, "consumer_friendly_messages")) + , module_config(impl::ValueMember(value__, "module_config")) + , module_meta(impl::ValueMember(value__, "module_meta")) + , usage_and_error_counts( + impl::ValueMember(value__, "usage_and_error_counts")) + , device_data(impl::ValueMember(value__, "device_data")) {} Json::Value PolicyTable::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("app_policies", app_policies_section, &result__); impl::WriteJsonField("functional_groupings", functional_groupings, &result__); - impl::WriteJsonField("consumer_friendly_messages", consumer_friendly_messages, &result__); + impl::WriteJsonField( + "consumer_friendly_messages", consumer_friendly_messages, &result__); impl::WriteJsonField("module_config", module_config, &result__); impl::WriteJsonField("module_meta", module_meta, &result__); - impl::WriteJsonField("usage_and_error_counts", usage_and_error_counts, &result__); + impl::WriteJsonField( + "usage_and_error_counts", usage_and_error_counts, &result__); impl::WriteJsonField("device_data", device_data, &result__); return result__; } @@ -1273,21 +1287,25 @@ void PolicyTable::ReportErrors(rpc::ValidationReport* report__) const { } if (PT_PRELOADED == GetPolicyTableType() || PT_UPDATE == GetPolicyTableType()) { - std::string validation_info = ommited_validation_info + - PolicyTableTypeToString(GetPolicyTableType()); + std::string validation_info = + ommited_validation_info + PolicyTableTypeToString(GetPolicyTableType()); if (device_data.is_initialized()) { - report__->ReportSubobject("device_data").set_validation_info(validation_info); + report__->ReportSubobject("device_data") + .set_validation_info(validation_info); } } if (!app_policies_section.is_valid()) { - app_policies_section.ReportErrors(&report__->ReportSubobject("app_policies")); + app_policies_section.ReportErrors( + &report__->ReportSubobject("app_policies")); } if (!functional_groupings.is_valid()) { - functional_groupings.ReportErrors(&report__->ReportSubobject("functional_groupings")); + functional_groupings.ReportErrors( + &report__->ReportSubobject("functional_groupings")); } if (!consumer_friendly_messages.is_valid()) { - consumer_friendly_messages.ReportErrors(&report__->ReportSubobject("consumer_friendly_messages")); + consumer_friendly_messages.ReportErrors( + &report__->ReportSubobject("consumer_friendly_messages")); } if (!module_config.is_valid()) { module_config.ReportErrors(&report__->ReportSubobject("module_config")); @@ -1296,7 +1314,8 @@ void PolicyTable::ReportErrors(rpc::ValidationReport* report__) const { module_meta.ReportErrors(&report__->ReportSubobject("module_meta")); } if (!usage_and_error_counts.is_valid()) { - usage_and_error_counts.ReportErrors(&report__->ReportSubobject("usage_and_error_counts")); + usage_and_error_counts.ReportErrors( + &report__->ReportSubobject("usage_and_error_counts")); } if (!device_data.is_valid()) { device_data.ReportErrors(&report__->ReportSubobject("device_data")); @@ -1315,19 +1334,13 @@ void PolicyTable::SetPolicyTableType(PolicyTableType pt_type) { } // Table methods -Table::Table() - : CompositeType(kUninitialized) { -} +Table::Table() : CompositeType(kUninitialized) {} Table::Table(const PolicyTable& policy_table) - : CompositeType(kUninitialized), - policy_table(policy_table) { -} -Table::~Table() { -} + : CompositeType(kUninitialized), policy_table(policy_table) {} +Table::~Table() {} Table::Table(const Json::Value* value__) - : CompositeType(InitHelper(value__, &Json::Value::isObject)), - policy_table(impl::ValueMember(value__, "policy_table")) { -} + : CompositeType(InitHelper(value__, &Json::Value::isObject)) + , policy_table(impl::ValueMember(value__, "policy_table")) {} Json::Value Table::ToJsonValue() const { Json::Value result__(Json::objectValue); impl::WriteJsonField("policy_table", policy_table, &result__); @@ -1364,4 +1377,3 @@ void Table::SetPolicyTableType(PolicyTableType pt_type) { } // namespace policy_table_interface_base } // namespace rpc - diff --git a/src/components/policy/src/policy/policy_table/table_struct/types.h b/src/components/policy/src/policy/policy_table/table_struct/types.h index 1e8d17b27a..ce8af22044 100644 --- a/src/components/policy/src/policy/policy_table/table_struct/types.h +++ b/src/components/policy/src/policy/policy_table/table_struct/types.h @@ -20,365 +20,414 @@ struct Rpcs; } // namespace policy_table_interface_base } // namespace rpc - namespace rpc { namespace policy_table_interface_base { -typedef Array< String<1, 255>, 0, 255 > Strings; +typedef Array<String<1, 255>, 0, 255> Strings; -typedef Array< Enum<AppHMIType>, 0, 255 > AppHMITypes; +typedef Array<Enum<AppHMIType>, 0, 255> AppHMITypes; -typedef Array< Enum<HmiLevel>, 0, 4 > HmiLevels; +typedef Array<Enum<HmiLevel>, 0, 4> HmiLevels; -typedef Array< Enum<Parameter>, 0, 24 > Parameters; +typedef Array<Enum<Parameter>, 0, 24> Parameters; -typedef Map< RpcParameters, 0, 50 > Rpc; +typedef Map<RpcParameters, 0, 50> Rpc; -typedef Array< String<10, 255>, 1, 255 > URL; +typedef Array<String<10, 255>, 1, 255> URL; -typedef Map< URL, 1, 255 > URLList; +typedef Map<URL, 1, 255> URLList; -typedef Map< URLList, 1, 255 > ServiceEndpoints; +typedef Map<URLList, 1, 255> ServiceEndpoints; typedef uint8_t NumberOfNotificationsType; -typedef Map< Integer<NumberOfNotificationsType, 0, 255>, 0, 6 > NumberOfNotificationsPerMinute; +typedef Map<Integer<NumberOfNotificationsType, 0, 255>, 0, 6> + NumberOfNotificationsPerMinute; -typedef Array< Integer<uint16_t, 1, 1000>, 0, 10 > SecondsBetweenRetries; +typedef Array<Integer<uint16_t, 1, 1000>, 0, 10> SecondsBetweenRetries; -typedef Map< MessageString, 0, 500 > Languages; +typedef Map<MessageString, 0, 500> Languages; -typedef Map< MessageLanguages, 0, 255 > Messages; +typedef Map<MessageLanguages, 0, 255> Messages; -typedef Map< AppLevel, 0, 255 > AppLevels; +typedef Map<AppLevel, 0, 255> AppLevels; -typedef Map< Stringifyable < Nullable< ApplicationParams > >, 1, 1000 > ApplicationPolicies; +typedef Map<Stringifyable<Nullable<ApplicationParams> >, 1, 1000> + ApplicationPolicies; -typedef Map< Rpcs, 1, 255 > FunctionalGroupings; +typedef Map<Rpcs, 1, 255> FunctionalGroupings; -typedef Map< DeviceParams, 0, 255 > DeviceData; +typedef Map<DeviceParams, 0, 255> DeviceData; -typedef Array< Enum<RequestType>, 0, 255 > RequestTypes; +typedef Array<Enum<RequestType>, 0, 255> RequestTypes; struct PolicyBase : CompositeType { - public: - Enum<Priority> priority; - public: - PolicyBase(); - PolicyBase(Priority priority); - virtual ~PolicyBase(); - explicit PolicyBase(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Enum<Priority> priority; + + public: + PolicyBase(); + PolicyBase(Priority priority); + virtual ~PolicyBase(); + explicit PolicyBase(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct DevicePolicy : PolicyBase { - public: - DevicePolicy(); - DevicePolicy(Priority priority); - ~DevicePolicy(); - explicit DevicePolicy(const Json::Value* value__); + public: + DevicePolicy(); + DevicePolicy(Priority priority); + ~DevicePolicy(); + explicit DevicePolicy(const Json::Value* value__); }; struct ApplicationParams : PolicyBase { - public: - Strings groups; - Optional< Strings > nicknames; - Optional< AppHMITypes > AppHMIType; - Optional< RequestTypes > RequestType; - Optional< Integer<uint16_t, 0, 65225> > memory_kb; - Optional< Integer<uint32_t, 0, UINT_MAX> > heart_beat_timeout_ms; - Optional< String<0, 255> > certificate; - public: - ApplicationParams(); - ApplicationParams(const Strings& groups, Priority priority); - ~ApplicationParams(); - explicit ApplicationParams(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Strings groups; + Optional<Strings> nicknames; + Optional<AppHMITypes> AppHMIType; + Optional<RequestTypes> RequestType; + Optional<Integer<uint16_t, 0, 65225> > memory_kb; + Optional<Integer<uint32_t, 0, UINT_MAX> > heart_beat_timeout_ms; + Optional<String<0, 255> > certificate; + + public: + ApplicationParams(); + ApplicationParams(const Strings& groups, Priority priority); + ~ApplicationParams(); + explicit ApplicationParams(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct ApplicationPoliciesSection : CompositeType { - public: - mutable ApplicationPolicies apps; - DevicePolicy device; - public: - ApplicationPoliciesSection(); - ApplicationPoliciesSection(const ApplicationPolicies& apps, const DevicePolicy& device); - ~ApplicationPoliciesSection(); - explicit ApplicationPoliciesSection(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + mutable ApplicationPolicies apps; + DevicePolicy device; + + public: + ApplicationPoliciesSection(); + ApplicationPoliciesSection(const ApplicationPolicies& apps, + const DevicePolicy& device); + ~ApplicationPoliciesSection(); + explicit ApplicationPoliciesSection(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct RpcParameters : CompositeType { - public: - HmiLevels hmi_levels; - Optional< Parameters > parameters; - public: - RpcParameters(); - explicit RpcParameters(const HmiLevels& hmi_levels); - ~RpcParameters(); - explicit RpcParameters(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + HmiLevels hmi_levels; + Optional<Parameters> parameters; + + public: + RpcParameters(); + explicit RpcParameters(const HmiLevels& hmi_levels); + ~RpcParameters(); + explicit RpcParameters(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct Rpcs : CompositeType { - public: - Optional< String<1, 255> > user_consent_prompt; - Nullable< Rpc > rpcs; - public: - Rpcs(); - explicit Rpcs(const Rpc& rpcs); - ~Rpcs(); - explicit Rpcs(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Optional<String<1, 255> > user_consent_prompt; + Nullable<Rpc> rpcs; + + public: + Rpcs(); + explicit Rpcs(const Rpc& rpcs); + ~Rpcs(); + explicit Rpcs(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct ModuleConfig : CompositeType { - public: - Optional< Map< String<0, 100>, 0, 255 > > device_certificates; - Optional< Boolean > preloaded_pt; - Integer<uint8_t, 0, 255> exchange_after_x_ignition_cycles; - Integer<int64_t, 0, 4294967296ll> exchange_after_x_kilometers; - Integer<uint8_t, 0, 255> exchange_after_x_days; - Integer<uint16_t, 0, 65535> timeout_after_x_seconds; - SecondsBetweenRetries seconds_between_retries; - ServiceEndpoints endpoints; - NumberOfNotificationsPerMinute notifications_per_minute_by_priority; - Optional< String<1, 100> > vehicle_make; - Optional< String<1, 100> > vehicle_model; - Optional< String<4, 4> > vehicle_year; - Optional< String<0, 10> > preloaded_date; - Optional< String<0, 65535> > certificate; - public: - ModuleConfig(); - ModuleConfig(uint8_t exchange_after_x_ignition_cycles, int64_t exchange_after_x_kilometers, uint8_t exchange_after_x_days, uint16_t timeout_after_x_seconds, const SecondsBetweenRetries& seconds_between_retries, const ServiceEndpoints& endpoints, const NumberOfNotificationsPerMinute& notifications_per_minute_by_priority); - ~ModuleConfig(); - explicit ModuleConfig(const Json::Value* value__); - void SafeCopyFrom(const ModuleConfig& from); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Optional<Map<String<0, 100>, 0, 255> > device_certificates; + Optional<Boolean> preloaded_pt; + Integer<uint8_t, 0, 255> exchange_after_x_ignition_cycles; + Integer<int64_t, 0, 4294967296ll> exchange_after_x_kilometers; + Integer<uint8_t, 0, 255> exchange_after_x_days; + Integer<uint16_t, 0, 65535> timeout_after_x_seconds; + SecondsBetweenRetries seconds_between_retries; + ServiceEndpoints endpoints; + NumberOfNotificationsPerMinute notifications_per_minute_by_priority; + Optional<String<1, 100> > vehicle_make; + Optional<String<1, 100> > vehicle_model; + Optional<String<4, 4> > vehicle_year; + Optional<String<0, 10> > preloaded_date; + Optional<String<0, 65535> > certificate; + + public: + ModuleConfig(); + ModuleConfig(uint8_t exchange_after_x_ignition_cycles, + int64_t exchange_after_x_kilometers, + uint8_t exchange_after_x_days, + uint16_t timeout_after_x_seconds, + const SecondsBetweenRetries& seconds_between_retries, + const ServiceEndpoints& endpoints, + const NumberOfNotificationsPerMinute& + notifications_per_minute_by_priority); + ~ModuleConfig(); + explicit ModuleConfig(const Json::Value* value__); + void SafeCopyFrom(const ModuleConfig& from); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct MessageString : CompositeType { - public: - Optional< String<1, 65535> > line1; - Optional< String<1, 65535> > line2; - Optional< String<1, 65535> > tts; - Optional< String<1, 65535> > label; - Optional< String<1, 65535> > textBody; - public: - MessageString(); - ~MessageString(); - explicit MessageString(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Optional<String<1, 65535> > line1; + Optional<String<1, 65535> > line2; + Optional<String<1, 65535> > tts; + Optional<String<1, 65535> > label; + Optional<String<1, 65535> > textBody; + + public: + MessageString(); + ~MessageString(); + explicit MessageString(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct MessageLanguages : CompositeType { - public: - Languages languages; - public: - MessageLanguages(); - explicit MessageLanguages(const Languages& languages); - ~MessageLanguages(); - explicit MessageLanguages(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Languages languages; + + public: + MessageLanguages(); + explicit MessageLanguages(const Languages& languages); + ~MessageLanguages(); + explicit MessageLanguages(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct ConsumerFriendlyMessages : CompositeType { - public: - String<1, 100> version; - Optional< Messages > messages; - public: - ConsumerFriendlyMessages(); - explicit ConsumerFriendlyMessages(const std::string& version); - ~ConsumerFriendlyMessages(); - explicit ConsumerFriendlyMessages(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + String<1, 100> version; + Optional<Messages> messages; + + public: + ConsumerFriendlyMessages(); + explicit ConsumerFriendlyMessages(const std::string& version); + ~ConsumerFriendlyMessages(); + explicit ConsumerFriendlyMessages(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct ModuleMeta : CompositeType { - public: - public: - ModuleMeta(); - ~ModuleMeta(); - explicit ModuleMeta(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - private: - bool Validate() const; + public: + public: + ModuleMeta(); + ~ModuleMeta(); + explicit ModuleMeta(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + + private: + bool Validate() const; }; struct AppLevel : CompositeType { - public: - - Integer<uint16_t, 0, 65535> minutes_in_hmi_full; - String<1, 10> app_registration_language_gui; - String<0, 10> app_registration_language_vui; - Integer<uint16_t, 0, 65535> minutes_in_hmi_limited; - Integer<uint16_t, 0, 65535> minutes_in_hmi_background; - Integer<uint16_t, 0, 65535> minutes_in_hmi_none; - Integer<uint16_t, 0, 65535> count_of_user_selections; - Integer<uint16_t, 0, 65535> count_of_rejections_sync_out_of_memory; - Integer<uint16_t, 0, 65535> count_of_rejections_nickname_mismatch; - Integer<uint16_t, 0, 65535> count_of_rejections_duplicate_name; - Integer<uint16_t, 0, 65535> count_of_rejected_rpc_calls; - Integer<uint16_t, 0, 65535> count_of_rpcs_sent_in_hmi_none; - Integer<uint16_t, 0, 65535> count_of_removals_for_bad_behavior; - Integer<uint16_t, 0, 65535> count_of_tls_errors; - Integer<uint16_t, 0, 65535> count_of_run_attempts_while_revoked; - public: - AppLevel(); - AppLevel(uint16_t minutes_in_hmi_full, const std::string& app_registration_language_gui, const std::string& app_registration_language_vui, uint16_t minutes_in_hmi_limited, uint16_t minutes_in_hmi_background, uint16_t minutes_in_hmi_none, uint16_t count_of_user_selections, uint16_t count_of_rejections_sync_out_of_memory, uint16_t count_of_rejections_nickname_mismatch, uint16_t count_of_rejections_duplicate_name, uint16_t count_of_rejected_rpc_calls, uint16_t count_of_rpcs_sent_in_hmi_none, uint16_t count_of_removals_for_bad_behavior, -uint16_t count_of_tls_errors, uint16_t count_of_run_attempts_while_revoked); - ~AppLevel(); - explicit AppLevel(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - private: - bool Validate() const; + public: + Integer<uint16_t, 0, 65535> minutes_in_hmi_full; + String<1, 10> app_registration_language_gui; + String<0, 10> app_registration_language_vui; + Integer<uint16_t, 0, 65535> minutes_in_hmi_limited; + Integer<uint16_t, 0, 65535> minutes_in_hmi_background; + Integer<uint16_t, 0, 65535> minutes_in_hmi_none; + Integer<uint16_t, 0, 65535> count_of_user_selections; + Integer<uint16_t, 0, 65535> count_of_rejections_sync_out_of_memory; + Integer<uint16_t, 0, 65535> count_of_rejections_nickname_mismatch; + Integer<uint16_t, 0, 65535> count_of_rejections_duplicate_name; + Integer<uint16_t, 0, 65535> count_of_rejected_rpc_calls; + Integer<uint16_t, 0, 65535> count_of_rpcs_sent_in_hmi_none; + Integer<uint16_t, 0, 65535> count_of_removals_for_bad_behavior; + Integer<uint16_t, 0, 65535> count_of_tls_errors; + Integer<uint16_t, 0, 65535> count_of_run_attempts_while_revoked; + + public: + AppLevel(); + AppLevel(uint16_t minutes_in_hmi_full, + const std::string& app_registration_language_gui, + const std::string& app_registration_language_vui, + uint16_t minutes_in_hmi_limited, + uint16_t minutes_in_hmi_background, + uint16_t minutes_in_hmi_none, + uint16_t count_of_user_selections, + uint16_t count_of_rejections_sync_out_of_memory, + uint16_t count_of_rejections_nickname_mismatch, + uint16_t count_of_rejections_duplicate_name, + uint16_t count_of_rejected_rpc_calls, + uint16_t count_of_rpcs_sent_in_hmi_none, + uint16_t count_of_removals_for_bad_behavior, + uint16_t count_of_tls_errors, + uint16_t count_of_run_attempts_while_revoked); + ~AppLevel(); + explicit AppLevel(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + + private: + bool Validate() const; }; struct UsageAndErrorCounts : CompositeType { - public: - Optional< AppLevels > app_level; - public: - UsageAndErrorCounts(); - ~UsageAndErrorCounts(); - explicit UsageAndErrorCounts(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + Optional<AppLevels> app_level; + + public: + UsageAndErrorCounts(); + ~UsageAndErrorCounts(); + explicit UsageAndErrorCounts(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct DeviceParams : CompositeType { - public: - public: - DeviceParams(); - ~DeviceParams(); - explicit DeviceParams(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - private: - bool Validate() const; + public: + public: + DeviceParams(); + ~DeviceParams(); + explicit DeviceParams(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + + private: + bool Validate() const; }; struct PolicyTable : CompositeType { - public: - ApplicationPoliciesSection app_policies_section; - FunctionalGroupings functional_groupings; - Optional < ConsumerFriendlyMessages > consumer_friendly_messages; - ModuleConfig module_config; - Optional< ModuleMeta > module_meta; - Optional< UsageAndErrorCounts > usage_and_error_counts; - Optional< DeviceData > device_data; - public: - PolicyTable(); - PolicyTable(const ApplicationPoliciesSection& app_policies_section, - const FunctionalGroupings& functional_groupings, - const ConsumerFriendlyMessages& consumer_friendly_messages, - const ModuleConfig& module_config); - ~PolicyTable(); - explicit PolicyTable(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + ApplicationPoliciesSection app_policies_section; + FunctionalGroupings functional_groupings; + Optional<ConsumerFriendlyMessages> consumer_friendly_messages; + ModuleConfig module_config; + Optional<ModuleMeta> module_meta; + Optional<UsageAndErrorCounts> usage_and_error_counts; + Optional<DeviceData> device_data; + + public: + PolicyTable(); + PolicyTable(const ApplicationPoliciesSection& app_policies_section, + const FunctionalGroupings& functional_groupings, + const ConsumerFriendlyMessages& consumer_friendly_messages, + const ModuleConfig& module_config); + ~PolicyTable(); + explicit PolicyTable(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; struct Table : CompositeType { - public: - PolicyTable policy_table; - public: - Table(); - explicit Table(const PolicyTable& policy_table); - ~Table(); - explicit Table(const Json::Value* value__); - Json::Value ToJsonValue() const; - bool is_valid() const; - bool is_initialized() const; - bool struct_empty() const; - void ReportErrors(rpc::ValidationReport* report__) const; - virtual void SetPolicyTableType(PolicyTableType pt_type); - private: - bool Validate() const; + public: + PolicyTable policy_table; + + public: + Table(); + explicit Table(const PolicyTable& policy_table); + ~Table(); + explicit Table(const Json::Value* value__); + Json::Value ToJsonValue() const; + bool is_valid() const; + bool is_initialized() const; + bool struct_empty() const; + void ReportErrors(rpc::ValidationReport* report__) const; + virtual void SetPolicyTableType(PolicyTableType pt_type); + + private: + bool Validate() const; }; } // namespace policy_table_interface_base } // namespace rpc diff --git a/src/components/policy/src/policy/policy_table/table_struct/validation.cc b/src/components/policy/src/policy/policy_table/table_struct/validation.cc index a4e12ed3a6..061f7f3ff1 100644 --- a/src/components/policy/src/policy/policy_table/table_struct/validation.cc +++ b/src/components/policy/src/policy/policy_table/table_struct/validation.cc @@ -3,7 +3,10 @@ #include "utils/logger.h" namespace { -bool IsTypeInvalid(rpc::Enum<rpc::policy_table_interface_base::RequestType> request) { return !request.is_valid(); } +bool IsTypeInvalid( + rpc::Enum<rpc::policy_table_interface_base::RequestType> request) { + return !request.is_valid(); +} } namespace rpc { @@ -12,9 +15,8 @@ namespace policy_table_interface_base { CREATE_LOGGERPTR_GLOBAL(logger_, "Policy") void RemoveInvalidTypes(RequestTypes& types) { - types.erase( - std::remove_if(types.begin(), types.end(), &IsTypeInvalid), - types.end()); + types.erase(std::remove_if(types.begin(), types.end(), &IsTypeInvalid), + types.end()); } bool PolicyBase::Validate() const { @@ -22,8 +24,7 @@ bool PolicyBase::Validate() const { } bool ApplicationPoliciesSection::Validate() const { - ApplicationPolicies::iterator it_default_policy = - apps.find(kDefaultApp); + ApplicationPolicies::iterator it_default_policy = apps.find(kDefaultApp); ApplicationPolicies::iterator it_pre_data_policy = apps.find(kPreDataConsentApp); @@ -53,8 +54,8 @@ bool ApplicationPoliciesSection::Validate() const { if (PT_PRELOADED == pt_type) { if (it_default_policy->second.RequestType->empty()) { LOG4CXX_ERROR( - logger_, - "Default policy RequestTypes empty after clean-up. Exiting."); + logger_, + "Default policy RequestTypes empty after clean-up. Exiting."); return false; } } @@ -63,8 +64,7 @@ bool ApplicationPoliciesSection::Validate() const { ApplicationPolicies::iterator iter = apps.begin(); ApplicationPolicies::iterator end_iter = apps.end(); - - while(iter != end_iter) { + while (iter != end_iter) { ApplicationParams& app_params = (*iter).second; bool is_request_type_ommited = !app_params.RequestType.is_initialized(); bool is_request_type_valid = app_params.RequestType.is_valid(); @@ -72,33 +72,33 @@ bool ApplicationPoliciesSection::Validate() const { if (PT_PRELOADED == pt_type) { if (!is_request_type_valid) { - LOG4CXX_WARN( - logger_, - "App policy RequestTypes are not valid. Will be cleaned."); + LOG4CXX_WARN(logger_, + "App policy RequestTypes are not valid. Will be cleaned."); RemoveInvalidTypes(*app_params.RequestType); if (app_params.RequestType->empty()) { LOG4CXX_ERROR( - logger_, - "App policy RequestTypes empty after clean-up. Exiting."); + logger_, + "App policy RequestTypes empty after clean-up. Exiting."); return false; } } } else { if (is_request_type_ommited) { - LOG4CXX_WARN(logger_, "App policy RequestTypes ommited." - " Will be replaced with default."); + LOG4CXX_WARN(logger_, + "App policy RequestTypes ommited." + " Will be replaced with default."); app_params.RequestType = apps[kDefaultApp].RequestType; ++iter; continue; } if (!is_request_type_valid) { - LOG4CXX_WARN( - logger_, - "App policy RequestTypes are invalid. Will be cleaned."); + LOG4CXX_WARN(logger_, + "App policy RequestTypes are invalid. Will be cleaned."); RemoveInvalidTypes(*app_params.RequestType); if (app_params.RequestType->empty()) { - LOG4CXX_WARN(logger_, "App policy RequestTypes empty after clean-up." - " Will be replaced with default."); + LOG4CXX_WARN(logger_, + "App policy RequestTypes empty after clean-up." + " Will be replaced with default."); app_params.RequestType = apps[kDefaultApp].RequestType; ++iter; continue; @@ -125,9 +125,7 @@ bool Rpcs::Validate() const { } bool ModuleConfig::Validate() const { - if (PT_PRELOADED == GetPolicyTableType()) { - if (vehicle_make.is_initialized()) { return false; } @@ -173,7 +171,7 @@ bool AppLevel::Validate() const { bool UsageAndErrorCounts::Validate() const { if (PT_PRELOADED == GetPolicyTableType() || PT_UPDATE == GetPolicyTableType()) { - return false; + return false; } return true; } @@ -194,4 +192,3 @@ bool Table::Validate() const { } } // namespace policy_table_interface_base } // namespace rpc - diff --git a/src/components/policy/src/policy/src/cache_manager.cc b/src/components/policy/src/policy/src/cache_manager.cc index 439e16fec2..2147fdb949 100644 --- a/src/components/policy/src/policy/src/cache_manager.cc +++ b/src/components/policy/src/policy/src/cache_manager.cc @@ -47,7 +47,7 @@ #include "utils/threads/thread.h" #include "utils/threads/thread_delegate.h" -# include "policy/sql_pt_representation.h" +#include "policy/sql_pt_representation.h" namespace policy_table = rpc::policy_table_interface_base; @@ -55,38 +55,37 @@ namespace policy { CREATE_LOGGERPTR_GLOBAL(logger_, "Policy") -#define CACHE_MANAGER_CHECK(return_value) {\ - if (!pt_) {\ - LOG4CXX_WARN(logger_, "The cache manager is not initialized");\ - return return_value;\ - }\ -} +#define CACHE_MANAGER_CHECK(return_value) \ + { \ + if (!pt_) { \ + LOG4CXX_WARN(logger_, "The cache manager is not initialized"); \ + return return_value; \ + } \ + } -#define CACHE_MANAGER_CHECK_VOID() {\ - if (!pt_) {\ - LOG4CXX_WARN(logger_, "The cache manager is not initialized");\ - return;\ - }\ -} +#define CACHE_MANAGER_CHECK_VOID() \ + { \ + if (!pt_) { \ + LOG4CXX_WARN(logger_, "The cache manager is not initialized"); \ + return; \ + } \ + } struct LanguageFinder { - LanguageFinder(const std::string& language): - language_(language) { - } + LanguageFinder(const std::string& language) : language_(language) {} bool operator()(const policy_table::Languages::value_type& lang) const { return !strcasecmp(language_.c_str(), lang.first.c_str()); } -private: + private: const std::string& language_; }; CacheManager::CacheManager() - : CacheManagerInterface(), - pt_(new policy_table::Table), - backup_(new SQLPTRepresentation()), - update_required(false) { - + : CacheManagerInterface() + , pt_(new policy_table::Table) + , backup_(new SQLPTRepresentation()) + , update_required(false) { LOG4CXX_AUTO_TRACE(logger_); backuper_ = new BackgroundBackuper(this); backup_thread_ = threads::CreateThread("Backup thread", backuper_); @@ -111,22 +110,21 @@ uint32_t CacheManager::HeartBeatTimeout(const std::string& app_id) const { CACHE_MANAGER_CHECK(0); uint32_t result = 0; if (AppExists(app_id)) { - if (pt_->policy_table.app_policies_section.apps[app_id].heart_beat_timeout_ms - .is_initialized()) { - result = *(pt_->policy_table.app_policies_section.apps[app_id].heart_beat_timeout_ms); + if (pt_->policy_table.app_policies_section.apps[app_id] + .heart_beat_timeout_ms.is_initialized()) { + result = *(pt_->policy_table.app_policies_section.apps[app_id] + .heart_beat_timeout_ms); } } return result; } - bool CacheManager::CanAppStealFocus(const std::string& app_id) const { CACHE_MANAGER_CHECK(false); bool result = true; return result; } - bool CacheManager::GetDefaultHMI(const std::string& app_id, std::string& default_hmi) const { CACHE_MANAGER_CHECK(false); @@ -136,15 +134,14 @@ bool CacheManager::GetDefaultHMI(const std::string& app_id, bool CacheManager::ResetUserConsent() { CACHE_MANAGER_CHECK(false); - sync_primitives::AutoLock lock (cache_lock_); + sync_primitives::AutoLock lock(cache_lock_); return true; } - -bool CacheManager::GetUserPermissionsForDevice(const std::string &device_id, - StringArray& consented_groups, - StringArray& disallowed_groups) const { - +bool CacheManager::GetUserPermissionsForDevice( + const std::string& device_id, + StringArray& consented_groups, + StringArray& disallowed_groups) const { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); return true; @@ -152,7 +149,6 @@ bool CacheManager::GetUserPermissionsForDevice(const std::string &device_id, void CacheManager::GetAllAppGroups(const std::string& app_id, FunctionalGroupIDs& all_group_ids) { - LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); @@ -171,32 +167,30 @@ void CacheManager::GetAllAppGroups(const std::string& app_id, (*app_params_iter).second.groups.end(); for (; iter != iter_end; ++iter) { - const uint32_t group_id = - static_cast<uint32_t> ((GenerateHash(*iter))); + const uint32_t group_id = static_cast<uint32_t>((GenerateHash(*iter))); all_group_ids.push_back(group_id); } } } -void CacheManager::GetPreConsentedGroups(const std::string &app_id, - FunctionalGroupIDs& preconsented_groups) { - +void CacheManager::GetPreConsentedGroups( + const std::string& app_id, FunctionalGroupIDs& preconsented_groups) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); } -void CacheManager::GetConsentedGroups(const std::string &device_id, - const std::string &app_id, +void CacheManager::GetConsentedGroups(const std::string& device_id, + const std::string& app_id, FunctionalGroupIDs& allowed_groups, FunctionalGroupIDs& disallowed_groups) { - LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); } -void CacheManager::GetUnconsentedGroups(const std::string& device_id, - const std::string& policy_app_id, - FunctionalGroupIDs& unconsented_groups) { +void CacheManager::GetUnconsentedGroups( + const std::string& device_id, + const std::string& policy_app_id, + FunctionalGroupIDs& unconsented_groups) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); } @@ -218,18 +212,21 @@ bool CacheManager::ApplyUpdate(const policy_table::Table& update_pt) { policy_table::ApplicationPolicies::const_iterator iter_end = update_pt.policy_table.app_policies_section.apps.end(); - for (;iter != iter_end; ++iter) { + for (; iter != iter_end; ++iter) { if (iter->second.is_null()) { pt_->policy_table.app_policies_section.apps[iter->first].set_to_null(); - pt_->policy_table.app_policies_section.apps[iter->first].set_to_string(""); + pt_->policy_table.app_policies_section.apps[iter->first].set_to_string( + ""); } else if (policy::kDefaultId == (iter->second).get_string()) { - policy_table::ApplicationPolicies::const_iterator iter_default = - update_pt.policy_table.app_policies_section.apps.find(kDefaultId); - if (update_pt.policy_table.app_policies_section.apps.end() == iter_default) { - LOG4CXX_ERROR(logger_, "The default section was not found in PTU"); - continue; - } - pt_->policy_table.app_policies_section.apps[iter->first] = iter_default->second; + policy_table::ApplicationPolicies::const_iterator iter_default = + update_pt.policy_table.app_policies_section.apps.find(kDefaultId); + if (update_pt.policy_table.app_policies_section.apps.end() == + iter_default) { + LOG4CXX_ERROR(logger_, "The default section was not found in PTU"); + continue; + } + pt_->policy_table.app_policies_section.apps[iter->first] = + iter_default->second; } else { pt_->policy_table.app_policies_section.apps[iter->first] = iter->second; } @@ -238,17 +235,19 @@ bool CacheManager::ApplyUpdate(const policy_table::Table& update_pt) { pt_->policy_table.app_policies_section.device = update_pt.policy_table.app_policies_section.device; - pt_->policy_table.module_config.SafeCopyFrom(update_pt.policy_table.module_config); + pt_->policy_table.module_config.SafeCopyFrom( + update_pt.policy_table.module_config); pt_->policy_table.consumer_friendly_messages.assign_if_valid( - update_pt.policy_table.consumer_friendly_messages); + update_pt.policy_table.consumer_friendly_messages); ResetCalculatedPermissions(); Backup(); return true; } -void CacheManager::GetHMIAppTypeAfterUpdate(std::map<std::string, StringArray>& app_hmi_types) { +void CacheManager::GetHMIAppTypeAfterUpdate( + std::map<std::string, StringArray>& app_hmi_types) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); policy_table::ApplicationPolicies::const_iterator policy_iter_begin = @@ -256,14 +255,17 @@ void CacheManager::GetHMIAppTypeAfterUpdate(std::map<std::string, StringArray>& policy_table::ApplicationPolicies::const_iterator policy_iter_end = pt_->policy_table.app_policies_section.apps.end(); std::vector<std::string> transform_app_hmi_types; - for(; policy_iter_begin != policy_iter_end; ++policy_iter_begin) { - const policy_table::ApplicationParams& app_params = (*policy_iter_begin).second; - if(app_params.AppHMIType.is_initialized()) { - if(!(transform_app_hmi_types.empty())) { + for (; policy_iter_begin != policy_iter_end; ++policy_iter_begin) { + const policy_table::ApplicationParams& app_params = + (*policy_iter_begin).second; + if (app_params.AppHMIType.is_initialized()) { + if (!(transform_app_hmi_types.empty())) { transform_app_hmi_types.clear(); } - std::transform(app_params.AppHMIType->begin(), app_params.AppHMIType->end(), - std::back_inserter(transform_app_hmi_types), AppHMITypeToString()); + std::transform(app_params.AppHMIType->begin(), + app_params.AppHMIType->end(), + std::back_inserter(transform_app_hmi_types), + AppHMITypeToString()); app_hmi_types[(*policy_iter_begin).first] = transform_app_hmi_types; } } @@ -276,19 +278,18 @@ void CacheManager::Backup() { } std::string CacheManager::currentDateTime() { - time_t now = time(0); - struct tm tstruct; - char buf[80]; + time_t now = time(0); + struct tm tstruct; + char buf[80]; tstruct = *localtime(&now); // ISO_8601 format is expected, e.g. “2000-01-01T12:18:53Z” strftime(buf, sizeof(buf), "%Y-%m-%dT%XZ", &tstruct); return buf; } -bool CacheManager::GetPermissionsForApp(const std::string &device_id, - const std::string &app_id, +bool CacheManager::GetPermissionsForApp(const std::string& device_id, + const std::string& app_id, FunctionalIdType& group_types) { - LOG4CXX_AUTO_TRACE(logger_); GetAllAppGroups(app_id, group_types[kTypeGeneral]); GetAllAppGroups(kDefaultId, group_types[kTypeDefault]); @@ -297,8 +298,8 @@ bool CacheManager::GetPermissionsForApp(const std::string &device_id, } bool CacheManager::GetDeviceGroupsFromPolicies( - policy_table::Strings& groups, - policy_table::Strings& preconsented_groups) const { + policy_table::Strings& groups, + policy_table::Strings& preconsented_groups) const { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); return true; @@ -314,14 +315,14 @@ bool CacheManager::AddDevice(const std::string& device_id, return true; } -bool CacheManager::SetDeviceData(const std::string &device_id, - const std::string &hardware, - const std::string &firmware, - const std::string &os, - const std::string &os_version, - const std::string &carrier, +bool CacheManager::SetDeviceData(const std::string& device_id, + const std::string& hardware, + const std::string& firmware, + const std::string& os, + const std::string& os_version, + const std::string& carrier, const uint32_t number_of_ports, - const std::string &connection_type) { + const std::string& connection_type) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock auto_lock(cache_lock_); @@ -331,9 +332,9 @@ bool CacheManager::SetDeviceData(const std::string &device_id, } bool CacheManager::SetUserPermissionsForDevice( - const std::string &device_id, - const StringArray &consented_groups, - const StringArray &disallowed_groups) { + const std::string& device_id, + const StringArray& consented_groups, + const StringArray& disallowed_groups) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock auto_lock(cache_lock_); CACHE_MANAGER_CHECK(false); @@ -341,7 +342,7 @@ bool CacheManager::SetUserPermissionsForDevice( return true; } -bool CacheManager::ReactOnUserDevConsentForApp(const std::string &app_id, +bool CacheManager::ReactOnUserDevConsentForApp(const std::string& app_id, bool is_device_allowed) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); @@ -352,7 +353,6 @@ bool CacheManager::ReactOnUserDevConsentForApp(const std::string &app_id, void CacheManager::GetGroupNameByHashID(const int32_t group_id, std::string& group_name) { - CACHE_MANAGER_CHECK_VOID(); policy_table::FunctionalGroupings::const_iterator fg_iter = pt_->policy_table.functional_groupings.begin(); @@ -368,7 +368,7 @@ void CacheManager::GetGroupNameByHashID(const int32_t group_id, } bool CacheManager::SetUserPermissionsForApp( - const PermissionConsent &permissions) { + const PermissionConsent& permissions) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock auto_lock(cache_lock_); CACHE_MANAGER_CHECK(false); @@ -396,17 +396,17 @@ bool CacheManager::IsApplicationRevoked(const std::string& app_id) const { return is_revoked; } -void CacheManager::CheckPermissions(const PTString &app_id, - const PTString &hmi_level, - const PTString &rpc, - CheckPermissionResult &result) { +void CacheManager::CheckPermissions(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + CheckPermissionResult& result) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); if (pt_->policy_table.app_policies_section.apps.end() == pt_->policy_table.app_policies_section.apps.find(app_id)) { - LOG4CXX_ERROR(logger_, "Application id " << app_id - << " was not found in policy DB."); + LOG4CXX_ERROR( + logger_, "Application id " << app_id << " was not found in policy DB."); return; } @@ -419,7 +419,8 @@ void CacheManager::CheckPermissions(const PTString &app_id, policy_table::FunctionalGroupings::const_iterator concrete_group; for (; app_groups_iter != app_groups_iter_end; ++app_groups_iter) { - concrete_group = pt_->policy_table.functional_groupings.find(*app_groups_iter); + concrete_group = + pt_->policy_table.functional_groupings.find(*app_groups_iter); if (pt_->policy_table.functional_groupings.end() != concrete_group) { const policy_table::Rpcs& rpcs = concrete_group->second; @@ -431,8 +432,9 @@ void CacheManager::CheckPermissions(const PTString &app_id, policy_table::EnumFromJsonString(hmi_level, &hmi_level_e); policy_table::HmiLevels::const_iterator hmi_iter = - std::find(rpc_param.hmi_levels.begin(), rpc_param.hmi_levels.end(), - hmi_level_e); + std::find(rpc_param.hmi_levels.begin(), + rpc_param.hmi_levels.end(), + hmi_level_e); if (rpc_param.hmi_levels.end() != hmi_iter) { result.hmi_level_permitted = PermitResult::kRpcAllowed; @@ -442,9 +444,9 @@ void CacheManager::CheckPermissions(const PTString &app_id, policy_table::Parameters::const_iterator params_iter_end = rpc_param.parameters->end(); - for (;params_iter != params_iter_end; ++params_iter) { + for (; params_iter != params_iter_end; ++params_iter) { result.list_of_allowed_params.push_back( - policy_table::EnumToJsonString(*params_iter)); + policy_table::EnumToJsonString(*params_iter)); } } } @@ -460,31 +462,31 @@ bool CacheManager::IsPTPreloaded() { int CacheManager::IgnitionCyclesBeforeExchange() { CACHE_MANAGER_CHECK(0); const uint8_t limit = std::max( - static_cast<int>( - pt_->policy_table.module_config.exchange_after_x_ignition_cycles), 0); + static_cast<int>( + pt_->policy_table.module_config.exchange_after_x_ignition_cycles), + 0); LOG4CXX_DEBUG(logger_, "IgnitionCyclesBeforeExchange limit:" << limit); uint8_t current = 0; - return std::max(limit - current, 0); } int CacheManager::KilometersBeforeExchange(int current) { CACHE_MANAGER_CHECK(0); - const int limit = std::max( - static_cast<int>( - pt_->policy_table.module_config.exchange_after_x_kilometers), 0); + const int limit = + std::max(static_cast<int>( + pt_->policy_table.module_config.exchange_after_x_kilometers), + 0); LOG4CXX_DEBUG(logger_, "KilometersBeforeExchange limit:" << limit); int last = 0; - const int actual = std::max((current - last), 0); LOG4CXX_DEBUG(logger_, "KilometersBeforeExchange actual:" << actual); return std::max(limit - actual, 0); } -bool CacheManager::SetCountersPassedForSuccessfulUpdate(policy::Counters counter, - int value) { +bool CacheManager::SetCountersPassedForSuccessfulUpdate( + policy::Counters counter, int value) { CACHE_MANAGER_CHECK(false); UNUSED(counter); UNUSED(value); @@ -495,12 +497,11 @@ bool CacheManager::SetCountersPassedForSuccessfulUpdate(policy::Counters counter int CacheManager::DaysBeforeExchange(int current) { CACHE_MANAGER_CHECK(0); const uint8_t limit = std::max( - static_cast<int>( - pt_->policy_table.module_config.exchange_after_x_days), 0); + static_cast<int>(pt_->policy_table.module_config.exchange_after_x_days), + 0); LOG4CXX_DEBUG(logger_, "DaysBeforeExchange limit:" << limit); uint8_t last = 0; - const uint8_t actaul = std::max((current - last), 0); LOG4CXX_DEBUG(logger_, "DaysBeforeExchange actual:" << actaul); return std::max(limit - actaul, 0); @@ -524,14 +525,14 @@ int CacheManager::TimeoutResponse() { bool CacheManager::SecondsBetweenRetries(std::vector<int>& seconds) { CACHE_MANAGER_CHECK(false); rpc::policy_table_interface_base::SecondsBetweenRetries::iterator iter = - pt_->policy_table.module_config.seconds_between_retries.begin(); + pt_->policy_table.module_config.seconds_between_retries.begin(); rpc::policy_table_interface_base::SecondsBetweenRetries::iterator iter_end = - pt_->policy_table.module_config.seconds_between_retries.end(); + pt_->policy_table.module_config.seconds_between_retries.end(); const std::size_t size = pt_->policy_table.module_config.seconds_between_retries.size(); seconds.reserve(size); - for (;iter != iter_end; ++iter) { + for (; iter != iter_end; ++iter) { seconds.push_back(*iter); } return true; @@ -539,22 +540,21 @@ bool CacheManager::SecondsBetweenRetries(std::vector<int>& seconds) { const policy::VehicleInfo CacheManager::GetVehicleInfo() const { CACHE_MANAGER_CHECK(VehicleInfo()); - policy_table::ModuleConfig& module_config = - pt_->policy_table.module_config; + policy_table::ModuleConfig& module_config = pt_->policy_table.module_config; VehicleInfo vehicle_info; vehicle_info.vehicle_make = *module_config.vehicle_make; vehicle_info.vehicle_model = *module_config.vehicle_model; vehicle_info.vehicle_year = *module_config.vehicle_year; - LOG4CXX_DEBUG(logger_, "Vehicle info (make, model, year):" - << vehicle_info.vehicle_make << "," - << vehicle_info.vehicle_model << "," - << vehicle_info.vehicle_year ); + LOG4CXX_DEBUG( + logger_, + "Vehicle info (make, model, year):" << vehicle_info.vehicle_make << "," + << vehicle_info.vehicle_model << "," + << vehicle_info.vehicle_year); return vehicle_info; } std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg( const std::vector<std::string>& msg_codes, const std::string& language) { - LOG4CXX_AUTO_TRACE(logger_); std::vector<UserFriendlyMessage> result; CACHE_MANAGER_CHECK(result); @@ -562,7 +562,6 @@ std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg( std::vector<std::string>::const_iterator it = msg_codes.begin(); std::vector<std::string>::const_iterator it_end = msg_codes.end(); for (; it != it_end; ++it) { - policy_table::MessageLanguages msg_languages = (*pt_->policy_table.consumer_friendly_messages->messages)[*it]; @@ -571,14 +570,14 @@ std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg( // If message has no records with required language, fallback language // should be used instead. LanguageFinder finder(language); - policy_table::Languages::const_iterator it_language = - std::find_if(msg_languages.languages.begin(), - msg_languages.languages.end(), - finder); + policy_table::Languages::const_iterator it_language = std::find_if( + msg_languages.languages.begin(), msg_languages.languages.end(), finder); if (msg_languages.languages.end() == it_language) { - LOG4CXX_WARN(logger_, "Language " << language << - " haven't been found for message code: " << *it); + LOG4CXX_WARN(logger_, + "Language " + << language + << " haven't been found for message code: " << *it); LanguageFinder fallback_language_finder("en-us"); @@ -588,8 +587,8 @@ std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg( fallback_language_finder); if (msg_languages.languages.end() == it_fallback_language) { - LOG4CXX_ERROR(logger_, "No fallback language found for message code: " - << *it); + LOG4CXX_ERROR(logger_, + "No fallback language found for message code: " << *it); continue; } @@ -606,7 +605,7 @@ std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg( } void CacheManager::GetServiceUrls(const std::string& service_type, - EndpointUrls& end_points) { + EndpointUrls& end_points) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK_VOID(); std::string search_value; @@ -620,13 +619,16 @@ void CacheManager::GetServiceUrls(const std::string& service_type, pt_->policy_table.module_config.endpoints.find(search_value); if (pt_->policy_table.module_config.endpoints.end() != iter) { - policy_table::URLList::const_iterator url_list_iter = (*iter).second.begin(); - policy_table::URLList::const_iterator url_list_iter_end = (*iter).second.end(); + policy_table::URLList::const_iterator url_list_iter = + (*iter).second.begin(); + policy_table::URLList::const_iterator url_list_iter_end = + (*iter).second.end(); for (; url_list_iter != url_list_iter_end; ++url_list_iter) { EndpointData data; data.app_id = (*url_list_iter).first; - std::copy((*url_list_iter).second.begin(), (*url_list_iter).second.end(), - std::back_inserter(data.url)); + std::copy((*url_list_iter).second.begin(), + (*url_list_iter).second.end(), + std::back_inserter(data.url)); end_points.push_back(data); } @@ -637,10 +639,11 @@ std::string CacheManager::GetLockScreenIconUrl() const { if (backup_) { return backup_->GetLockScreenIconUrl(); } - return std::string (""); + return std::string(""); } -rpc::policy_table_interface_base::NumberOfNotificationsType CacheManager::GetNotificationsNumber(const std::string& priority) { +rpc::policy_table_interface_base::NumberOfNotificationsType +CacheManager::GetNotificationsNumber(const std::string& priority) { CACHE_MANAGER_CHECK(0); typedef rpc::policy_table_interface_base::NumberOfNotificationsPerMinute NNPM; @@ -659,7 +662,7 @@ bool CacheManager::GetPriority(const std::string& policy_app_id, CACHE_MANAGER_CHECK(false); if (kDeviceId == policy_app_id) { priority = EnumToJsonString( - pt_->policy_table.app_policies_section.device.priority); + pt_->policy_table.app_policies_section.device.priority); return true; } @@ -692,11 +695,12 @@ void CacheManager::CheckSnapshotInitialization() { /* consumer_friendly_messages are required for the snapshot; * consumer_friendly_messages->version is required always, but * consumer_friendly_messages->messages must be omitted in PTS */ - if( snapshot_->policy_table.consumer_friendly_messages->is_initialized() ) { + if (snapshot_->policy_table.consumer_friendly_messages->is_initialized()) { snapshot_->policy_table.consumer_friendly_messages->messages = rpc::Optional<policy_table::Messages>(); } else { - LOG4CXX_WARN(logger_, "policy_table.consumer_friendly_messages is not initialized"); + LOG4CXX_WARN(logger_, + "policy_table.consumer_friendly_messages is not initialized"); } /* policy_table.usage_and_error_counts are required for PTS and @@ -710,7 +714,7 @@ void CacheManager::CheckSnapshotInitialization() { usage_and_error_counts->app_level->begin(); policy_table::AppLevels::const_iterator it_end = usage_and_error_counts->app_level->end(); - for (;it != it_end; ++it) { + for (; it != it_end; ++it) { if (!(*it).second.minutes_in_hmi_full.is_initialized()) { (*it).second.minutes_in_hmi_full = 0; } @@ -739,11 +743,14 @@ void CacheManager::CheckSnapshotInitialization() { (*it).second.count_of_user_selections = 0; } - if (!(*it).second.count_of_rejections_sync_out_of_memory.is_initialized()) { + if (!(*it) + .second.count_of_rejections_sync_out_of_memory + .is_initialized()) { (*it).second.count_of_rejections_sync_out_of_memory = 0; } - if (!(*it).second.count_of_rejections_nickname_mismatch.is_initialized()) { + if (!(*it) + .second.count_of_rejections_nickname_mismatch.is_initialized()) { (*it).second.count_of_rejections_nickname_mismatch = 0; } @@ -768,7 +775,8 @@ void CacheManager::CheckSnapshotInitialization() { } } } else { - LOG4CXX_WARN(logger_, "usage_and_error_counts or app_level is not initialized"); + LOG4CXX_WARN(logger_, + "usage_and_error_counts or app_level is not initialized"); } } @@ -776,7 +784,6 @@ void CacheManager::PersistData() { LOG4CXX_AUTO_TRACE(logger_); if (backup_.valid()) { if (pt_.valid()) { - cache_lock_.Acquire(); policy_table::Table copy_pt(*pt_); cache_lock_.Release(); @@ -794,33 +801,35 @@ void CacheManager::PersistData() { bool is_predata_policy; for (; app_policy_iter != app_policy_iter_end; ++app_policy_iter) { - const std::string app_id = (*app_policy_iter).first; if (copy_pt.policy_table.app_policies_section.apps.end() != copy_pt.policy_table.app_policies_section.apps.find(app_id)) { - is_revoked = copy_pt.policy_table.app_policies_section.apps[app_id].is_null(); + is_revoked = + copy_pt.policy_table.app_policies_section.apps[app_id].is_null(); } - is_default_policy = copy_pt.policy_table.app_policies_section.apps.end() != - copy_pt.policy_table.app_policies_section.apps.find(app_id) && + is_default_policy = + copy_pt.policy_table.app_policies_section.apps.end() != + copy_pt.policy_table.app_policies_section.apps.find(app_id) && policy::kDefaultId == - copy_pt.policy_table.app_policies_section.apps[app_id].get_string(); + copy_pt.policy_table.app_policies_section.apps[app_id] + .get_string(); // TODO(AOleynik): Remove this field from DB - is_predata_policy = copy_pt.policy_table.app_policies_section.apps.end() != - copy_pt.policy_table.app_policies_section.apps.find(app_id) && + is_predata_policy = + copy_pt.policy_table.app_policies_section.apps.end() != + copy_pt.policy_table.app_policies_section.apps.find(app_id) && policy::kPreDataConsentId == - copy_pt.policy_table.app_policies_section.apps[app_id].get_string(); + copy_pt.policy_table.app_policies_section.apps[app_id] + .get_string(); - backup_->SaveApplicationCustomData(app_id, - is_revoked, - is_default_policy, - is_predata_policy); + backup_->SaveApplicationCustomData( + app_id, is_revoked, is_default_policy, is_predata_policy); is_revoked = false; } - // In case of extended policy the meta info should be backuped as well. + // In case of extended policy the meta info should be backuped as well. backup_->WriteDb(); } } @@ -832,22 +841,22 @@ void CacheManager::ResetCalculatedPermissions() { calculated_permissions_.clear(); } -void CacheManager::AddCalculatedPermissions( - const std::string& device_id, - const std::string& policy_app_id, - const Permissions& permissions) { - LOG4CXX_DEBUG(logger_, "AddCalculatedPermissions for device: " << device_id - << " and app: " << policy_app_id); +void CacheManager::AddCalculatedPermissions(const std::string& device_id, + const std::string& policy_app_id, + const Permissions& permissions) { + LOG4CXX_DEBUG(logger_, + "AddCalculatedPermissions for device: " + << device_id << " and app: " << policy_app_id); sync_primitives::AutoLock lock(calculated_permissions_lock_); calculated_permissions_[device_id][policy_app_id] = permissions; } -bool CacheManager::IsPermissionsCalculated( - const std::string& device_id, - const std::string& policy_app_id, - Permissions& permission) { - LOG4CXX_DEBUG(logger_, "IsPermissionsCalculated for device: " << device_id - << " and app: " << policy_app_id); +bool CacheManager::IsPermissionsCalculated(const std::string& device_id, + const std::string& policy_app_id, + Permissions& permission) { + LOG4CXX_DEBUG(logger_, + "IsPermissionsCalculated for device: " + << device_id << " and app: " << policy_app_id); sync_primitives::AutoLock lock(calculated_permissions_lock_); CalculatedPermissions::const_iterator it = calculated_permissions_.find(device_id); @@ -868,7 +877,7 @@ bool CacheManager::IsPermissionsCalculated( } bool policy::CacheManager::IsNumberService(const std::string& input, - std::string& output) const { + std::string& output) const { const char* input_value = input.c_str(); char* endptr; const int base = 10; @@ -882,16 +891,15 @@ bool policy::CacheManager::IsNumberService(const std::string& input, output = input; if (service_value <= 9) { - output.insert(0,"0x0", 3); + output.insert(0, "0x0", 3); } else { - output.insert(0,"0x", 2); + output.insert(0, "0x", 2); } return true; } -utils::SharedPtr<policy_table::Table> -CacheManager::GenerateSnapshot() { +utils::SharedPtr<policy_table::Table> CacheManager::GenerateSnapshot() { CACHE_MANAGER_CHECK(snapshot_); sync_primitives::AutoLock lock(cache_lock_); snapshot_ = new policy_table::Table(); @@ -903,7 +911,6 @@ CacheManager::GenerateSnapshot() { bool CacheManager::GetInitialAppData(const std::string& app_id, StringArray& nicknames, StringArray& app_hmi_types) { - LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); policy_table::ApplicationPolicies::const_iterator policy_iter = @@ -912,29 +919,31 @@ bool CacheManager::GetInitialAppData(const std::string& app_id, if (pt_->policy_table.app_policies_section.apps.end() != policy_iter) { const policy_table::ApplicationParams& app_params = (*policy_iter).second; - std::copy(app_params.nicknames->begin(), app_params.nicknames->end(), + std::copy(app_params.nicknames->begin(), + app_params.nicknames->end(), std::back_inserter(nicknames)); - std::transform(app_params.AppHMIType->begin(), app_params.AppHMIType->end(), - std::back_inserter(app_hmi_types), AppHMITypeToString()); + std::transform(app_params.AppHMIType->begin(), + app_params.AppHMIType->end(), + std::back_inserter(app_hmi_types), + AppHMITypeToString()); } return true; } bool CacheManager::GetFunctionalGroupings( policy_table::FunctionalGroupings& groups) { - LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); const policy_table::FunctionalGroupings& f_groupings = - pt_->policy_table.functional_groupings; + pt_->policy_table.functional_groupings; groups.insert(f_groupings.begin(), f_groupings.end()); return true; } int CacheManager::CountUnconsentedGroups(const std::string& policy_app_id, - const std::string& device_id) { + const std::string& device_id) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); LOG4CXX_DEBUG(logger_, "Application id: " << policy_app_id); @@ -942,9 +951,9 @@ int CacheManager::CountUnconsentedGroups(const std::string& policy_app_id, return result; } -bool CacheManager::SetMetaInfo(const std::string &ccpu_version, - const std::string &wers_country_code, - const std::string &language) { +bool CacheManager::SetMetaInfo(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language) { CACHE_MANAGER_CHECK(false); // We have to set preloaded flag as false in policy table on any response @@ -961,13 +970,13 @@ bool CacheManager::IsMetaInfoPresent() const { return result; } -bool CacheManager::SetSystemLanguage(const std::string &language) { +bool CacheManager::SetSystemLanguage(const std::string& language) { CACHE_MANAGER_CHECK(false); Backup(); return true; } -bool CacheManager::GetFunctionalGroupNames(FunctionalGroupNames &names) { +bool CacheManager::GetFunctionalGroupNames(FunctionalGroupNames& names) { LOG4CXX_AUTO_TRACE(logger_); CACHE_MANAGER_CHECK(false); rpc::policy_table_interface_base::FunctionalGroupings::iterator iter = @@ -978,9 +987,10 @@ bool CacheManager::GetFunctionalGroupNames(FunctionalGroupNames &names) { for (; iter != iter_end; ++iter) { const int32_t id = GenerateHash((*iter).first); std::pair<std::string, std::string> value = - std::make_pair( *(*iter).second.user_consent_prompt, (*iter).first); + std::make_pair(*(*iter).second.user_consent_prompt, (*iter).first); - names.insert(std::pair<uint32_t, std::pair<std::string, std::string> >(id, value)); + names.insert( + std::pair<uint32_t, std::pair<std::string, std::string> >(id, value)); } return true; } @@ -996,46 +1006,46 @@ void CacheManager::Increment(usage_statistics::GlobalCounterId type) { Backup(); } -void CacheManager::Increment(const std::string &app_id, +void CacheManager::Increment(const std::string& app_id, usage_statistics::AppCounterId type) { CACHE_MANAGER_CHECK_VOID(); - sync_primitives::AutoLock lock (cache_lock_); + sync_primitives::AutoLock lock(cache_lock_); switch (type) { case usage_statistics::USER_SELECTIONS: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_user_selections; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_user_selections; break; case usage_statistics::REJECTIONS_SYNC_OUT_OF_MEMORY: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_rejections_sync_out_of_memory; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_rejections_sync_out_of_memory; break; case usage_statistics::REJECTIONS_NICKNAME_MISMATCH: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_rejections_nickname_mismatch; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_rejections_nickname_mismatch; break; case usage_statistics::REJECTIONS_DUPLICATE_NAME: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_rejections_duplicate_name; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_rejections_duplicate_name; break; case usage_statistics::REJECTED_RPC_CALLS: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_rejected_rpc_calls; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_rejected_rpc_calls; break; case usage_statistics::RPCS_IN_HMI_NONE: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_rpcs_sent_in_hmi_none; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_rpcs_sent_in_hmi_none; break; case usage_statistics::REMOVALS_MISBEHAVED: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_removals_for_bad_behavior; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_removals_for_bad_behavior; break; case usage_statistics::RUN_ATTEMPTS_WHILE_REVOKED: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_run_attempts_while_revoked; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_run_attempts_while_revoked; break; case usage_statistics::COUNT_OF_TLS_ERRORS: - ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id]. - count_of_tls_errors; + ++(*pt_->policy_table.usage_and_error_counts->app_level)[app_id] + .count_of_tls_errors; break; default: LOG4CXX_WARN(logger_, "Type app counter is unknown"); @@ -1044,14 +1054,14 @@ void CacheManager::Increment(const std::string &app_id, Backup(); } -void CacheManager::Set(const std::string &app_id, +void CacheManager::Set(const std::string& app_id, usage_statistics::AppInfoId type, - const std::string &value) { + const std::string& value) { CACHE_MANAGER_CHECK_VOID(); Backup(); } -void CacheManager::Add(const std::string &app_id, +void CacheManager::Add(const std::string& app_id, usage_statistics::AppStopwatchId type, int seconds) { CACHE_MANAGER_CHECK_VOID(); @@ -1063,7 +1073,7 @@ long CacheManager::ConvertSecondsToMinute(int seconds) { return std::round(seconds / seconds_in_minute); } -bool CacheManager::SetDefaultPolicy(const std::string &app_id) { +bool CacheManager::SetDefaultPolicy(const std::string& app_id) { CACHE_MANAGER_CHECK(false); policy_table::ApplicationPolicies::const_iterator iter = pt_->policy_table.app_policies_section.apps.find(kDefaultId); @@ -1081,9 +1091,9 @@ bool CacheManager::IsDefaultPolicy(const std::string& app_id) { CACHE_MANAGER_CHECK(false); const bool result = pt_->policy_table.app_policies_section.apps.end() != - pt_->policy_table.app_policies_section.apps.find(app_id) && + pt_->policy_table.app_policies_section.apps.find(app_id) && policy::kDefaultId == - pt_->policy_table.app_policies_section.apps[app_id].get_string(); + pt_->policy_table.app_policies_section.apps[app_id].get_string(); return result; } @@ -1093,38 +1103,41 @@ bool CacheManager::SetIsDefault(const std::string& app_id) { policy_table::ApplicationPolicies::const_iterator iter = pt_->policy_table.app_policies_section.apps.find(app_id); if (pt_->policy_table.app_policies_section.apps.end() != iter) { - pt_->policy_table.app_policies_section.apps[app_id].set_to_string(kDefaultId); + pt_->policy_table.app_policies_section.apps[app_id].set_to_string( + kDefaultId); } return true; } -bool CacheManager::SetPredataPolicy(const std::string &app_id) { +bool CacheManager::SetPredataPolicy(const std::string& app_id) { CACHE_MANAGER_CHECK(false); policy_table::ApplicationPolicies::const_iterator iter = pt_->policy_table.app_policies_section.apps.find(kPreDataConsentId); if (pt_->policy_table.app_policies_section.apps.end() == iter) { - LOG4CXX_ERROR(logger_, "Could not set " << kPreDataConsentId - << " permissions for app " << app_id); + LOG4CXX_ERROR(logger_, + "Could not set " << kPreDataConsentId + << " permissions for app " << app_id); return false; } pt_->policy_table.app_policies_section.apps[app_id] = pt_->policy_table.app_policies_section.apps[kPreDataConsentId]; - pt_->policy_table.app_policies_section.apps[app_id].set_to_string(kPreDataConsentId); + pt_->policy_table.app_policies_section.apps[app_id].set_to_string( + kPreDataConsentId); Backup(); return true; } -bool CacheManager::IsPredataPolicy(const std::string &app_id) { +bool CacheManager::IsPredataPolicy(const std::string& app_id) { // TODO(AOleynik): Maybe change for comparison with pre_DataConsent // permissions or check string value from get_string() policy_table::ApplicationParams& pre_data_app = - pt_->policy_table.app_policies_section.apps[kPreDataConsentId]; + pt_->policy_table.app_policies_section.apps[kPreDataConsentId]; policy_table::ApplicationParams& specific_app = - pt_->policy_table.app_policies_section.apps[app_id]; + pt_->policy_table.app_policies_section.apps[app_id]; policy_table::Strings res; std::set_intersection(pre_data_app.groups.begin(), @@ -1140,14 +1153,14 @@ bool CacheManager::IsPredataPolicy(const std::string &app_id) { return !res.empty() && is_marked_as_predata; } -bool CacheManager::SetUnpairedDevice(const std::string &device_id, - bool unpaired) { - const bool result = - pt_->policy_table.device_data->end() != - pt_->policy_table.device_data->find(device_id); +bool CacheManager::SetUnpairedDevice(const std::string& device_id, + bool unpaired) { + const bool result = pt_->policy_table.device_data->end() != + pt_->policy_table.device_data->find(device_id); if (!result) { - LOG4CXX_DEBUG(logger_, "Couldn't set unpaired flag for device id " - << device_id << " , since it wasn't found."); + LOG4CXX_DEBUG(logger_, + "Couldn't set unpaired flag for device id " + << device_id << " , since it wasn't found."); return false; } @@ -1157,7 +1170,8 @@ bool CacheManager::SetUnpairedDevice(const std::string &device_id, LOG4CXX_DEBUG(logger_, "Unpaired flag was set for device id " << device_id); } else { is_unpaired_.erase(device_id); - LOG4CXX_DEBUG(logger_, "Unpaired flag was removed for device id " << device_id); + LOG4CXX_DEBUG(logger_, + "Unpaired flag was removed for device id " << device_id); } return result; } @@ -1204,17 +1218,17 @@ bool CacheManager::Init(const std::string& file_name, } break; case InitResult::SUCCESS: { LOG4CXX_INFO(logger_, "Policy Table was inited successfully"); - + result = LoadFromFile(file_name, *pt_); - + utils::SharedPtr<policy_table::Table> snapshot = GenerateSnapshot(); result &= snapshot->is_valid(); - LOG4CXX_DEBUG(logger_, "Check if snapshot is valid: " - << std::boolalpha << result); - if(!result) { + LOG4CXX_DEBUG(logger_, + "Check if snapshot is valid: " << std::boolalpha << result); + if (!result) { rpc::ValidationReport report("policy_table"); - snapshot->ReportErrors(&report); - return result; + snapshot->ReportErrors(&report); + return result; } backup_->UpdateDBVersion(); @@ -1229,8 +1243,7 @@ bool CacheManager::Init(const std::string& file_name, return result; } -void CacheManager::FillDeviceSpecificData() { -} +void CacheManager::FillDeviceSpecificData() {} bool CacheManager::LoadFromBackup() { sync_primitives::AutoLock lock(cache_lock_); @@ -1286,7 +1299,7 @@ bool CacheManager::ResetPT(const std::string& file_name) { return result; } -bool CacheManager::AppExists(const std::string &app_id) const { +bool CacheManager::AppExists(const std::string& app_id) const { CACHE_MANAGER_CHECK(false); if (kDeviceId == app_id) { return true; @@ -1297,13 +1310,12 @@ bool CacheManager::AppExists(const std::string &app_id) const { } int32_t CacheManager::GenerateHash(const std::string& str_to_hash) { - uint32_t hash = 5381U; std::string::const_iterator it = str_to_hash.begin(); std::string::const_iterator it_end = str_to_hash.end(); - for (;it != it_end; ++it) { - hash = ((hash << 5) + hash) + (*it); + for (; it != it_end; ++it) { + hash = ((hash << 5) + hash) + (*it); } // Reset sign bit in case it has been set. @@ -1320,13 +1332,13 @@ void CacheManager::GetAppRequestTypes( policy_table::ApplicationPolicies::iterator policy_iter = pt_->policy_table.app_policies_section.apps.find(policy_app_id); if (pt_->policy_table.app_policies_section.apps.end() == policy_iter) { - LOG4CXX_DEBUG(logger_, "Can't find request types for app_id " - << policy_app_id); + LOG4CXX_DEBUG(logger_, + "Can't find request types for app_id " << policy_app_id); return; } policy_table::RequestTypes::iterator it_request_type = policy_iter->second.RequestType->begin(); - for (;it_request_type != policy_iter->second.RequestType->end(); + for (; it_request_type != policy_iter->second.RequestType->end(); ++it_request_type) { request_types.push_back(EnumToJsonString(*it_request_type)); } @@ -1377,7 +1389,8 @@ void CacheManager::MergeMC(const policy_table::PolicyTable& new_pt, void CacheManager::MergeFG(const policy_table::PolicyTable& new_pt, policy_table::PolicyTable& pt) { LOG4CXX_AUTO_TRACE(logger_); - policy_table::FunctionalGroupings::const_iterator it = new_pt.functional_groupings.begin(); + policy_table::FunctionalGroupings::const_iterator it = + new_pt.functional_groupings.begin(); for (; it != new_pt.functional_groupings.end(); ++it) { LOG4CXX_DEBUG(logger_, "Merge functional group: " << it->first); @@ -1388,16 +1401,16 @@ void CacheManager::MergeFG(const policy_table::PolicyTable& new_pt, void CacheManager::MergeAP(const policy_table::PolicyTable& new_pt, policy_table::PolicyTable& pt) { LOG4CXX_AUTO_TRACE(logger_); - pt.app_policies_section.device = const_cast<policy_table::PolicyTable&> - (new_pt).app_policies_section.device; + pt.app_policies_section.device = const_cast<policy_table::PolicyTable&>( + new_pt).app_policies_section.device; pt.app_policies_section.apps[kDefaultId] = - const_cast<policy_table::PolicyTable&> - (new_pt).app_policies_section.apps[kDefaultId]; + const_cast<policy_table::PolicyTable&>(new_pt) + .app_policies_section.apps[kDefaultId]; pt.app_policies_section.apps[kPreDataConsentId] = - const_cast<policy_table::PolicyTable&> - (new_pt).app_policies_section.apps[kPreDataConsentId]; + const_cast<policy_table::PolicyTable&>(new_pt) + .app_policies_section.apps[kPreDataConsentId]; } void CacheManager::MergeCFM(const policy_table::PolicyTable& new_pt, @@ -1407,7 +1420,8 @@ void CacheManager::MergeCFM(const policy_table::PolicyTable& new_pt, if (!pt.consumer_friendly_messages.is_initialized()) { pt.consumer_friendly_messages = new_pt.consumer_friendly_messages; } else { - policy_table::Messages::const_iterator it = new_pt.consumer_friendly_messages->messages->begin(); + policy_table::Messages::const_iterator it = + new_pt.consumer_friendly_messages->messages->begin(); pt.consumer_friendly_messages->version = new_pt.consumer_friendly_messages->version; @@ -1418,7 +1432,6 @@ void CacheManager::MergeCFM(const policy_table::PolicyTable& new_pt, } (*pt.consumer_friendly_messages->messages)[it->first] = it->second; } - } } } @@ -1429,10 +1442,11 @@ const PolicySettings& CacheManager::get_settings() const { return *settings_; } -CacheManager::BackgroundBackuper::BackgroundBackuper(CacheManager* cache_manager) - : cache_manager_(cache_manager), - stop_flag_(false), - new_data_available_(false) { +CacheManager::BackgroundBackuper::BackgroundBackuper( + CacheManager* cache_manager) + : cache_manager_(cache_manager) + , stop_flag_(false) + , new_data_available_(false) { LOG4CXX_AUTO_TRACE(logger_); } diff --git a/src/components/policy/src/policy/src/policy_table.cc b/src/components/policy/src/policy/src/policy_table.cc index 700849c372..c5c6e3e132 100644 --- a/src/components/policy/src/policy/src/policy_table.cc +++ b/src/components/policy/src/policy/src/policy_table.cc @@ -32,7 +32,7 @@ #include "policy/policy_table.h" -# include "policy/sql_pt_representation.h" +#include "policy/sql_pt_representation.h" #include "utils/logger.h" @@ -40,13 +40,10 @@ namespace policy { CREATE_LOGGERPTR_GLOBAL(logger_, "Policy") -PolicyTable::PolicyTable() - : pt_data_(new SQLPTRepresentation()) { -} +PolicyTable::PolicyTable() : pt_data_(new SQLPTRepresentation()) {} PolicyTable::PolicyTable(utils::SharedPtr<PTRepresentation> pt_data) - : pt_data_(pt_data) { -} + : pt_data_(pt_data) {} PolicyTable::~PolicyTable() { LOG4CXX_INFO(logger_, "Destroying policy table."); diff --git a/src/components/policy/src/policy/src/sql_pt_ext_queries.cc b/src/components/policy/src/policy/src/sql_pt_ext_queries.cc index 13477054aa..3fde462a32 100644 --- a/src/components/policy/src/policy/src/sql_pt_ext_queries.cc +++ b/src/components/policy/src/policy/src/sql_pt_ext_queries.cc @@ -36,128 +36,136 @@ namespace policy { namespace sql_pt_ext { const std::string kSelectKeepContext = - "SELECT `keep_context` FROM `application` WHERE `id` = ? LIMIT 1"; + "SELECT `keep_context` FROM `application` WHERE `id` = ? LIMIT 1"; const std::string kSelectStealFocus = - "SELECT `steal_focus` FROM `application` WHERE `id` = ? LIMIT 1"; + "SELECT `steal_focus` FROM `application` WHERE `id` = ? LIMIT 1"; const std::string kSelectDefaultHmi = - "SELECT `default_hmi` FROM `application` WHERE `id` = ? LIMIT 1"; + "SELECT `default_hmi` FROM `application` WHERE `id` = ? LIMIT 1"; const std::string kResetDeviceConsents = "DELETE FROM `device_consent_group`"; const std::string kResetAppConsents = "DELETE FROM `consent_group`"; -const std::string kCountDeviceConsentGroup = "SELECT COUNT (`device_id`) " +const std::string kCountDeviceConsentGroup = + "SELECT COUNT (`device_id`) " "FROM `device_consent_group` WHERE `device_id` = ?"; -const std::string kCountDevice = "SELECT COUNT (`id`) " - "FROM `device` WHERE `id` = ?"; +const std::string kCountDevice = + "SELECT COUNT (`id`) " + "FROM `device` WHERE `id` = ?"; const std::string kSelectDeviceConsentedGroup = - "SELECT * FROM `device_consent_group` WHERE `device_id` = ?"; + "SELECT * FROM `device_consent_group` WHERE `device_id` = ?"; const std::string kUpdateDeviceConsentedGroup = - "UPDATE `device_consent_group` SET `is_consented` = ?, `input` = ? WHERE " - "(`device_id` = ? AND `functional_group_id` = ?)"; + "UPDATE `device_consent_group` SET `is_consented` = ?, `input` = ? WHERE " + "(`device_id` = ? AND `functional_group_id` = ?)"; const std::string kUpdateDevice = - "UPDATE `device` SET `hardware` = ?, `firmware_rev` = ?, `os` = ?, " - "`os_version` = ?, `carrier` = ?, `max_number_rfcom_ports` = ?, " - " `connection_type` = ? WHERE `id` = ? "; + "UPDATE `device` SET `hardware` = ?, `firmware_rev` = ?, `os` = ?, " + "`os_version` = ?, `carrier` = ?, `max_number_rfcom_ports` = ?, " + " `connection_type` = ? WHERE `id` = ? "; const std::string kInsertDeviceConsentedGroup = - "INSERT OR REPLACE INTO `device_consent_group` " - "(`device_id`, `functional_group_id`, `is_consented`, `input`, `time_stamp`) " - "VALUES (?,?,?,?,?)"; + "INSERT OR REPLACE INTO `device_consent_group` " + "(`device_id`, `functional_group_id`, `is_consented`, `input`, " + "`time_stamp`) " + "VALUES (?,?,?,?,?)"; const std::string kInsertDevice = - "INSERT OR IGNORE INTO `device` " - "(`id`, `hardware`, `firmware_rev`, `os`, `os_version`, `carrier`," + "INSERT OR IGNORE INTO `device` " + "(`id`, `hardware`, `firmware_rev`, `os`, `os_version`, `carrier`," "`max_number_rfcom_ports`, `connection_type`) " - "VALUES (?,?,?,?,?,?,?,?)"; + "VALUES (?,?,?,?,?,?,?,?)"; const std::string kSelectDeviceData = "SELECT * FROM `device`"; const std::string kSelectConsentGroup = - "SELECT * FROM `consent_group` WHERE `device_id` = ? "; + "SELECT * FROM `consent_group` WHERE `device_id` = ? "; const std::string kInsertPreconsentedGroups = - "INSERT INTO `preconsented_group` (`application_id`, `functional_group_id`)" - " SELECT ?, `id` FROM `functional_group` WHERE `name` = ? LIMIT 1"; + "INSERT INTO `preconsented_group` (`application_id`, `functional_group_id`)" + " SELECT ?, `id` FROM `functional_group` WHERE `name` = ? LIMIT 1"; const std::string kSelectPreconsentedGroups = - "SELECT `f`.`name` FROM `preconsented_group` AS `p`" - " LEFT JOIN `functional_group` AS `f` " - " ON (`f`.`id` = `p`.`functional_group_id`)" - " WHERE `p`.`application_id` = ?"; + "SELECT `f`.`name` FROM `preconsented_group` AS `p`" + " LEFT JOIN `functional_group` AS `f` " + " ON (`f`.`id` = `p`.`functional_group_id`)" + " WHERE `p`.`application_id` = ?"; -const std::string kDeletePreconsentedGroups = "DELETE FROM `preconsented_group`"; +const std::string kDeletePreconsentedGroups = + "DELETE FROM `preconsented_group`"; const std::string kSelectUsageAndErrorCount = - "SELECT `count_of_iap_buffer_full`, `count_sync_out_of_memory`, " - " `count_of_sync_reboots` " - "FROM `usage_and_error_count` LIMIT 1"; + "SELECT `count_of_iap_buffer_full`, `count_sync_out_of_memory`, " + " `count_of_sync_reboots` " + "FROM `usage_and_error_count` LIMIT 1"; const std::string kSelectAppLevels = - "SELECT `application_id`, `minutes_in_hmi_full`, `minutes_in_hmi_limited`, " - " `minutes_in_hmi_background`, `minutes_in_hmi_none`, " - " `count_of_user_selections`, " - " `count_of_rejections_sync_out_of_memory`, " - " `count_of_rejections_nickname_mismatch`, " - " `count_of_rejections_duplicate_name`, " - " `count_of_rejected_rpcs_calls`, " - " `count_of_rpcs_sent_in_hmi_none`, " - " `count_of_removals_for_bad_behavior`, " - " `count_of_run_attempts_while_revoked`, " - " `app_registration_language_gui`, " - " `app_registration_language_vui`, " - " `count_of_tls_errors` " - "FROM `app_level`"; - -const std::string kUpdateGlobalCounters = "UPDATE `usage_and_error_count` SET " + "SELECT `application_id`, `minutes_in_hmi_full`, `minutes_in_hmi_limited`, " + " `minutes_in_hmi_background`, `minutes_in_hmi_none`, " + " `count_of_user_selections`, " + " `count_of_rejections_sync_out_of_memory`, " + " `count_of_rejections_nickname_mismatch`, " + " `count_of_rejections_duplicate_name`, " + " `count_of_rejected_rpcs_calls`, " + " `count_of_rpcs_sent_in_hmi_none`, " + " `count_of_removals_for_bad_behavior`, " + " `count_of_run_attempts_while_revoked`, " + " `app_registration_language_gui`, " + " `app_registration_language_vui`, " + " `count_of_tls_errors` " + "FROM `app_level`"; + +const std::string kUpdateGlobalCounters = + "UPDATE `usage_and_error_count` SET " "`count_of_iap_buffer_full` = ?, " "`count_sync_out_of_memory` = ?, " "`count_of_sync_reboots` = ? "; const std::string kInsertDeviceData = - "INSERT OR IGNORE INTO `device` " - "(`id`, `hardware`, `firmware_rev`, `os`, `os_version`, `carrier`, " - "`max_number_rfcom_ports`,`connection_type`) VALUES (?,?,?,?,?,?,?,?) "; + "INSERT OR IGNORE INTO `device` " + "(`id`, `hardware`, `firmware_rev`, `os`, `os_version`, `carrier`, " + "`max_number_rfcom_ports`,`connection_type`) VALUES (?,?,?,?,?,?,?,?) "; const std::string kInsertConsentGroups = - "INSERT OR REPLACE INTO `consent_group` " - "(`device_id`, `application_id`, `functional_group_id`, `is_consented`, `input`, `time_stamp`) " - "VALUES (?,?,?,?,?,?)"; + "INSERT OR REPLACE INTO `consent_group` " + "(`device_id`, `application_id`, `functional_group_id`, `is_consented`, " + "`input`, `time_stamp`) " + "VALUES (?,?,?,?,?,?)"; -const std::string kDeleteAppGroupConsent = "DELETE FROM `consent_group` WHERE " - "`application_id` = ? AND `functional_group_id` = ? "; +const std::string kDeleteAppGroupConsent = + "DELETE FROM `consent_group` WHERE " + "`application_id` = ? AND `functional_group_id` = ? "; - const std::string kSelectGroupId = - "SELECT `id` FROM `functional_group` WHERE `name` = ? "; +const std::string kSelectGroupId = + "SELECT `id` FROM `functional_group` WHERE `name` = ? "; const std::string kCountUnconsentedGroups = - "SELECT COUNT(`a`.`functional_group_id`) FROM `app_group` AS `a` " - " WHERE `a`.`application_id` = ? AND NOT EXISTS " - " (SELECT NULL FROM `preconsented_group` AS `p` WHERE " - " (`p`.`functional_group_id` = `a`.`functional_group_id` AND " - " `p`.`application_id` = `a`.`application_id`)) " - " AND NOT EXISTS (SELECT NULL FROM `consent_group` AS `c` " - " WHERE (`c`.`application_id` = `a`.`application_id` " - " AND `c`.`functional_group_id` = `a`.`functional_group_id` " - " AND `c`.`device_id` = ?)) AND NOT EXISTS " - " (SELECT NULL FROM `app_group` AS `def` WHERE " - " (`def`.`application_id` = ? OR " - " `def`.`application_id` = ?) " - " AND `def`.`functional_group_id` = `a`.`functional_group_id`)" - " AND NOT EXISTS (SELECT NULL FROM `functional_group` AS `f` " - " WHERE (`a`.`functional_group_id` = `f`.`id`" - " AND`f`.`user_consent_prompt` IS NULL))"; + "SELECT COUNT(`a`.`functional_group_id`) FROM `app_group` AS `a` " + " WHERE `a`.`application_id` = ? AND NOT EXISTS " + " (SELECT NULL FROM `preconsented_group` AS `p` WHERE " + " (`p`.`functional_group_id` = `a`.`functional_group_id` AND " + " `p`.`application_id` = `a`.`application_id`)) " + " AND NOT EXISTS (SELECT NULL FROM `consent_group` AS `c` " + " WHERE (`c`.`application_id` = `a`.`application_id` " + " AND `c`.`functional_group_id` = `a`.`functional_group_id` " + " AND `c`.`device_id` = ?)) AND NOT EXISTS " + " (SELECT NULL FROM `app_group` AS `def` WHERE " + " (`def`.`application_id` = ? OR " + " `def`.`application_id` = ?) " + " AND `def`.`functional_group_id` = `a`.`functional_group_id`)" + " AND NOT EXISTS (SELECT NULL FROM `functional_group` AS `f` " + " WHERE (`a`.`functional_group_id` = `f`.`id`" + " AND`f`.`user_consent_prompt` IS NULL))"; const std::string kSelectModuleMeta = "SELECT* FROM `module_meta`"; -const std::string kUpdateMetaParams = "UPDATE `module_meta` SET " - "`ccpu_version` = ?, `wers_country_code` = ?, `language` = ? "; +const std::string kUpdateMetaParams = + "UPDATE `module_meta` SET " + "`ccpu_version` = ?, `wers_country_code` = ?, `language` = ? "; const std::string kUpdateModuleMetaVinParam = "UPDATE `module_meta` SET `vin` = ? "; @@ -168,81 +176,93 @@ const std::string kSaveModuleMeta = "`pt_exchanged_x_days_after_epoch` = ?," "`ignition_cycles_since_last_exchange` = ?, `vin` = ?"; -const std::string kSelectMetaParams = "SELECT `ccpu_version`, " - "`wers_country_code`, `language` from `module_meta`"; +const std::string kSelectMetaParams = + "SELECT `ccpu_version`, " + "`wers_country_code`, `language` from `module_meta`"; -const std::string kUpdateMetaLanguage = "UPDATE `module_meta` SET `language` = ? "; +const std::string kUpdateMetaLanguage = + "UPDATE `module_meta` SET `language` = ? "; const std::string kCountAppLevel = - "SELECT COUNT(`application_id`) FROM `app_level`" - " WHERE `application_id` = ? "; + "SELECT COUNT(`application_id`) FROM `app_level`" + " WHERE `application_id` = ? "; const std::string kUpdateGroupPermissions = - "UPDATE `consent_group` " - "SET `is_consented` = ?, `input` = ? " - "WHERE(`application_id` = ? AND `functional_group_id` = ? AND `device_id` = ?) "; + "UPDATE `consent_group` " + "SET `is_consented` = ?, `input` = ? " + "WHERE(`application_id` = ? AND `functional_group_id` = ? AND `device_id` " + "= ?) "; const std::string kInsertApplication = - "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, `steal_focus`, " - " `default_hmi`, `priority_value`, `is_revoked`, `memory_kb`, " - " `heart_beat_timeout_ms`, `certificate`) VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?) "; + "INSERT OR IGNORE INTO `application`(`id`, `keep_context`, `steal_focus`, " + " `default_hmi`, `priority_value`, `is_revoked`, `memory_kb`, " + " `heart_beat_timeout_ms`, `certificate`) VALUES( ?, ?, ?, ?, ?, ?, ?, ?, " + "?) "; const std::string kCollectFriendlyMsg = "SELECT * FROM `message`"; const std::string kSelectFriendlyMsg = - "SELECT `tts`, `label`, `line1`, `line2`, `textBody` FROM `message` " - "WHERE `message_type_name` = ? AND `language_code` = ? LIMIT 1"; + "SELECT `tts`, `label`, `line1`, `line2`, `textBody` FROM `message` " + "WHERE `message_type_name` = ? AND `language_code` = ? LIMIT 1"; -const std::string kSelectAppGroupsId = "SELECT `functional_group_id` " - "FROM `app_group` WHERE `application_id` = ? "; +const std::string kSelectAppGroupsId = + "SELECT `functional_group_id` " + "FROM `app_group` WHERE `application_id` = ? "; const std::string kSelectConsentedGroupsId = - "SELECT `functional_group_id`, `is_consented` " - "FROM `consent_group` WHERE(`application_id` = ? AND `device_id` = ?) "; + "SELECT `functional_group_id`, `is_consented` " + "FROM `consent_group` WHERE(`application_id` = ? AND `device_id` = ?) "; -const std::string kCountAppConsents = "SELECT COUNT(*) from `consent_group`" - "WHERE(`device_id` = ? AND `application_id` = ? AND " - "`functional_group_id` = ?) "; +const std::string kCountAppConsents = + "SELECT COUNT(*) from `consent_group`" + "WHERE(`device_id` = ? AND `application_id` = ? AND " + "`functional_group_id` = ?) "; -const std::string kSelectPreconsentedGroupsId = "SELECT `functional_group_id` " +const std::string kSelectPreconsentedGroupsId = + "SELECT `functional_group_id` " "FROM `preconsented_group` WHERE `application_id` = ? "; const std::string kSelectAppPolicies = - "SELECT `id`, `priority_value`, `default_hmi`, `keep_context`, `steal_focus`, " - " `memory_kb`, `heart_beat_timeout_ms`, `certificate` FROM `application`"; + "SELECT `id`, `priority_value`, `default_hmi`, `keep_context`, " + "`steal_focus`, " + " `memory_kb`, `heart_beat_timeout_ms`, `certificate` FROM `application`"; -const std::string kSelectFunctionalGroupNames = "SELECT `id`, `user_consent_prompt`, `name`" +const std::string kSelectFunctionalGroupNames = + "SELECT `id`, `user_consent_prompt`, `name`" " FROM `functional_group`"; -const std::string kDeleteDeviceConsent = "DELETE FROM `device_consent_group` " +const std::string kDeleteDeviceConsent = + "DELETE FROM `device_consent_group` " "WHERE `device_id` = ? "; -const std::string kDeleteAppConsent = "DELETE FROM `consent_group` " - "WHERE `device_id` = ? "; +const std::string kDeleteAppConsent = + "DELETE FROM `consent_group` " + "WHERE `device_id` = ? "; const std::string kSelectApplicationIsPreData = - "SELECT `is_predata` FROM `application` WHERE `id` = ? "; + "SELECT `is_predata` FROM `application` WHERE `id` = ? "; const std::string kUpdateIsPredata = - "UPDATE `application` SET `is_predata` = ? WHERE `id` = ? "; + "UPDATE `application` SET `is_predata` = ? WHERE `id` = ? "; const std::string kHasAppPreloadedGroups = - "SELECT COUNT(`a1`.`functional_group_id`) FROM `app_group` " - " AS `a1` JOIN `app_group` AS `a2` " - " ON `a1`.`functional_group_id` = `a2`.`functional_group_id` " - " WHERE `a1`.`application_id` = ? AND `a2`.`application_id` = ? "; + "SELECT COUNT(`a1`.`functional_group_id`) FROM `app_group` " + " AS `a1` JOIN `app_group` AS `a2` " + " ON `a1`.`functional_group_id` = `a2`.`functional_group_id` " + " WHERE `a1`.`application_id` = ? AND `a2`.`application_id` = ? "; const std::string kUpdateUnpairedDevice = - "UPDATE `device` SET `unpaired` = ? WHERE `id` = ? "; + "UPDATE `device` SET `unpaired` = ? WHERE `id` = ? "; const std::string kSelectUnpairedDevices = - "SELECT `id` FROM `device` WHERE `unpaired` = 1"; + "SELECT `id` FROM `device` WHERE `unpaired` = 1"; -const std::string kHasMsgLanguageCode = "SELECT COUNT (`id`) FROM message " - "WHERE `message_type_name` = ? AND `language_code` = ? "; +const std::string kHasMsgLanguageCode = + "SELECT COUNT (`id`) FROM message " + "WHERE `message_type_name` = ? AND `language_code` = ? "; const std::string kDeletePreconsentedGroupsByApplicationId = - "DELETE FROM `preconsented_group` WHERE `application_id` = ?"; + "DELETE FROM `preconsented_group` WHERE `application_id` = ?"; } // namespace sql_pt_ext } // namespace policy diff --git a/src/components/policy/src/policy/src/sql_pt_ext_representation.cc b/src/components/policy/src/policy/src/sql_pt_ext_representation.cc index 1fa2e75012..c64efaaede 100644 --- a/src/components/policy/src/policy/src/sql_pt_ext_representation.cc +++ b/src/components/policy/src/policy/src/sql_pt_ext_representation.cc @@ -83,8 +83,9 @@ bool SQLPTExtRepresentation::ResetAppConsents() { } bool SQLPTExtRepresentation::GetUserPermissionsForDevice( - const std::string& device_id, StringArray* consented_groups, - StringArray* disallowed_groups) { + const std::string& device_id, + StringArray* consented_groups, + StringArray* disallowed_groups) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectDeviceConsentedGroup)) { @@ -110,8 +111,9 @@ bool SQLPTExtRepresentation::GetUserPermissionsForDevice( } bool SQLPTExtRepresentation::GetPermissionsForApp( - const std::string& device_id, const std::string& policy_app_id, - FunctionalIdType* group_types) { + const std::string& device_id, + const std::string& policy_app_id, + FunctionalIdType* group_types) { LOG4CXX_AUTO_TRACE(logger_); if (!group_types) { LOG4CXX_WARN(logger_, "Input parameter for group types is null."); @@ -130,8 +132,8 @@ bool SQLPTExtRepresentation::GetPermissionsForApp( // Get consented (allowed/disallowed) groups FunctionalGroupIDs allowed_groups; FunctionalGroupIDs disallowed_groups; - if (!GetConsentedGroups(policy_app_id, device_id, - allowed_groups, disallowed_groups)) { + if (!GetConsentedGroups( + policy_app_id, device_id, allowed_groups, disallowed_groups)) { return false; } // Get all default groups @@ -164,7 +166,7 @@ bool SQLPTExtRepresentation::GetPermissionsForApp( } bool SQLPTExtRepresentation::GetDeviceGroupsFromPolicies( - policy_table::Strings* groups, policy_table::Strings* preconsented_groups) { + policy_table::Strings* groups, policy_table::Strings* preconsented_groups) { LOG4CXX_AUTO_TRACE(logger_); if (groups) { GatherAppGroup(kDeviceId, groups); @@ -176,13 +178,13 @@ bool SQLPTExtRepresentation::GetDeviceGroupsFromPolicies( } bool SQLPTExtRepresentation::SetDeviceData(const std::string& device_id, - const std::string& hardware, - const std::string& firmware, - const std::string& os, - const std::string& os_version, - const std::string& carrier, - const uint32_t number_of_ports, - const std::string& connection_type) { + const std::string& hardware, + const std::string& firmware, + const std::string& os, + const std::string& os_version, + const std::string& carrier, + const uint32_t number_of_ports, + const std::string& connection_type) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery count_query(db()); if (!count_query.Prepare(sql_pt_ext::kCountDevice)) { @@ -251,8 +253,9 @@ bool SQLPTExtRepresentation::SetDeviceData(const std::string& device_id, } bool SQLPTExtRepresentation::SetUserPermissionsForDevice( - const std::string& device_id, const StringArray& consented_groups, - const StringArray& disallowed_groups) { + const std::string& device_id, + const StringArray& consented_groups, + const StringArray& disallowed_groups) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery count_query(db()); if (!count_query.Prepare(sql_pt_ext::kCountDeviceConsentGroup)) { @@ -274,13 +277,15 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( // Update old values if (update) { if (!query.Prepare(sql_pt_ext::kUpdateDeviceConsentedGroup)) { - LOG4CXX_WARN(logger_, "Incorrect statement for updating consented groups on device"); + LOG4CXX_WARN( + logger_, + "Incorrect statement for updating consented groups on device"); return false; } StringArray::const_iterator it_consented_groups = consented_groups.begin(); StringArray::const_iterator it_consented_groups_end = - consented_groups.end(); + consented_groups.end(); for (; it_consented_groups != it_consented_groups_end; ++it_consented_groups) { query.Bind(0, true); @@ -289,15 +294,16 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( query.Bind(3, *it_consented_groups); // TODO(AOleynik): Get this info from external data if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Failed update of device allowed consented groups."); + LOG4CXX_WARN(logger_, + "Failed update of device allowed consented groups."); return false; } } StringArray::const_iterator it_disallowed_groups = - disallowed_groups.begin(); + disallowed_groups.begin(); StringArray::const_iterator it_disallowed_groups_end = - disallowed_groups.end(); + disallowed_groups.end(); for (; it_disallowed_groups != it_disallowed_groups_end; ++it_disallowed_groups) { query.Bind(0, false); @@ -305,7 +311,8 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( query.Bind(2, device_id); query.Bind(3, *it_disallowed_groups); if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Failed update of device disallowed consented groups."); + LOG4CXX_WARN(logger_, + "Failed update of device disallowed consented groups."); return false; } } @@ -315,7 +322,8 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( // Insert new values if (!query.Prepare(sql_pt_ext::kInsertDeviceConsentedGroup)) { - LOG4CXX_WARN(logger_, "Incorrect statement of inserting to device consented groups"); + LOG4CXX_WARN(logger_, + "Incorrect statement of inserting to device consented groups"); return false; } @@ -329,14 +337,15 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( // TODO(AOleynik): Get this info from external data query.Bind(3, std::string("GUI")); if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Failed insert to device allowed consented groups."); + LOG4CXX_WARN(logger_, + "Failed insert to device allowed consented groups."); return false; } } StringArray::const_iterator it_disallowed_groups = disallowed_groups.begin(); StringArray::const_iterator it_disallowed_groups_end = - disallowed_groups.end(); + disallowed_groups.end(); for (; it_disallowed_groups != it_disallowed_groups_end; ++it_disallowed_groups) { query.Bind(0, device_id); @@ -344,7 +353,8 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( query.Bind(2, false); query.Bind(3); if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Failed insert to device disallowed consented groups."); + LOG4CXX_WARN(logger_, + "Failed insert to device disallowed consented groups."); return false; } } @@ -353,8 +363,7 @@ bool SQLPTExtRepresentation::SetUserPermissionsForDevice( } bool SQLPTExtRepresentation::ReactOnUserDevConsentForApp( - const std::string& app_id, - bool is_device_allowed) { + const std::string& app_id, bool is_device_allowed) { bool result = true; if (is_device_allowed) { // If app has pre_DataConsented groups it should be 'promoted' to default @@ -363,13 +372,15 @@ bool SQLPTExtRepresentation::ReactOnUserDevConsentForApp( if (IsPredataPolicy(app_id)) { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kHasAppPreloadedGroups)) { - LOG4CXX_WARN(logger_, "Incorrect statement for has app preloaded groups"); + LOG4CXX_WARN(logger_, + "Incorrect statement for has app preloaded groups"); return false; } query.Bind(0, app_id); query.Bind(1, kPreDataConsentId); if (!query.Exec()) { - LOG4CXX_WARN(logger_, "Incorrect select for app has predataconsted groups"); + LOG4CXX_WARN(logger_, + "Incorrect select for app has predataconsted groups"); return false; } if (query.GetInteger(0) > 0) { @@ -392,14 +403,14 @@ bool SQLPTExtRepresentation::ReactOnUserDevConsentForApp( } bool SQLPTExtRepresentation::SetUserPermissionsForApp( - const PermissionConsent& permissions) { + const PermissionConsent& permissions) { LOG4CXX_AUTO_TRACE(logger_); // TODO(AOleynik): Handle situation, when no application was specified, i.e. // general permissions were set - std::vector<FunctionalGroupPermission>::const_iterator it = permissions - .group_permissions.begin(); - std::vector<FunctionalGroupPermission>::const_iterator it_end = permissions - .group_permissions.end(); + std::vector<FunctionalGroupPermission>::const_iterator it = + permissions.group_permissions.begin(); + std::vector<FunctionalGroupPermission>::const_iterator it_end = + permissions.group_permissions.end(); utils::dbms::SQLQuery query(db()); for (; it != it_end; ++it) { @@ -437,7 +448,8 @@ bool SQLPTExtRepresentation::SetUserPermissionsForApp( query.Bind(4, permissions.device_id); if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Incorrect update on user defined permissions " + LOG4CXX_WARN(logger_, + "Incorrect update on user defined permissions " "for app groups."); return false; } @@ -462,7 +474,8 @@ bool SQLPTExtRepresentation::SetUserPermissionsForApp( query.Bind(4, permissions.consent_source); if (!query.Exec() || !query.Reset()) { - LOG4CXX_WARN(logger_, "Incorrect insert to user defined permissions " + LOG4CXX_WARN(logger_, + "Incorrect insert to user defined permissions " "for app groups."); return false; } @@ -510,7 +523,8 @@ std::vector<UserFriendlyMessage> SQLPTExtRepresentation::GetUserFriendlyMsg( result.push_back(msg); if (!query.Reset()) { - LOG4CXX_WARN(logger_, "Failed reset statement for selecting friendly " + LOG4CXX_WARN(logger_, + "Failed reset statement for selecting friendly " "messages."); return result; } @@ -535,7 +549,6 @@ bool SQLPTExtRepresentation::GatherConsumerFriendlyMessages( if (result) { while (query.Next()) { - UserFriendlyMessage msg; msg.tts = query.GetString(1); @@ -547,11 +560,16 @@ bool SQLPTExtRepresentation::GatherConsumerFriendlyMessages( std::string language = query.GetString(6); - *(*messages->messages)[msg.message_code].languages[language].tts = msg.tts; - *(*messages->messages)[msg.message_code].languages[language].label = msg.label; - *(*messages->messages)[msg.message_code].languages[language].line1 = msg.line1; - *(*messages->messages)[msg.message_code].languages[language].line2 = msg.line2; - *(*messages->messages)[msg.message_code].languages[language].textBody = msg.text_body; + *(*messages->messages)[msg.message_code].languages[language].tts = + msg.tts; + *(*messages->messages)[msg.message_code].languages[language].label = + msg.label; + *(*messages->messages)[msg.message_code].languages[language].line1 = + msg.line1; + *(*messages->messages)[msg.message_code].languages[language].line2 = + msg.line2; + *(*messages->messages)[msg.message_code].languages[language].textBody = + msg.text_body; } } else { LOG4CXX_WARN(logger_, "Incorrect statement for select friendly messages."); @@ -560,8 +578,8 @@ bool SQLPTExtRepresentation::GatherConsumerFriendlyMessages( } bool SQLPTExtRepresentation::SetMetaInfo(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language) { + const std::string& wers_country_code, + const std::string& language) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kUpdateMetaParams)) { @@ -711,15 +729,15 @@ bool SQLPTExtRepresentation::SaveSpecificAppPolicy( app_query.Bind(1, app.second.keep_context); app_query.Bind(2, app.second.steal_focus); app_query.Bind( - 3, std::string(policy_table::EnumToJsonString(app.second.default_hmi))); - app_query.Bind( - 4, std::string(policy_table::EnumToJsonString(app.second.priority))); + 3, std::string(policy_table::EnumToJsonString(app.second.default_hmi))); app_query.Bind( - 5, app.second.is_null()); + 4, std::string(policy_table::EnumToJsonString(app.second.priority))); + app_query.Bind(5, app.second.is_null()); app_query.Bind(6, *app.second.memory_kb); app_query.Bind(7, static_cast<int64_t>(*app.second.heart_beat_timeout_ms)); - app.second.certificate.is_initialized() ? - app_query.Bind(8, *app.second.certificate) : app_query.Bind(8, std::string()); + app.second.certificate.is_initialized() + ? app_query.Bind(8, *app.second.certificate) + : app_query.Bind(8, std::string()); if (!app_query.Exec() || !app_query.Reset()) { LOG4CXX_WARN(logger_, "Incorrect insert into application."); @@ -749,16 +767,17 @@ bool policy::SQLPTExtRepresentation::SaveDevicePolicy( const policy_table::DevicePolicy& device) { dbms::SQLQuery app_query(db()); if (!app_query.Prepare(sql_pt_ext::kInsertApplication)) { - LOG4CXX_WARN(logger_, "Incorrect insert statement into application (device)."); + LOG4CXX_WARN(logger_, + "Incorrect insert statement into application (device)."); return false; } app_query.Bind(0, kDeviceId); app_query.Bind(1, device.keep_context); app_query.Bind(2, device.steal_focus); app_query.Bind( - 3, std::string(policy_table::EnumToJsonString(device.default_hmi))); - app_query.Bind( - 4, std::string(policy_table::EnumToJsonString(device.priority))); + 3, std::string(policy_table::EnumToJsonString(device.default_hmi))); + app_query.Bind(4, + std::string(policy_table::EnumToJsonString(device.priority))); app_query.Bind(5, false); app_query.Bind(6, 0); app_query.Bind(7, 0); @@ -851,7 +870,7 @@ bool SQLPTExtRepresentation::GatherApplicationPoliciesSection( } void SQLPTExtRepresentation::GatherPreconsentedGroup( - const std::string& app_id, policy_table::Strings* groups) const { + const std::string& app_id, policy_table::Strings* groups) const { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectPreconsentedGroups)) { LOG4CXX_WARN(logger_, "Incorrect select from preconsented group"); @@ -865,7 +884,7 @@ void SQLPTExtRepresentation::GatherPreconsentedGroup( } bool SQLPTExtRepresentation::GatherUsageAndErrorCounts( - policy_table::UsageAndErrorCounts* counts) const { + policy_table::UsageAndErrorCounts* counts) const { LOG4CXX_INFO(logger_, "Gather Usage and Error Counts."); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectUsageAndErrorCount) || !query.Exec()) { @@ -881,11 +900,12 @@ bool SQLPTExtRepresentation::GatherUsageAndErrorCounts( } bool SQLPTExtRepresentation::GatherAppLevels( - policy_table::AppLevels* apps) const { + policy_table::AppLevels* apps) const { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectAppLevels)) { - LOG4CXX_INFO(logger_, "Failed select from app_level. SQLError = " - << query.LastError().text()); + LOG4CXX_INFO(logger_, + "Failed select from app_level. SQLError = " + << query.LastError().text()); return false; } while (query.Next()) { @@ -913,7 +933,7 @@ bool SQLPTExtRepresentation::GatherAppLevels( } void SQLPTExtRepresentation::GatherDeviceData( - policy_table::DeviceData* data) const { + policy_table::DeviceData* data) const { LOG4CXX_INFO(logger_, "Gather device data."); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectDeviceData)) { @@ -937,8 +957,8 @@ void SQLPTExtRepresentation::GatherDeviceData( } void SQLPTExtRepresentation::GatherConsentGroup( - const std::string& device_id, - policy_table::UserConsentRecords* records) const { + const std::string& device_id, + policy_table::UserConsentRecords* records) const { LOG4CXX_INFO(logger_, "Gather consent records."); utils::dbms::SQLQuery query(db()); // Fill data for device @@ -952,9 +972,11 @@ void SQLPTExtRepresentation::GatherConsentGroup( // Fill device_data -> user_consent_records -> "device" while (query.Next()) { - policy_table::ConsentRecords* device_consent_records = &(*records)[kDeviceId]; + policy_table::ConsentRecords* device_consent_records = + &(*records)[kDeviceId]; // TODO(IKozyrenko): Check logic if optional container is missing - policy_table::ConsentGroups& consent_groups = *device_consent_records->consent_groups; + policy_table::ConsentGroups& consent_groups = + *device_consent_records->consent_groups; consent_groups[query.GetString(1)] = query.GetBoolean(2); policy_table::Input input; policy_table::EnumFromJsonString(query.GetString(3), &input); @@ -977,10 +999,11 @@ void SQLPTExtRepresentation::GatherConsentGroup( // Fill device_data -> user_consent_records -> <app_id> while (query.Next()) { - policy_table::ConsentRecords* app_consent_records = &(*records)[query - .GetString(1)]; + policy_table::ConsentRecords* app_consent_records = + &(*records)[query.GetString(1)]; // TODO(IKozyrenko): Check logic if optional container is missing - policy_table::ConsentGroups& consent_groups = *app_consent_records->consent_groups; + policy_table::ConsentGroups& consent_groups = + *app_consent_records->consent_groups; consent_groups[query.GetString(2)] = query.GetBoolean(3); policy_table::Input input; @@ -991,7 +1014,7 @@ void SQLPTExtRepresentation::GatherConsentGroup( } bool SQLPTExtRepresentation::SaveDeviceData( -const policy_table::DeviceData& devices) { + const policy_table::DeviceData& devices) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery drop_device_query(db()); const std::string drop_device = "DELETE FROM `device`"; @@ -1047,8 +1070,8 @@ const policy_table::DeviceData& devices) { } bool SQLPTExtRepresentation::SaveConsentGroup( - const std::string& device_id, - const policy_table::UserConsentRecords& records) { + const std::string& device_id, + const policy_table::UserConsentRecords& records) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); @@ -1056,10 +1079,10 @@ bool SQLPTExtRepresentation::SaveConsentGroup( policy_table::UserConsentRecords::const_iterator it_end = records.end(); for (; it != it_end; ++it) { // TODO(IKozyrenko): Check logic if optional container is missing - policy_table::ConsentGroups::const_iterator it_groups = it->second - .consent_groups->begin(); - policy_table::ConsentGroups::const_iterator it_groups_end = it->second - .consent_groups->end(); + policy_table::ConsentGroups::const_iterator it_groups = + it->second.consent_groups->begin(); + policy_table::ConsentGroups::const_iterator it_groups_end = + it->second.consent_groups->end(); for (; it_groups != it_groups_end; ++it_groups) { if (kDeviceId == it->first) { if (!query.Prepare(sql_pt_ext::kInsertDeviceConsentedGroup)) { @@ -1071,13 +1094,15 @@ bool SQLPTExtRepresentation::SaveConsentGroup( query.Bind(1, it_groups->first); query.Bind(2, it_groups->second); query.Bind( - 3, - std::string(policy_table::EnumToJsonString(*(it->second.input)))); + 3, + std::string(policy_table::EnumToJsonString(*(it->second.input)))); query.Bind(4, std::string(*(it->second.time_stamp))); - LOG4CXX_INFO(logger_, "Device:" << - "time stamp " << std::string(*(it->second.time_stamp)) - << " group " << it_groups->first - << " consent " << it_groups->second); + LOG4CXX_INFO(logger_, + "Device:" + << "time stamp " + << std::string(*(it->second.time_stamp)) << " group " + << it_groups->first << " consent " + << it_groups->second); } else { if (!query.Prepare(sql_pt_ext::kInsertConsentGroups)) { LOG4CXX_WARN(logger_, @@ -1089,13 +1114,15 @@ bool SQLPTExtRepresentation::SaveConsentGroup( query.Bind(2, it_groups->first); query.Bind(3, it_groups->second); query.Bind( - 4, - std::string(policy_table::EnumToJsonString(*(it->second.input)))); + 4, + std::string(policy_table::EnumToJsonString(*(it->second.input)))); query.Bind(5, std::string(*(it->second.time_stamp))); - LOG4CXX_INFO(logger_, "Device:" << - "time stamp " << std::string(*(it->second.time_stamp)) - << " group " << it_groups->first - << " consent " << it_groups->second); + LOG4CXX_INFO(logger_, + "Device:" + << "time stamp " + << std::string(*(it->second.time_stamp)) << " group " + << it_groups->first << " consent " + << it_groups->second); } if (!query.Exec() || !query.Reset()) { @@ -1109,12 +1136,11 @@ bool SQLPTExtRepresentation::SaveConsentGroup( } bool SQLPTExtRepresentation::SavePreconsentedGroup( - const std::string& app_id, const policy_table::Strings& groups) { + const std::string& app_id, const policy_table::Strings& groups) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kInsertPreconsentedGroups)) { - LOG4CXX_WARN(logger_, - "Incorrect insert statement for preconsented groups"); + LOG4CXX_WARN(logger_, "Incorrect insert statement for preconsented groups"); return false; } @@ -1132,7 +1158,7 @@ bool SQLPTExtRepresentation::SavePreconsentedGroup( } void SQLPTExtRepresentation::GatherModuleMeta( - policy_table::ModuleMeta* meta) const { + policy_table::ModuleMeta* meta) const { LOG4CXX_INFO(logger_, "Gather Module Meta Info"); utils::dbms::SQLQuery query(db()); if (query.Prepare(sql_pt_ext::kSelectModuleMeta) && query.Next()) { @@ -1148,8 +1174,8 @@ void SQLPTExtRepresentation::GatherModuleMeta( void SQLPTExtRepresentation::Increment(const std::string& type) const { utils::dbms::SQLQuery query(db()); - std::string update_counter = "UPDATE `usage_and_error_count` SET `" + type - + "` = `" + type + "` + 1"; + std::string update_counter = + "UPDATE `usage_and_error_count` SET `" + type + "` = `" + type + "` + 1"; if (!query.Exec(update_counter)) { LOG4CXX_INFO(logger_, "Failed updating global counter"); } @@ -1170,7 +1196,7 @@ bool SQLPTExtRepresentation::IsExistAppLevel(const std::string& app_id) const { } bool SQLPTExtRepresentation::GetAllAppGroups(const std::string& policy_app_id, - FunctionalGroupIDs& all_groups) { + FunctionalGroupIDs& all_groups) { LOG4CXX_INFO(logger_, "GetAllAppGroups for '" << policy_app_id << "'"); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectAppGroupsId)) { @@ -1188,9 +1214,10 @@ bool SQLPTExtRepresentation::GetAllAppGroups(const std::string& policy_app_id, } bool SQLPTExtRepresentation::GetConsentedGroups( - const std::string& policy_app_id, const std::string& device_id, - FunctionalGroupIDs& allowed_groups, FunctionalGroupIDs& disallowed_groups) { - + const std::string& policy_app_id, + const std::string& device_id, + FunctionalGroupIDs& allowed_groups, + FunctionalGroupIDs& disallowed_groups) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectConsentedGroupsId)) { @@ -1213,7 +1240,7 @@ bool SQLPTExtRepresentation::GetConsentedGroups( } bool SQLPTExtRepresentation::GetPreconsentedGroups( - const std::string& policy_app_id, FunctionalGroupIDs& preconsented_groups) { + const std::string& policy_app_id, FunctionalGroupIDs& preconsented_groups) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectPreconsentedGroupsId)) { @@ -1232,7 +1259,7 @@ bool SQLPTExtRepresentation::GetPreconsentedGroups( } bool SQLPTExtRepresentation::GetFunctionalGroupNames( - FunctionalGroupNames& names) { + FunctionalGroupNames& names) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectFunctionalGroupNames)) { @@ -1245,20 +1272,21 @@ bool SQLPTExtRepresentation::GetFunctionalGroupNames( // Some of functional grous doesn't have filled user_consent_prompt if (query.IsNull(1)) { names[query.GetInteger(0)] = - std::make_pair<std::string, std::string>("", query.GetString(2)); + std::make_pair<std::string, std::string>("", query.GetString(2)); } else { - names[query.GetInteger(0)] = - std::make_pair<std::string, std::string>(query.GetString(1), query.GetString(2)); + names[query.GetInteger(0)] = std::make_pair<std::string, std::string>( + query.GetString(1), query.GetString(2)); } - } return true; } void SQLPTExtRepresentation::FillFunctionalGroupPermissions( - FunctionalGroupIDs& ids, FunctionalGroupNames& names, GroupConsent state, - std::vector<FunctionalGroupPermission>& permissions) { + FunctionalGroupIDs& ids, + FunctionalGroupNames& names, + GroupConsent state, + std::vector<FunctionalGroupPermission>& permissions) { FunctionalGroupIDs::const_iterator it = ids.begin(); FunctionalGroupIDs::const_iterator it_end = ids.end(); for (; it != it_end; ++it) { @@ -1277,11 +1305,12 @@ void SQLPTExtRepresentation::Increment(const std::string& app_id, std::string sql_counter; if (IsExistAppLevel(app_id)) { // update - sql_counter = "UPDATE `app_level` SET `" + type + "` = `" + type - + "` + 1 WHERE `application_id` = ?"; + sql_counter = "UPDATE `app_level` SET `" + type + "` = `" + type + + "` + 1 WHERE `application_id` = ?"; } else { // insert - sql_counter = "INSERT INTO `app_level` (`application_id`, `" + type + "`) " + sql_counter = "INSERT INTO `app_level` (`application_id`, `" + type + + "`) " "VALUES (?, 1)"; } if (!query.Prepare(sql_counter)) { @@ -1301,11 +1330,13 @@ void SQLPTExtRepresentation::Set(const std::string& app_id, std::string sql_info; if (IsExistAppLevel(app_id)) { // update - sql_info = "UPDATE `app_level` SET `" + type + "` = ? " + sql_info = "UPDATE `app_level` SET `" + type + + "` = ? " "WHERE `application_id` = ?"; } else { // insert - sql_info = "INSERT INTO `app_level` (`" + type + "`, `application_id`) " + sql_info = "INSERT INTO `app_level` (`" + type + + "`, `application_id`) " "VALUES (?, ?)"; } if (!query.Prepare(sql_info)) { @@ -1320,17 +1351,18 @@ void SQLPTExtRepresentation::Set(const std::string& app_id, } void SQLPTExtRepresentation::Add(const std::string& app_id, - const std::string& type, int seconds) const { + const std::string& type, + int seconds) const { utils::dbms::SQLQuery query(db()); std::string sql_stopwatch; if (IsExistAppLevel(app_id)) { // update - sql_stopwatch = "UPDATE `app_level` SET `" + type + "` = `" + type - + "` + ? WHERE `application_id` = ?"; + sql_stopwatch = "UPDATE `app_level` SET `" + type + "` = `" + type + + "` + ? WHERE `application_id` = ?"; } else { // insert - sql_stopwatch = "INSERT INTO `app_level` (`" + type - + "`, `application_id`) " + sql_stopwatch = "INSERT INTO `app_level` (`" + type + + "`, `application_id`) " "VALUES (?, ?)"; } if (!query.Prepare(sql_stopwatch)) { @@ -1345,7 +1377,7 @@ void SQLPTExtRepresentation::Add(const std::string& app_id, } bool SQLPTExtRepresentation::GetDefaultHMI(const std::string& policy_app_id, - std::string* default_hmi) { + std::string* default_hmi) { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kSelectDefaultHmi)) { @@ -1371,9 +1403,9 @@ bool SQLPTExtRepresentation::GetDefaultHMI(const std::string& policy_app_id, } bool SQLPTExtRepresentation::CountUnconsentedGroups( - const std::string& policy_app_id, - const std::string& device_id, - int* result) const { + const std::string& policy_app_id, + const std::string& device_id, + int* result) const { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kCountUnconsentedGroups)) { @@ -1394,8 +1426,8 @@ bool SQLPTExtRepresentation::CountUnconsentedGroups( return true; } -bool SQLPTExtRepresentation::IsMsgLanguagePresent(const std::string &message, - const std::string &language) { +bool SQLPTExtRepresentation::IsMsgLanguagePresent(const std::string& message, + const std::string& language) { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kHasMsgLanguageCode)) { LOG4CXX_WARN(logger_, "Incorrect statement for message language check."); @@ -1414,8 +1446,9 @@ bool SQLPTExtRepresentation::IsMsgLanguagePresent(const std::string &message, } bool SQLPTExtRepresentation::SaveMessageString( - const std::string& type, const std::string& lang, - const policy_table::MessageString& strings) { + const std::string& type, + const std::string& lang, + const policy_table::MessageString& strings) { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt::kInsertMessageString)) { LOG4CXX_WARN(logger_, "Incorrect insert statement for message."); @@ -1529,7 +1562,7 @@ bool SQLPTExtRepresentation::SaveGlobalCounters( } bool SQLPTExtRepresentation::CleanupUnpairedDevices( - const DeviceIds& device_ids) const { + const DeviceIds& device_ids) const { LOG4CXX_AUTO_TRACE(logger_); utils::dbms::SQLQuery delete_device_query(db()); if (!delete_device_query.Prepare(sql_pt::kDeleteDevice)) { @@ -1615,7 +1648,8 @@ bool SQLPTExtRepresentation::SetDefaultPolicy(const std::string& app_id) { } bool SQLPTExtRepresentation::SetPredataPolicy(const std::string& app_id) { - LOG4CXX_INFO(logger_, "SQLPTExtRepresentation::SetPredataPolicy for " << app_id); + LOG4CXX_INFO(logger_, + "SQLPTExtRepresentation::SetPredataPolicy for " << app_id); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt::kDeleteAppGroupByApplicationId)) { LOG4CXX_ERROR(logger_, "Incorrect statement to delete from app_group."); @@ -1648,7 +1682,7 @@ bool SQLPTExtRepresentation::SetPredataPolicy(const std::string& app_id) { GatherAppGroup(kPreDataConsentId, &predataconsent_groups); GatherPreconsentedGroup(kPreDataConsentId, &predataconsent_groups); if (SaveAppGroup(app_id, predataconsent_groups) && - SavePreconsentedGroup(app_id, predataconsent_groups)) { + SavePreconsentedGroup(app_id, predataconsent_groups)) { return SetIsDefault(app_id, false) && SetIsPredata(app_id, true); } return false; @@ -1670,7 +1704,7 @@ bool SQLPTExtRepresentation::IsPredataPolicy(const std::string& app_id) const { } bool SQLPTExtRepresentation::SetIsPredata(const std::string& app_id, - bool is_pre_data) { + bool is_pre_data) { LOG4CXX_TRACE(logger_, "Set flag is_predata of application"); utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kUpdateIsPredata)) { @@ -1719,7 +1753,7 @@ bool SQLPTExtRepresentation::UnpairedDevicesList(DeviceIds* device_ids) const { return true; } -bool SQLPTExtRepresentation::SetVINValue(const std::string& value){ +bool SQLPTExtRepresentation::SetVINValue(const std::string& value) { utils::dbms::SQLQuery query(db()); if (!query.Prepare(sql_pt_ext::kUpdateModuleMetaVinParam)) { LOG4CXX_WARN(logger_, "Incorect statement for updating module_meta params"); @@ -1771,4 +1805,3 @@ bool SQLPTExtRepresentation::RemoveAppConsentForGroup( } } // namespace policy - diff --git a/src/components/policy/src/policy/src/sql_pt_queries.cc b/src/components/policy/src/policy/src/sql_pt_queries.cc index d22cf4db8c..2656918858 100644 --- a/src/components/policy/src/policy/src/sql_pt_queries.cc +++ b/src/components/policy/src/policy/src/sql_pt_queries.cc @@ -38,490 +38,513 @@ namespace sql_pt { const std::string kSelectPriority = "SELECT `priority_value` FROM `application` WHERE `id` = ? LIMIT 1"; const std::string kCreateSchema = - "BEGIN; " - "CREATE TABLE IF NOT EXISTS `device`( " - " `id` VARCHAR(100) PRIMARY KEY NOT NULL, " - " `hardware` VARCHAR(45), " - " `firmware_rev` VARCHAR(45), " - " `os` VARCHAR(45), " - " `os_version` VARCHAR(45), " - " `carrier` VARCHAR(45), " - " `max_number_rfcom_ports` INTEGER," - " `connection_type` VARCHAR(45), " - " `unpaired` BOOL " - "); " - "CREATE TABLE IF NOT EXISTS `usage_and_error_count`( " - " `count_of_iap_buffer_full` INTEGER, " - " `count_sync_out_of_memory` INTEGER, " - " `count_of_sync_reboots` INTEGER " - "); " - "CREATE TABLE IF NOT EXISTS `module_meta`( " - " `ccpu_version` VARCHAR(45), " - " `language` VARCHAR(45), " - " `wers_country_code` VARCHAR(45), " - " `pt_exchanged_at_odometer_x` INTEGER NOT NULL DEFAULT 0, " - " `pt_exchanged_x_days_after_epoch` INTEGER NOT NULL DEFAULT 0, " - " `ignition_cycles_since_last_exchange` INTEGER NOT NULL DEFAULT 0, " - " `vin` VARCHAR(45)," - " `flag_update_required` BOOL NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `module_config`( " - " `preloaded_pt` BOOL NOT NULL, " - " `is_first_run` BOOL NOT NULL, " - " `exchange_after_x_ignition_cycles` INTEGER NOT NULL, " - " `exchange_after_x_kilometers` INTEGER NOT NULL, " - " `exchange_after_x_days` INTEGER NOT NULL, " - " `timeout_after_x_seconds` INTEGER NOT NULL, " - " `certificate` TEXT, " - " `vehicle_make` VARCHAR(45), " - " `vehicle_model` VARCHAR(45), " - " `vehicle_year` VARCHAR(4) " - "); " - "CREATE TABLE IF NOT EXISTS `functional_group`( " - " `id` INTEGER PRIMARY KEY NOT NULL, " - " `user_consent_prompt` TEXT, " - " `name` VARCHAR(100) NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `priority`( " - " `value` VARCHAR(45) PRIMARY KEY NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `hmi_level`( " - " `value` VARCHAR(45) PRIMARY KEY NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `notifications_by_priority`( " - " `priority_value` VARCHAR(45) PRIMARY KEY NOT NULL, " - " `value` INTEGER NOT NULL, " - " CONSTRAINT `fk_notifications_by_priority_priority1` " - " FOREIGN KEY(`priority_value`) " - " REFERENCES `priority`(`value`) " - "); " - "CREATE INDEX IF NOT EXISTS " - "`notifications_by_priority.fk_notifications_by_priority_priority1_idx` " - " ON `notifications_by_priority`(`priority_value`); " - "CREATE TABLE IF NOT EXISTS `language`( " - " `code` VARCHAR(25) PRIMARY KEY NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `message_type`( " - " `name` VARCHAR(45) PRIMARY KEY NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `version`( " - " `number` VARCHAR(45) NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `rpc`( " - " `id` INTEGER PRIMARY KEY NOT NULL, " - " `name` VARCHAR(45) NOT NULL, " - " `parameter` VARCHAR(45), " - " `hmi_level_value` VARCHAR(45) NOT NULL, " - " `functional_group_id` INTEGER NOT NULL, " - " CONSTRAINT `fk_rpc_hmi_level1` " - " FOREIGN KEY(`hmi_level_value`) " - " REFERENCES `hmi_level`(`value`), " - " CONSTRAINT `fk_rpc_functional_group1` " - " FOREIGN KEY(`functional_group_id`) " - " REFERENCES `functional_group`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS `rpc.fk_rpc_hmi_level1_idx` " - " ON `rpc`(`hmi_level_value`); " - "CREATE INDEX IF NOT EXISTS `rpc.fk_rpc_functional_group1_idx` " - " ON `rpc`(`functional_group_id`); " - "CREATE INDEX `rpc.select_rpc_name_hmi_level` " - " ON `rpc`(`name`,`hmi_level_value`);" - "CREATE TABLE IF NOT EXISTS `application`( " - " `id` VARCHAR(45) PRIMARY KEY NOT NULL, " - " `keep_context` BOOLEAN, " - " `steal_focus` BOOLEAN, " - " `default_hmi` VARCHAR(45), " - " `priority_value` VARCHAR(45), " - " `is_revoked` BOOLEAN, " - " `is_default` BOOLEAN, " - " `is_predata` BOOLEAN, " - " `memory_kb` INTEGER NOT NULL, " - " `heart_beat_timeout_ms` INTEGER NOT NULL, " - " `certificate` VARCHAR(45), " - " CONSTRAINT `fk_application_hmi_level1` " - " FOREIGN KEY(`default_hmi`) " - " REFERENCES `hmi_level`(`value`), " - " CONSTRAINT `fk_application_priorities1` " - " FOREIGN KEY(`priority_value`) " - " REFERENCES `priority`(`value`) " - "); " - "CREATE INDEX IF NOT EXISTS `application.fk_application_hmi_level1_idx` " - " ON `application`(`default_hmi`); " - "CREATE INDEX IF NOT EXISTS `application.fk_application_priorities1_idx` " - " ON `application`(`priority_value`); " - "CREATE TABLE IF NOT EXISTS `app_group`( " - " `application_id` VARCHAR(45) NOT NULL, " - " `functional_group_id` INTEGER NOT NULL, " - " PRIMARY KEY(`application_id`,`functional_group_id`), " - " CONSTRAINT `fk_application_has_functional_group_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`), " - " CONSTRAINT `fk_application_has_functional_group_functional_group1` " - " FOREIGN KEY(`functional_group_id`) " - " REFERENCES `functional_group`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS `app_group.fk_application_has_functional_group_functional_group1_idx` " - " ON `app_group`(`functional_group_id`); " - "CREATE INDEX IF NOT EXISTS `app_group.fk_application_has_functional_group_application1_idx` " - " ON `app_group`(`application_id`); " - "CREATE TABLE IF NOT EXISTS `preconsented_group`( " - " `application_id` VARCHAR(45) NOT NULL, " - " `functional_group_id` INTEGER NOT NULL, " - " PRIMARY KEY(`application_id`,`functional_group_id`), " - " CONSTRAINT `fk_application_has_functional_group_application2` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`), " - " CONSTRAINT `fk_application_has_functional_group_functional_group2` " - " FOREIGN KEY(`functional_group_id`) " - " REFERENCES `functional_group`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS " - "`preconsented_group.fk_application_has_functional_group_functional_group2_idx` " - " ON `preconsented_group`(`functional_group_id`); " - "CREATE INDEX IF NOT EXISTS " - "`preconsented_group.fk_application_has_functional_group_application2_idx` " - " ON `preconsented_group`(`application_id`); " - "CREATE TABLE IF NOT EXISTS `seconds_between_retry`( " - " `index` INTEGER PRIMARY KEY NOT NULL, " - " `value` INTEGER NOT NULL " - "); " - "CREATE TABLE IF NOT EXISTS `device_consent_group`( " - " `device_id` VARCHAR(100) NOT NULL, " - " `functional_group_id` INTEGER NOT NULL, " - " `is_consented` BOOL NOT NULL, " - " `input` VARCHAR(45), " - " `time_stamp` VARCHAR(45), " - " PRIMARY KEY(`device_id`,`functional_group_id`), " - " CONSTRAINT `fk_device_has_functional_group_device1` " - " FOREIGN KEY(`device_id`) " - " REFERENCES `device`(`id`), " - " CONSTRAINT `fk_device_has_functional_group_functional_group1` " - " FOREIGN KEY(`functional_group_id`) " - " REFERENCES `functional_group`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS " - "`device_consent_group.fk_device_has_functional_group_functional_group1_idx` " - " ON `device_consent_group`(`functional_group_id`); " - "CREATE INDEX IF NOT EXISTS " - "`device_consent_group.fk_device_has_functional_group_device1_idx` " - " ON `device_consent_group`(`device_id`); " - "CREATE TABLE IF NOT EXISTS `app_level`( " - " `application_id` VARCHAR(45) PRIMARY KEY NOT NULL, " - " `minutes_in_hmi_full` INTEGER DEFAULT 0, " - " `minutes_in_hmi_limited` INTEGER DEFAULT 0, " - " `minutes_in_hmi_background` INTEGER DEFAULT 0, " - " `minutes_in_hmi_none` INTEGER DEFAULT 0, " - " `count_of_user_selections` INTEGER DEFAULT 0, " - " `count_of_rejections_sync_out_of_memory` INTEGER DEFAULT 0, " - " `count_of_rejections_nickname_mismatch` INTEGER DEFAULT 0, " - " `count_of_rejections_duplicate_name` INTEGER DEFAULT 0, " - " `count_of_rejected_rpcs_calls` INTEGER DEFAULT 0, " - " `count_of_rpcs_sent_in_hmi_none` INTEGER DEFAULT 0, " - " `count_of_removals_for_bad_behavior` INTEGER DEFAULT 0, " - " `count_of_run_attempts_while_revoked` INTEGER DEFAULT 0, " - " `count_of_tls_errors` INTEGER DEFAULT 0, " - " `app_registration_language_gui` VARCHAR(25), " - " `app_registration_language_vui` VARCHAR(25), " - " CONSTRAINT `fk_app_levels_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`), " - " CONSTRAINT `fk_app_level_language1` " - " FOREIGN KEY(`app_registration_language_gui`) " - " REFERENCES `language`(`code`), " - " CONSTRAINT `fk_app_level_language2` " - " FOREIGN KEY(`app_registration_language_vui`) " - " REFERENCES `language`(`code`) " - "); " - "CREATE INDEX IF NOT EXISTS `app_level.fk_app_levels_application1_idx` " - " ON `app_level`(`application_id`); " - "CREATE INDEX IF NOT EXISTS `app_level.fk_app_level_language1_idx` " - " ON `app_level`(`app_registration_language_gui`); " - "CREATE INDEX IF NOT EXISTS `app_level.fk_app_level_language2_idx` " - " ON `app_level`(`app_registration_language_vui`); " - "CREATE TABLE IF NOT EXISTS `nickname`( " - " `name` VARCHAR(100) NOT NULL, " - " `application_id` VARCHAR(45) NOT NULL, " - " PRIMARY KEY(`name`,`application_id`), " - " CONSTRAINT `fk_nickname_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS `nickname.fk_nickname_application1_idx` " - " ON `nickname`(`application_id`); " - "CREATE TABLE IF NOT EXISTS `app_type`( " - " `name` VARCHAR(50) NOT NULL, " - " `application_id` VARCHAR(45) NOT NULL, " - " PRIMARY KEY(`name`,`application_id`), " - " CONSTRAINT `fk_app_type_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`) " - "); " - "CREATE TABLE IF NOT EXISTS `request_type`( " - " `request_type` VARCHAR(50) NOT NULL, " - " `application_id` VARCHAR(45) NOT NULL, " - " PRIMARY KEY(`request_type`,`application_id`), " - " CONSTRAINT `fk_app_type_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS `app_type.fk_app_type_application1_idx` " - " ON `app_type`(`application_id`); " - "CREATE TABLE IF NOT EXISTS `consent_group`( " - " `device_id` VARCHAR(100) NOT NULL, " - " `application_id` VARCHAR(45) NOT NULL, " - " `functional_group_id` INTEGER NOT NULL, " - " `is_consented` BOOL NOT NULL, " - " `input` VARCHAR(45), " - " `time_stamp` VARCHAR(45), " - " PRIMARY KEY(`application_id`,`functional_group_id`,`device_id`), " - " CONSTRAINT `fk_consent_group_device1` " - " FOREIGN KEY(`device_id`) " - " REFERENCES `device`(`id`), " - " CONSTRAINT `fk_consent_group_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`), " - " CONSTRAINT `fk_consent_group_functional_group1` " - " FOREIGN KEY(`functional_group_id`) " - " REFERENCES `functional_group`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS " - "`consent_group.fk_consent_group_device1_idx` " - " ON `device_consent_group`(`device_id`); " - "CREATE INDEX IF NOT EXISTS `consent_group.fk_consent_group_functional_group1_idx` " - " ON `consent_group`(`functional_group_id`); " - "CREATE TABLE IF NOT EXISTS `endpoint`( " - " `service` VARCHAR(100) NOT NULL, " - " `url` VARCHAR(100) NOT NULL, " - " `application_id` VARCHAR(45) NOT NULL, " - " CONSTRAINT `fk_endpoint_application1` " - " FOREIGN KEY(`application_id`) " - " REFERENCES `application`(`id`) " - "); " - "CREATE INDEX IF NOT EXISTS `endpoint.fk_endpoint_application1_idx` " - " ON `endpoint`(`application_id`); " - "CREATE TABLE IF NOT EXISTS `message`( " - " `id` INTEGER PRIMARY KEY NOT NULL, " - " `tts` TEXT, " - " `label` TEXT, " - " `line1` TEXT, " - " `line2` TEXT, " - " `textBody` TEXT, " - " `language_code` VARCHAR(25) NOT NULL, " - " `message_type_name` VARCHAR(45) NOT NULL, " - " CONSTRAINT `fk_messages_languages1` " - " FOREIGN KEY(`language_code`) " - " REFERENCES `language`(`code`), " - " CONSTRAINT `fk_message_consumer_friendly_messages1` " - " FOREIGN KEY(`message_type_name`) " - " REFERENCES `message_type`(`name`) " - "); " - "CREATE INDEX IF NOT EXISTS `message.fk_messages_languages1_idx` " - " ON `message`(`language_code`);" - "CREATE INDEX IF NOT EXISTS `message.fk_message_consumer_friendly_messages1_idx` " - " ON `message`(`message_type_name`);" - "CREATE TABLE IF NOT EXISTS `_internal_data`( " - " `db_version_hash` INTEGER " - " ); " - "COMMIT;"; + "BEGIN; " + "CREATE TABLE IF NOT EXISTS `device`( " + " `id` VARCHAR(100) PRIMARY KEY NOT NULL, " + " `hardware` VARCHAR(45), " + " `firmware_rev` VARCHAR(45), " + " `os` VARCHAR(45), " + " `os_version` VARCHAR(45), " + " `carrier` VARCHAR(45), " + " `max_number_rfcom_ports` INTEGER," + " `connection_type` VARCHAR(45), " + " `unpaired` BOOL " + "); " + "CREATE TABLE IF NOT EXISTS `usage_and_error_count`( " + " `count_of_iap_buffer_full` INTEGER, " + " `count_sync_out_of_memory` INTEGER, " + " `count_of_sync_reboots` INTEGER " + "); " + "CREATE TABLE IF NOT EXISTS `module_meta`( " + " `ccpu_version` VARCHAR(45), " + " `language` VARCHAR(45), " + " `wers_country_code` VARCHAR(45), " + " `pt_exchanged_at_odometer_x` INTEGER NOT NULL DEFAULT 0, " + " `pt_exchanged_x_days_after_epoch` INTEGER NOT NULL DEFAULT 0, " + " `ignition_cycles_since_last_exchange` INTEGER NOT NULL DEFAULT 0, " + " `vin` VARCHAR(45)," + " `flag_update_required` BOOL NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `module_config`( " + " `preloaded_pt` BOOL NOT NULL, " + " `is_first_run` BOOL NOT NULL, " + " `exchange_after_x_ignition_cycles` INTEGER NOT NULL, " + " `exchange_after_x_kilometers` INTEGER NOT NULL, " + " `exchange_after_x_days` INTEGER NOT NULL, " + " `timeout_after_x_seconds` INTEGER NOT NULL, " + " `certificate` TEXT, " + " `vehicle_make` VARCHAR(45), " + " `vehicle_model` VARCHAR(45), " + " `vehicle_year` VARCHAR(4) " + "); " + "CREATE TABLE IF NOT EXISTS `functional_group`( " + " `id` INTEGER PRIMARY KEY NOT NULL, " + " `user_consent_prompt` TEXT, " + " `name` VARCHAR(100) NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `priority`( " + " `value` VARCHAR(45) PRIMARY KEY NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `hmi_level`( " + " `value` VARCHAR(45) PRIMARY KEY NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `notifications_by_priority`( " + " `priority_value` VARCHAR(45) PRIMARY KEY NOT NULL, " + " `value` INTEGER NOT NULL, " + " CONSTRAINT `fk_notifications_by_priority_priority1` " + " FOREIGN KEY(`priority_value`) " + " REFERENCES `priority`(`value`) " + "); " + "CREATE INDEX IF NOT EXISTS " + "`notifications_by_priority.fk_notifications_by_priority_priority1_idx` " + " ON `notifications_by_priority`(`priority_value`); " + "CREATE TABLE IF NOT EXISTS `language`( " + " `code` VARCHAR(25) PRIMARY KEY NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `message_type`( " + " `name` VARCHAR(45) PRIMARY KEY NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `version`( " + " `number` VARCHAR(45) NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `rpc`( " + " `id` INTEGER PRIMARY KEY NOT NULL, " + " `name` VARCHAR(45) NOT NULL, " + " `parameter` VARCHAR(45), " + " `hmi_level_value` VARCHAR(45) NOT NULL, " + " `functional_group_id` INTEGER NOT NULL, " + " CONSTRAINT `fk_rpc_hmi_level1` " + " FOREIGN KEY(`hmi_level_value`) " + " REFERENCES `hmi_level`(`value`), " + " CONSTRAINT `fk_rpc_functional_group1` " + " FOREIGN KEY(`functional_group_id`) " + " REFERENCES `functional_group`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS `rpc.fk_rpc_hmi_level1_idx` " + " ON `rpc`(`hmi_level_value`); " + "CREATE INDEX IF NOT EXISTS `rpc.fk_rpc_functional_group1_idx` " + " ON `rpc`(`functional_group_id`); " + "CREATE INDEX `rpc.select_rpc_name_hmi_level` " + " ON `rpc`(`name`,`hmi_level_value`);" + "CREATE TABLE IF NOT EXISTS `application`( " + " `id` VARCHAR(45) PRIMARY KEY NOT NULL, " + " `keep_context` BOOLEAN, " + " `steal_focus` BOOLEAN, " + " `default_hmi` VARCHAR(45), " + " `priority_value` VARCHAR(45), " + " `is_revoked` BOOLEAN, " + " `is_default` BOOLEAN, " + " `is_predata` BOOLEAN, " + " `memory_kb` INTEGER NOT NULL, " + " `heart_beat_timeout_ms` INTEGER NOT NULL, " + " `certificate` VARCHAR(45), " + " CONSTRAINT `fk_application_hmi_level1` " + " FOREIGN KEY(`default_hmi`) " + " REFERENCES `hmi_level`(`value`), " + " CONSTRAINT `fk_application_priorities1` " + " FOREIGN KEY(`priority_value`) " + " REFERENCES `priority`(`value`) " + "); " + "CREATE INDEX IF NOT EXISTS `application.fk_application_hmi_level1_idx` " + " ON `application`(`default_hmi`); " + "CREATE INDEX IF NOT EXISTS `application.fk_application_priorities1_idx` " + " ON `application`(`priority_value`); " + "CREATE TABLE IF NOT EXISTS `app_group`( " + " `application_id` VARCHAR(45) NOT NULL, " + " `functional_group_id` INTEGER NOT NULL, " + " PRIMARY KEY(`application_id`,`functional_group_id`), " + " CONSTRAINT `fk_application_has_functional_group_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`), " + " CONSTRAINT `fk_application_has_functional_group_functional_group1` " + " FOREIGN KEY(`functional_group_id`) " + " REFERENCES `functional_group`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS " + "`app_group.fk_application_has_functional_group_functional_group1_idx` " + " ON `app_group`(`functional_group_id`); " + "CREATE INDEX IF NOT EXISTS " + "`app_group.fk_application_has_functional_group_application1_idx` " + " ON `app_group`(`application_id`); " + "CREATE TABLE IF NOT EXISTS `preconsented_group`( " + " `application_id` VARCHAR(45) NOT NULL, " + " `functional_group_id` INTEGER NOT NULL, " + " PRIMARY KEY(`application_id`,`functional_group_id`), " + " CONSTRAINT `fk_application_has_functional_group_application2` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`), " + " CONSTRAINT `fk_application_has_functional_group_functional_group2` " + " FOREIGN KEY(`functional_group_id`) " + " REFERENCES `functional_group`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS " + "`preconsented_group.fk_application_has_functional_group_functional_group2_" + "idx` " + " ON `preconsented_group`(`functional_group_id`); " + "CREATE INDEX IF NOT EXISTS " + "`preconsented_group.fk_application_has_functional_group_application2_idx` " + " ON `preconsented_group`(`application_id`); " + "CREATE TABLE IF NOT EXISTS `seconds_between_retry`( " + " `index` INTEGER PRIMARY KEY NOT NULL, " + " `value` INTEGER NOT NULL " + "); " + "CREATE TABLE IF NOT EXISTS `device_consent_group`( " + " `device_id` VARCHAR(100) NOT NULL, " + " `functional_group_id` INTEGER NOT NULL, " + " `is_consented` BOOL NOT NULL, " + " `input` VARCHAR(45), " + " `time_stamp` VARCHAR(45), " + " PRIMARY KEY(`device_id`,`functional_group_id`), " + " CONSTRAINT `fk_device_has_functional_group_device1` " + " FOREIGN KEY(`device_id`) " + " REFERENCES `device`(`id`), " + " CONSTRAINT `fk_device_has_functional_group_functional_group1` " + " FOREIGN KEY(`functional_group_id`) " + " REFERENCES `functional_group`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS " + "`device_consent_group.fk_device_has_functional_group_functional_group1_" + "idx` " + " ON `device_consent_group`(`functional_group_id`); " + "CREATE INDEX IF NOT EXISTS " + "`device_consent_group.fk_device_has_functional_group_device1_idx` " + " ON `device_consent_group`(`device_id`); " + "CREATE TABLE IF NOT EXISTS `app_level`( " + " `application_id` VARCHAR(45) PRIMARY KEY NOT NULL, " + " `minutes_in_hmi_full` INTEGER DEFAULT 0, " + " `minutes_in_hmi_limited` INTEGER DEFAULT 0, " + " `minutes_in_hmi_background` INTEGER DEFAULT 0, " + " `minutes_in_hmi_none` INTEGER DEFAULT 0, " + " `count_of_user_selections` INTEGER DEFAULT 0, " + " `count_of_rejections_sync_out_of_memory` INTEGER DEFAULT 0, " + " `count_of_rejections_nickname_mismatch` INTEGER DEFAULT 0, " + " `count_of_rejections_duplicate_name` INTEGER DEFAULT 0, " + " `count_of_rejected_rpcs_calls` INTEGER DEFAULT 0, " + " `count_of_rpcs_sent_in_hmi_none` INTEGER DEFAULT 0, " + " `count_of_removals_for_bad_behavior` INTEGER DEFAULT 0, " + " `count_of_run_attempts_while_revoked` INTEGER DEFAULT 0, " + " `count_of_tls_errors` INTEGER DEFAULT 0, " + " `app_registration_language_gui` VARCHAR(25), " + " `app_registration_language_vui` VARCHAR(25), " + " CONSTRAINT `fk_app_levels_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`), " + " CONSTRAINT `fk_app_level_language1` " + " FOREIGN KEY(`app_registration_language_gui`) " + " REFERENCES `language`(`code`), " + " CONSTRAINT `fk_app_level_language2` " + " FOREIGN KEY(`app_registration_language_vui`) " + " REFERENCES `language`(`code`) " + "); " + "CREATE INDEX IF NOT EXISTS `app_level.fk_app_levels_application1_idx` " + " ON `app_level`(`application_id`); " + "CREATE INDEX IF NOT EXISTS `app_level.fk_app_level_language1_idx` " + " ON `app_level`(`app_registration_language_gui`); " + "CREATE INDEX IF NOT EXISTS `app_level.fk_app_level_language2_idx` " + " ON `app_level`(`app_registration_language_vui`); " + "CREATE TABLE IF NOT EXISTS `nickname`( " + " `name` VARCHAR(100) NOT NULL, " + " `application_id` VARCHAR(45) NOT NULL, " + " PRIMARY KEY(`name`,`application_id`), " + " CONSTRAINT `fk_nickname_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS `nickname.fk_nickname_application1_idx` " + " ON `nickname`(`application_id`); " + "CREATE TABLE IF NOT EXISTS `app_type`( " + " `name` VARCHAR(50) NOT NULL, " + " `application_id` VARCHAR(45) NOT NULL, " + " PRIMARY KEY(`name`,`application_id`), " + " CONSTRAINT `fk_app_type_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`) " + "); " + "CREATE TABLE IF NOT EXISTS `request_type`( " + " `request_type` VARCHAR(50) NOT NULL, " + " `application_id` VARCHAR(45) NOT NULL, " + " PRIMARY KEY(`request_type`,`application_id`), " + " CONSTRAINT `fk_app_type_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS `app_type.fk_app_type_application1_idx` " + " ON `app_type`(`application_id`); " + "CREATE TABLE IF NOT EXISTS `consent_group`( " + " `device_id` VARCHAR(100) NOT NULL, " + " `application_id` VARCHAR(45) NOT NULL, " + " `functional_group_id` INTEGER NOT NULL, " + " `is_consented` BOOL NOT NULL, " + " `input` VARCHAR(45), " + " `time_stamp` VARCHAR(45), " + " PRIMARY KEY(`application_id`,`functional_group_id`,`device_id`), " + " CONSTRAINT `fk_consent_group_device1` " + " FOREIGN KEY(`device_id`) " + " REFERENCES `device`(`id`), " + " CONSTRAINT `fk_consent_group_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`), " + " CONSTRAINT `fk_consent_group_functional_group1` " + " FOREIGN KEY(`functional_group_id`) " + " REFERENCES `functional_group`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS " + "`consent_group.fk_consent_group_device1_idx` " + " ON `device_consent_group`(`device_id`); " + "CREATE INDEX IF NOT EXISTS " + "`consent_group.fk_consent_group_functional_group1_idx` " + " ON `consent_group`(`functional_group_id`); " + "CREATE TABLE IF NOT EXISTS `endpoint`( " + " `service` VARCHAR(100) NOT NULL, " + " `url` VARCHAR(100) NOT NULL, " + " `application_id` VARCHAR(45) NOT NULL, " + " CONSTRAINT `fk_endpoint_application1` " + " FOREIGN KEY(`application_id`) " + " REFERENCES `application`(`id`) " + "); " + "CREATE INDEX IF NOT EXISTS `endpoint.fk_endpoint_application1_idx` " + " ON `endpoint`(`application_id`); " + "CREATE TABLE IF NOT EXISTS `message`( " + " `id` INTEGER PRIMARY KEY NOT NULL, " + " `tts` TEXT, " + " `label` TEXT, " + " `line1` TEXT, " + " `line2` TEXT, " + " `textBody` TEXT, " + " `language_code` VARCHAR(25) NOT NULL, " + " `message_type_name` VARCHAR(45) NOT NULL, " + " CONSTRAINT `fk_messages_languages1` " + " FOREIGN KEY(`language_code`) " + " REFERENCES `language`(`code`), " + " CONSTRAINT `fk_message_consumer_friendly_messages1` " + " FOREIGN KEY(`message_type_name`) " + " REFERENCES `message_type`(`name`) " + "); " + "CREATE INDEX IF NOT EXISTS `message.fk_messages_languages1_idx` " + " ON `message`(`language_code`);" + "CREATE INDEX IF NOT EXISTS " + "`message.fk_message_consumer_friendly_messages1_idx` " + " ON `message`(`message_type_name`);" + "CREATE TABLE IF NOT EXISTS `_internal_data`( " + " `db_version_hash` INTEGER " + " ); " + "COMMIT;"; const std::string kInsertInitData = - "INSERT OR IGNORE INTO `usage_and_error_count` ( " - " `count_of_iap_buffer_full`, `count_sync_out_of_memory`, " - " `count_of_sync_reboots`) VALUES (0, 0, 0); " - "INSERT OR IGNORE INTO `module_meta` (`pt_exchanged_at_odometer_x`, " - " `pt_exchanged_x_days_after_epoch`, `ignition_cycles_since_last_exchange`," - " `flag_update_required`) " - " VALUES (0, 0, 0, 0); " - "INSERT OR IGNORE INTO `module_config` (`preloaded_pt`, `is_first_run`," - " `exchange_after_x_ignition_cycles`, `exchange_after_x_kilometers`, " - " `exchange_after_x_days`, `timeout_after_x_seconds`) " - " VALUES(1, 0, 0, 0, 0, 0); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('EMERGENCY'); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NAVIGATION'); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('VOICECOMMUNICATION'); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('COMMUNICATION'); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NORMAL'); " - "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NONE'); " - "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('FULL'); " - "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('LIMITED'); " - "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('BACKGROUND'); " - "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('NONE'); " - "INSERT OR IGNORE INTO `version` (`number`) VALUES('0'); " - "INSERT OR IGNORE INTO `_internal_data` (`db_version_hash`) VALUES(0); " - ""; + "INSERT OR IGNORE INTO `usage_and_error_count` ( " + " `count_of_iap_buffer_full`, `count_sync_out_of_memory`, " + " `count_of_sync_reboots`) VALUES (0, 0, 0); " + "INSERT OR IGNORE INTO `module_meta` (`pt_exchanged_at_odometer_x`, " + " `pt_exchanged_x_days_after_epoch`, " + "`ignition_cycles_since_last_exchange`," + " `flag_update_required`) " + " VALUES (0, 0, 0, 0); " + "INSERT OR IGNORE INTO `module_config` (`preloaded_pt`, `is_first_run`," + " `exchange_after_x_ignition_cycles`, `exchange_after_x_kilometers`, " + " `exchange_after_x_days`, `timeout_after_x_seconds`) " + " VALUES(1, 0, 0, 0, 0, 0); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('EMERGENCY'); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NAVIGATION'); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('VOICECOMMUNICATION'); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('COMMUNICATION'); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NORMAL'); " + "INSERT OR IGNORE INTO `priority`(`value`) VALUES ('NONE'); " + "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('FULL'); " + "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('LIMITED'); " + "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('BACKGROUND'); " + "INSERT OR IGNORE INTO `hmi_level`(`value`) VALUES ('NONE'); " + "INSERT OR IGNORE INTO `version` (`number`) VALUES('0'); " + "INSERT OR IGNORE INTO `_internal_data` (`db_version_hash`) VALUES(0); " + ""; const std::string kDropSchema = - "BEGIN; " - "DROP INDEX IF EXISTS `message.fk_messages_languages1_idx`; " - "DROP INDEX IF EXISTS `message.fk_message_consumer_friendly_messages1_idx`; " - "DROP TABLE IF EXISTS `message`; " - "DROP INDEX IF EXISTS `endpoint.fk_endpoint_application1_idx`; " - "DROP TABLE IF EXISTS `endpoint`; " - "DROP INDEX IF EXISTS `consent_group.fk_consent_group_device1_idx`; " - "DROP INDEX IF EXISTS `consent_group.fk_consent_group_functional_group1_idx`; " - "DROP TABLE IF EXISTS `consent_group`; " - "DROP INDEX IF EXISTS `app_type.fk_app_type_application1_idx`; " - "DROP TABLE IF EXISTS `app_type`; " - "DROP INDEX IF EXISTS `nickname.fk_nickname_application1_idx`; " - "DROP TABLE IF EXISTS `nickname`; " - "DROP INDEX IF EXISTS `app_level.fk_app_level_language2_idx`; " - "DROP INDEX IF EXISTS `app_level.fk_app_level_language1_idx`; " - "DROP INDEX IF EXISTS `app_level.fk_app_levels_application1_idx`; " - "DROP TABLE IF EXISTS `app_level`; " - "DROP INDEX IF EXISTS `device_consent_group.fk_device_has_functional_group_device1_idx`; " - "DROP INDEX IF EXISTS `device_consent_group.fk_device_has_functional_group_functional_group1_idx`; " - "DROP TABLE IF EXISTS `device_consent_group`; " - "DROP TABLE IF EXISTS `seconds_between_retry`; " - "DROP INDEX IF EXISTS `preconsented_group.fk_application_has_functional_group_application2_idx`; " - "DROP INDEX IF EXISTS `preconsented_group.fk_application_has_functional_group_functional_group2_idx`; " - "DROP TABLE IF EXISTS `preconsented_group`; " - "DROP INDEX IF EXISTS `app_group.fk_application_has_functional_group_application1_idx`; " - "DROP INDEX IF EXISTS `app_group.fk_application_has_functional_group_functional_group1_idx`; " - "DROP TABLE IF EXISTS `app_group`; " - "DROP INDEX IF EXISTS `application.fk_application_priorities1_idx`; " - "DROP INDEX IF EXISTS `application.fk_application_hmi_level1_idx`; " - "DROP TABLE IF EXISTS `application`; " - "DROP INDEX IF EXISTS `rpc.select_rpc_name_hmi_level`; " - "DROP INDEX IF EXISTS `rpc.fk_rpc_functional_group1_idx`; " - "DROP INDEX IF EXISTS `rpc.fk_rpc_hmi_level1_idx`; " - "DROP TABLE IF EXISTS `rpc`; " - "DROP TABLE IF EXISTS `version`; " - "DROP TABLE IF EXISTS `message_type`; " - "DROP TABLE IF EXISTS `language`; " - "DROP INDEX IF EXISTS `notifications_by_priority.fk_notifications_by_priority_priority1_idx`; " - "DROP TABLE IF EXISTS `notifications_by_priority`; " - "DROP TABLE IF EXISTS `hmi_level`; " - "DROP TABLE IF EXISTS `priority`; " - "DROP TABLE IF EXISTS `functional_group`; " - "DROP TABLE IF EXISTS `module_config`; " - "DROP TABLE IF EXISTS `module_meta`; " - "DROP TABLE IF EXISTS `usage_and_error_count`; " - "DROP TABLE IF EXISTS `device`; " - "DROP TABLE IF EXISTS `_internal_data`; " - "COMMIT; " - "VACUUM;"; + "BEGIN; " + "DROP INDEX IF EXISTS `message.fk_messages_languages1_idx`; " + "DROP INDEX IF EXISTS " + "`message.fk_message_consumer_friendly_messages1_idx`; " + "DROP TABLE IF EXISTS `message`; " + "DROP INDEX IF EXISTS `endpoint.fk_endpoint_application1_idx`; " + "DROP TABLE IF EXISTS `endpoint`; " + "DROP INDEX IF EXISTS `consent_group.fk_consent_group_device1_idx`; " + "DROP INDEX IF EXISTS " + "`consent_group.fk_consent_group_functional_group1_idx`; " + "DROP TABLE IF EXISTS `consent_group`; " + "DROP INDEX IF EXISTS `app_type.fk_app_type_application1_idx`; " + "DROP TABLE IF EXISTS `app_type`; " + "DROP INDEX IF EXISTS `nickname.fk_nickname_application1_idx`; " + "DROP TABLE IF EXISTS `nickname`; " + "DROP INDEX IF EXISTS `app_level.fk_app_level_language2_idx`; " + "DROP INDEX IF EXISTS `app_level.fk_app_level_language1_idx`; " + "DROP INDEX IF EXISTS `app_level.fk_app_levels_application1_idx`; " + "DROP TABLE IF EXISTS `app_level`; " + "DROP INDEX IF EXISTS " + "`device_consent_group.fk_device_has_functional_group_device1_idx`; " + "DROP INDEX IF EXISTS " + "`device_consent_group.fk_device_has_functional_group_functional_group1_" + "idx`; " + "DROP TABLE IF EXISTS `device_consent_group`; " + "DROP TABLE IF EXISTS `seconds_between_retry`; " + "DROP INDEX IF EXISTS " + "`preconsented_group.fk_application_has_functional_group_application2_idx`;" + " " + "DROP INDEX IF EXISTS " + "`preconsented_group.fk_application_has_functional_group_functional_group2_" + "idx`; " + "DROP TABLE IF EXISTS `preconsented_group`; " + "DROP INDEX IF EXISTS " + "`app_group.fk_application_has_functional_group_application1_idx`; " + "DROP INDEX IF EXISTS " + "`app_group.fk_application_has_functional_group_functional_group1_idx`; " + "DROP TABLE IF EXISTS `app_group`; " + "DROP INDEX IF EXISTS `application.fk_application_priorities1_idx`; " + "DROP INDEX IF EXISTS `application.fk_application_hmi_level1_idx`; " + "DROP TABLE IF EXISTS `application`; " + "DROP INDEX IF EXISTS `rpc.select_rpc_name_hmi_level`; " + "DROP INDEX IF EXISTS `rpc.fk_rpc_functional_group1_idx`; " + "DROP INDEX IF EXISTS `rpc.fk_rpc_hmi_level1_idx`; " + "DROP TABLE IF EXISTS `rpc`; " + "DROP TABLE IF EXISTS `version`; " + "DROP TABLE IF EXISTS `message_type`; " + "DROP TABLE IF EXISTS `language`; " + "DROP INDEX IF EXISTS " + "`notifications_by_priority.fk_notifications_by_priority_priority1_idx`; " + "DROP TABLE IF EXISTS `notifications_by_priority`; " + "DROP TABLE IF EXISTS `hmi_level`; " + "DROP TABLE IF EXISTS `priority`; " + "DROP TABLE IF EXISTS `functional_group`; " + "DROP TABLE IF EXISTS `module_config`; " + "DROP TABLE IF EXISTS `module_meta`; " + "DROP TABLE IF EXISTS `usage_and_error_count`; " + "DROP TABLE IF EXISTS `device`; " + "DROP TABLE IF EXISTS `_internal_data`; " + "COMMIT; " + "VACUUM;"; const std::string kDeleteData = - "BEGIN; " - "DELETE FROM `message`; " - "DELETE FROM `endpoint`; " - "DELETE FROM `consent_group`; " - "DELETE FROM `app_type`; " - "DELETE FROM `nickname`; " - "DELETE FROM `app_level`; " - "DELETE FROM `device_consent_group`; " - "DELETE FROM `seconds_between_retry`; " - "DELETE FROM `preconsented_group`; " - "DELETE FROM `app_group`; " - "DELETE FROM `application`; " - "DELETE FROM `rpc`; " - "DELETE FROM `version`; " - "DELETE FROM `message_type`; " - "DELETE FROM `language`; " - "DELETE FROM `notifications_by_priority`; " - "DELETE FROM `hmi_level`; " - "DELETE FROM `priority`; " - "DELETE FROM `functional_group`; " - "DELETE FROM `module_config`; " - "DELETE FROM `module_meta`; " - "DELETE FROM `usage_and_error_count`; " - "DELETE FROM `device`; " - "COMMIT; " - "VACUUM;"; + "BEGIN; " + "DELETE FROM `message`; " + "DELETE FROM `endpoint`; " + "DELETE FROM `consent_group`; " + "DELETE FROM `app_type`; " + "DELETE FROM `nickname`; " + "DELETE FROM `app_level`; " + "DELETE FROM `device_consent_group`; " + "DELETE FROM `seconds_between_retry`; " + "DELETE FROM `preconsented_group`; " + "DELETE FROM `app_group`; " + "DELETE FROM `application`; " + "DELETE FROM `rpc`; " + "DELETE FROM `version`; " + "DELETE FROM `message_type`; " + "DELETE FROM `language`; " + "DELETE FROM `notifications_by_priority`; " + "DELETE FROM `hmi_level`; " + "DELETE FROM `priority`; " + "DELETE FROM `functional_group`; " + "DELETE FROM `module_config`; " + "DELETE FROM `module_meta`; " + "DELETE FROM `usage_and_error_count`; " + "DELETE FROM `device`; " + "COMMIT; " + "VACUUM;"; const std::string kCheckDBIntegrity = "PRAGMA integrity_check"; const std::string kCheckPgNumber = "PRAGMA page_count"; const std::string kSelectRpc = - "SELECT DISTINCT `rpc`.`parameter` FROM `rpc` " - " JOIN `app_group` AS `g` ON (`g`.`functional_group_id` = `rpc`.`functional_group_id` " - " AND (`g`.`application_id` = ?)) " - "WHERE `rpc`.`hmi_level_value` = ? AND `rpc`.`name` = ?"; + "SELECT DISTINCT `rpc`.`parameter` FROM `rpc` " + " JOIN `app_group` AS `g` ON (`g`.`functional_group_id` = " + "`rpc`.`functional_group_id` " + " AND (`g`.`application_id` = ?)) " + "WHERE `rpc`.`hmi_level_value` = ? AND `rpc`.`name` = ?"; const std::string kSelectPreloaded = - "SELECT `preloaded_pt` FROM `module_config` " - "WHERE `preloaded_pt` = 1 LIMIT 1"; + "SELECT `preloaded_pt` FROM `module_config` " + "WHERE `preloaded_pt` = 1 LIMIT 1"; const std::string kUpdatePreloaded = - "UPDATE `module_config` SET `preloaded_pt` = ?"; + "UPDATE `module_config` SET `preloaded_pt` = ?"; -const std::string kIsFirstRun = - "SELECT `is_first_run` FROM `module_config` "; +const std::string kIsFirstRun = "SELECT `is_first_run` FROM `module_config` "; const std::string kSetNotFirstRun = - "UPDATE `module_config` SET `is_first_run`= 0 "; + "UPDATE `module_config` SET `is_first_run`= 0 "; const std::string kSelectEndpoint = - "SELECT `url`, `application_id` FROM `endpoint` WHERE `service` = ? "; + "SELECT `url`, `application_id` FROM `endpoint` WHERE `service` = ? "; const std::string kSelectLockScreenIcon = - "SELECT `url` FROM `endpoint` WHERE `service` = ? AND `application_id` = ?"; + "SELECT `url` FROM `endpoint` WHERE `service` = ? AND `application_id` = ?"; const std::string kInsertFunctionalGroup = - "INSERT INTO `functional_group` (`id`, `name`, `user_consent_prompt`) " - " VALUES (?, ?, ?)"; + "INSERT INTO `functional_group` (`id`, `name`, `user_consent_prompt`) " + " VALUES (?, ?, ?)"; const std::string kInsertRpc = - "INSERT INTO `rpc` (`name`, `hmi_level_value`, `functional_group_id`) " - " VALUES (?, ?, ?)"; + "INSERT INTO `rpc` (`name`, `hmi_level_value`, `functional_group_id`) " + " VALUES (?, ?, ?)"; const std::string kInsertRpcWithParameter = - "INSERT INTO `rpc` (`name`, `hmi_level_value`, `parameter`, `functional_group_id`) " - " VALUES (?, ?, ?, ?)"; + "INSERT INTO `rpc` (`name`, `hmi_level_value`, `parameter`, " + "`functional_group_id`) " + " VALUES (?, ?, ?, ?)"; const std::string kInsertApplication = - "INSERT OR IGNORE INTO `application` (`id`, `priority_value`, `is_revoked`, `memory_kb`," - " `heart_beat_timeout_ms`, `certificate`) VALUES (?,?,?,?,?,?)"; + "INSERT OR IGNORE INTO `application` (`id`, `priority_value`, " + "`is_revoked`, `memory_kb`," + " `heart_beat_timeout_ms`, `certificate`) VALUES (?,?,?,?,?,?)"; const std::string kInsertAppGroup = - "INSERT INTO `app_group` (`application_id`, `functional_group_id`)" - " SELECT ?, `id` FROM `functional_group` WHERE `name` = ? LIMIT 1"; + "INSERT INTO `app_group` (`application_id`, `functional_group_id`)" + " SELECT ?, `id` FROM `functional_group` WHERE `name` = ? LIMIT 1"; const std::string kInsertNickname = - "INSERT OR IGNORE INTO `nickname` (`application_id`, `name`) VALUES (?, ?)"; + "INSERT OR IGNORE INTO `nickname` (`application_id`, `name`) VALUES (?, ?)"; const std::string kInsertAppType = - "INSERT OR IGNORE INTO `app_type` (`application_id`, `name`) VALUES (?, ?)"; + "INSERT OR IGNORE INTO `app_type` (`application_id`, `name`) VALUES (?, ?)"; const std::string kInsertRequestType = - "INSERT OR IGNORE INTO `request_type` (`application_id`, `request_type`) VALUES (?, ?)"; + "INSERT OR IGNORE INTO `request_type` (`application_id`, `request_type`) " + "VALUES (?, ?)"; const std::string kUpdateVersion = "UPDATE `version` SET `number`= ?"; const std::string kInsertMessageType = - "INSERT OR IGNORE INTO `message_type` (`name`) VALUES (?)"; + "INSERT OR IGNORE INTO `message_type` (`name`) VALUES (?)"; const std::string kInsertLanguage = - "INSERT OR IGNORE INTO `language` (`code`) VALUES (?)"; + "INSERT OR IGNORE INTO `language` (`code`) VALUES (?)"; const std::string kInsertMessageString = - "INSERT INTO `message` (`tts`, `label`, `line1`, `line2`, `language_code`, " - " `message_type_name`, `textBody`) VALUES (?, ?, ?, ?, ?, ?, ?)"; + "INSERT INTO `message` (`tts`, `label`, `line1`, `line2`, `language_code`, " + " `message_type_name`, `textBody`) VALUES (?, ?, ?, ?, ?, ?, ?)"; const std::string kUpdateModuleConfig = - "UPDATE `module_config` SET `preloaded_pt` = ?, " - " `exchange_after_x_ignition_cycles` = ?," - " `exchange_after_x_kilometers` = ?, `exchange_after_x_days` = ?, " - " `timeout_after_x_seconds` = ?, `certificate` = ?, `vehicle_make` = ?, " - " `vehicle_model` = ?, `vehicle_year` = ?"; + "UPDATE `module_config` SET `preloaded_pt` = ?, " + " `exchange_after_x_ignition_cycles` = ?," + " `exchange_after_x_kilometers` = ?, `exchange_after_x_days` = ?, " + " `timeout_after_x_seconds` = ?, `certificate` = ?, `vehicle_make` = ?, " + " `vehicle_model` = ?, `vehicle_year` = ?"; const std::string kInsertEndpoint = - "INSERT INTO `endpoint` (`service`, `url`, `application_id`) " - " VALUES (?, ?, ?)"; + "INSERT INTO `endpoint` (`service`, `url`, `application_id`) " + " VALUES (?, ?, ?)"; const std::string kInsertSecondsBetweenRetry = - "INSERT INTO `seconds_between_retry` (`index`, `value`) VALUES (?, ?)"; + "INSERT INTO `seconds_between_retry` (`index`, `value`) VALUES (?, ?)"; const std::string kInsertNotificationsByPriority = - "INSERT OR REPLACE INTO `notifications_by_priority` (`priority_value`, `value`) " - " VALUES (?, ?)"; + "INSERT OR REPLACE INTO `notifications_by_priority` (`priority_value`, " + "`value`) " + " VALUES (?, ?)"; const std::string kInsertDeviceData = - "INSERT OR IGNORE INTO `device` (`id`) VALUES (?)"; + "INSERT OR IGNORE INTO `device` (`id`) VALUES (?)"; const std::string kInsertAppLevel = - "INSERT INTO `app_level` (`application_id`, `minutes_in_hmi_full`," + "INSERT INTO `app_level` (`application_id`, `minutes_in_hmi_full`," "`minutes_in_hmi_limited` ,`minutes_in_hmi_background`," "`minutes_in_hmi_none`,`count_of_user_selections`," "`count_of_rejections_sync_out_of_memory`," @@ -529,10 +552,11 @@ const std::string kInsertAppLevel = "`count_of_rejections_duplicate_name`,`count_of_rejected_rpcs_calls`," "`count_of_rpcs_sent_in_hmi_none`,`count_of_removals_for_bad_behavior`," "`count_of_run_attempts_while_revoked`,`app_registration_language_gui`," - "`app_registration_language_vui`, `count_of_tls_errors`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + "`app_registration_language_vui`, `count_of_tls_errors`) " + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; const std::string kDeleteSecondsBetweenRetries = - "DELETE FROM `seconds_between_retry`"; + "DELETE FROM `seconds_between_retry`"; const std::string kDeleteEndpoint = "DELETE FROM `endpoint`"; @@ -547,17 +571,17 @@ const std::string kDeleteRpc = "DELETE FROM `rpc`"; const std::string kDeleteAppGroup = "DELETE FROM `app_group`"; const std::string kSelectModuleConfig = - "SELECT `preloaded_pt`, `exchange_after_x_ignition_cycles`, " - " `exchange_after_x_kilometers`, `exchange_after_x_days`, " - " `timeout_after_x_seconds`, `certificate`, `vehicle_make`," - " `vehicle_model`, `vehicle_year` " - " FROM `module_config`"; + "SELECT `preloaded_pt`, `exchange_after_x_ignition_cycles`, " + " `exchange_after_x_kilometers`, `exchange_after_x_days`, " + " `timeout_after_x_seconds`, `certificate`, `vehicle_make`," + " `vehicle_model`, `vehicle_year` " + " FROM `module_config`"; const std::string kSelectEndpoints = - "SELECT `url`, `service`, `application_id` FROM `endpoint` "; + "SELECT `url`, `service`, `application_id` FROM `endpoint` "; const std::string kSelectNotificationsPerMin = - "SELECT `priority_value`, `value` FROM notifications_by_priority"; + "SELECT `priority_value`, `value` FROM notifications_by_priority"; const std::string kSelectNotificationsPerPriority = "SELECT `value` FROM notifications_by_priority WHERE `priority_value` = ? "; @@ -567,108 +591,116 @@ const std::string kSelectAppLevels = "SELECT `application_id` FROM `app_level`"; const std::string kSelectDeviceData = "SELECT * FROM `device`"; const std::string kSelectFunctionalGroups = - "SELECT `id`,`name`, `user_consent_prompt` " - "FROM `functional_group`"; + "SELECT `id`,`name`, `user_consent_prompt` " + "FROM `functional_group`"; const std::string kSelectAllRpcs = - "SELECT `name`, `hmi_level_value`, `parameter` " - "FROM `rpc` WHERE `functional_group_id` = ? "; + "SELECT `name`, `hmi_level_value`, `parameter` " + "FROM `rpc` WHERE `functional_group_id` = ? "; const std::string kSelectUserMsgsVersion = - "SELECT DISTINCT `number` FROM `version`"; + "SELECT DISTINCT `number` FROM `version`"; -const std::string kSelectAppPolicies = "SELECT `id`, `priority_value`, `memory_kb`, " - " `heart_beat_timeout_ms`, `certificate` FROM `application`"; +const std::string kSelectAppPolicies = + "SELECT `id`, `priority_value`, `memory_kb`, " + " `heart_beat_timeout_ms`, `certificate` FROM `application`"; -const std::string kSelectAppGroups = "SELECT `f`.`name` FROM `app_group` AS `a`" - " LEFT JOIN `functional_group` AS `f` " - " ON (`f`.`id` = `a`.`functional_group_id`)" - " WHERE `a`.`application_id` = ?"; +const std::string kSelectAppGroups = + "SELECT `f`.`name` FROM `app_group` AS `a`" + " LEFT JOIN `functional_group` AS `f` " + " ON (`f`.`id` = `a`.`functional_group_id`)" + " WHERE `a`.`application_id` = ?"; -const std::string kSelectNicknames = "SELECT DISTINCT `name` FROM `nickname` " - "WHERE `application_id` = ?"; +const std::string kSelectNicknames = + "SELECT DISTINCT `name` FROM `nickname` " + "WHERE `application_id` = ?"; -const std::string kSelectAppTypes = "SELECT DISTINCT `name` FROM `app_type` " - "WHERE `application_id` = ?"; +const std::string kSelectAppTypes = + "SELECT DISTINCT `name` FROM `app_type` " + "WHERE `application_id` = ?"; const std::string kSelectRequestTypes = - "SELECT DISTINCT `request_type` FROM `request_type` WHERE `application_id` = ?"; + "SELECT DISTINCT `request_type` FROM `request_type` WHERE `application_id` " + "= ?"; const std::string kSelectSecondsBetweenRetries = - "SELECT `value` FROM `seconds_between_retry` ORDER BY `index`"; + "SELECT `value` FROM `seconds_between_retry` ORDER BY `index`"; const std::string kSelectIgnitionCycles = - "SELECT `c`.`exchange_after_x_ignition_cycles`, " - " `m`.`ignition_cycles_since_last_exchange` " - " FROM `module_config` AS `c`, `module_meta` AS `m` " - "LIMIT 1"; + "SELECT `c`.`exchange_after_x_ignition_cycles`, " + " `m`.`ignition_cycles_since_last_exchange` " + " FROM `module_config` AS `c`, `module_meta` AS `m` " + "LIMIT 1"; const std::string kSelectKilometers = - "SELECT `c`.`exchange_after_x_kilometers`, " - " `m`.`pt_exchanged_at_odometer_x` " - " FROM `module_config` AS `c`, `module_meta` AS `m` " - "LIMIT 1"; + "SELECT `c`.`exchange_after_x_kilometers`, " + " `m`.`pt_exchanged_at_odometer_x` " + " FROM `module_config` AS `c`, `module_meta` AS `m` " + "LIMIT 1"; -const std::string kSelectDays = "SELECT `c`.`exchange_after_x_days`, " - " `m`.`pt_exchanged_x_days_after_epoch` " - " FROM `module_config` AS `c`, `module_meta` AS `m` " - "LIMIT 1"; +const std::string kSelectDays = + "SELECT `c`.`exchange_after_x_days`, " + " `m`.`pt_exchanged_x_days_after_epoch` " + " FROM `module_config` AS `c`, `module_meta` AS `m` " + "LIMIT 1"; const std::string kIncrementIgnitionCycles = - "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 1 + " - " `ignition_cycles_since_last_exchange`"; + "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 1 + " + " `ignition_cycles_since_last_exchange`"; const std::string kResetIgnitionCycles = - "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 0"; + "UPDATE `module_meta` SET `ignition_cycles_since_last_exchange` = 0"; const std::string kSelectTimeoutResponse = - "SELECT `timeout_after_x_seconds` FROM `module_config` LIMIT 1"; + "SELECT `timeout_after_x_seconds` FROM `module_config` LIMIT 1"; const std::string kUpdateFlagUpdateRequired = - "UPDATE `module_meta` SET `flag_update_required` = ?"; + "UPDATE `module_meta` SET `flag_update_required` = ?"; const std::string kSelectFlagUpdateRequired = - "SELECT `flag_update_required` FROM `module_meta` LIMIT 1"; + "SELECT `flag_update_required` FROM `module_meta` LIMIT 1"; const std::string kUpdateCountersSuccessfulUpdate = - "UPDATE `module_meta` SET `pt_exchanged_at_odometer_x` = ?," - "`pt_exchanged_x_days_after_epoch` = ?"; + "UPDATE `module_meta` SET `pt_exchanged_at_odometer_x` = ?," + "`pt_exchanged_x_days_after_epoch` = ?"; const std::string kDeleteApplication = "DELETE FROM `application`"; const std::string kDeleteRequestType = "DELETE FROM `request_type`"; const std::string kSelectApplicationRevoked = - "SELECT `is_revoked` FROM `application` WHERE `id` = ?"; + "SELECT `is_revoked` FROM `application` WHERE `id` = ?"; const std::string kUpdateApplicationCustomData = - "UPDATE `application` SET `is_revoked` = ?, `is_default` = ?," - "`is_predata` = ? WHERE `id` = ?"; + "UPDATE `application` SET `is_revoked` = ?, `is_default` = ?," + "`is_predata` = ? WHERE `id` = ?"; const std::string kSelectApplicationRepresented = - "SELECT COUNT(`id`) FROM `application` WHERE `id` = ?"; + "SELECT COUNT(`id`) FROM `application` WHERE `id` = ?"; const std::string kSelectApplicationIsDefault = - "SELECT `is_default` FROM `application` WHERE `id` = ?"; + "SELECT `is_default` FROM `application` WHERE `id` = ?"; const std::string kUpdateIsDefault = - "UPDATE `application` SET `is_default` = ? WHERE `id` = ?"; + "UPDATE `application` SET `is_default` = ? WHERE `id` = ?"; const std::string kDeleteDevice = "DELETE FROM `device` WHERE `id` = ?"; const std::string kDeleteAppGroupByApplicationId = - "DELETE FROM `app_group` WHERE `application_id` = ?"; + "DELETE FROM `app_group` WHERE `application_id` = ?"; const std::string kInsertApplicationFull = - "INSERT OR IGNORE INTO `application` (`id`, `keep_context`, `steal_focus`, " - " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, `is_predata`, " - " `memory_kb`, `heart_beat_timeout_ms`, `certificate`) " - " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + "INSERT OR IGNORE INTO `application` (`id`, `keep_context`, `steal_focus`, " + " `default_hmi`, `priority_value`, `is_revoked`, `is_default`, " + "`is_predata`, " + " `memory_kb`, `heart_beat_timeout_ms`, `certificate`) " + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; const std::string kSelectApplicationFull = - "SELECT `keep_context`, `steal_focus`, `default_hmi`, `priority_value`, " - " `is_revoked`, `is_default`, `is_predata`, `memory_kb`," - " `heart_beat_timeout_ms`, `certificate` FROM `application` WHERE `id` = ?"; + "SELECT `keep_context`, `steal_focus`, `default_hmi`, `priority_value`, " + " `is_revoked`, `is_default`, `is_predata`, `memory_kb`," + " `heart_beat_timeout_ms`, `certificate` FROM `application` WHERE `id` = " + "?"; const std::string kSelectDBVersion = "SELECT `db_version_hash` from `_internal_data`"; @@ -678,4 +710,3 @@ const std::string kUpdateDBVersion = } // namespace sql_pt } // namespace policy - diff --git a/src/components/policy/src/policy/src/update_status_manager.cc b/src/components/policy/src/policy/src/update_status_manager.cc index 2f805cbfcb..f821b9655b 100644 --- a/src/components/policy/src/policy/src/update_status_manager.cc +++ b/src/components/policy/src/policy/src/update_status_manager.cc @@ -34,20 +34,21 @@ #include "policy/policy_listener.h" #include "utils/logger.h" -namespace policy { +namespace policy { CREATE_LOGGERPTR_GLOBAL(logger_, "Policy") -UpdateStatusManager::UpdateStatusManager() : - listener_(NULL), - exchange_in_progress_(false), - update_required_(false), - update_scheduled_(false), - exchange_pending_(false), - apps_search_in_progress_(false), - last_update_status_(policy::StatusUnknown) { +UpdateStatusManager::UpdateStatusManager() + : listener_(NULL) + , exchange_in_progress_(false) + , update_required_(false) + , update_scheduled_(false) + , exchange_pending_(false) + , apps_search_in_progress_(false) + , last_update_status_(policy::StatusUnknown) { update_status_thread_delegate_ = new UpdateThreadDelegate(this); - thread_ = threads::CreateThread("UpdateStatusThread", update_status_thread_delegate_); + thread_ = threads::CreateThread("UpdateStatusThread", + update_status_thread_delegate_); thread_->start(); } @@ -81,19 +82,19 @@ void UpdateStatusManager::OnUpdateTimeoutOccurs() { set_exchange_in_progress(false); set_exchange_pending(false); DCHECK(update_status_thread_delegate_); - update_status_thread_delegate_->updateTimeOut(0); // Stop Timer + update_status_thread_delegate_->updateTimeOut(0); // Stop Timer } void UpdateStatusManager::OnValidUpdateReceived() { LOG4CXX_AUTO_TRACE(logger_); - update_status_thread_delegate_->updateTimeOut(0); // Stop Timer + update_status_thread_delegate_->updateTimeOut(0); // Stop Timer set_exchange_pending(false); set_exchange_in_progress(false); } void UpdateStatusManager::OnWrongUpdateReceived() { LOG4CXX_AUTO_TRACE(logger_); - update_status_thread_delegate_->updateTimeOut(0); // Stop Timer + update_status_thread_delegate_->updateTimeOut(0); // Stop Timer set_update_required(true); set_exchange_in_progress(false); set_exchange_pending(false); @@ -163,9 +164,7 @@ std::string UpdateStatusManager::StringifiedUpdateStatus() const { return "UPDATE_NEEDED"; case policy::StatusUpToDate: return "UP_TO_DATE"; - default: { - return "UNKNOWN"; - } + default: { return "UNKNOWN"; } } } @@ -220,11 +219,12 @@ void UpdateStatusManager::set_update_required(bool value) { CheckUpdateStatus(); } -UpdateStatusManager::UpdateThreadDelegate::UpdateThreadDelegate(UpdateStatusManager* update_status_manager): - timeout_(0), - stop_flag_(false), - state_lock_(true), - update_status_manager_(update_status_manager) { +UpdateStatusManager::UpdateThreadDelegate::UpdateThreadDelegate( + UpdateStatusManager* update_status_manager) + : timeout_(0) + , stop_flag_(false) + , state_lock_(true) + , update_status_manager_(update_status_manager) { LOG4CXX_INFO(logger_, "Create UpdateThreadDelegate"); } @@ -239,8 +239,8 @@ void UpdateStatusManager::UpdateThreadDelegate::threadMain() { if (timeout_ > 0) { LOG4CXX_DEBUG(logger_, "Timeout is greater then 0"); sync_primitives::ConditionalVariable::WaitStatus wait_status = - termination_condition_.WaitFor(auto_lock, timeout_); - if (sync_primitives::ConditionalVariable::kTimeout == wait_status ) { + termination_condition_.WaitFor(auto_lock, timeout_); + if (sync_primitives::ConditionalVariable::kTimeout == wait_status) { if (update_status_manager_) { update_status_manager_->OnUpdateTimeoutOccurs(); } @@ -260,10 +260,11 @@ void UpdateStatusManager::UpdateThreadDelegate::exitThreadMain() { termination_condition_.NotifyOne(); } -void UpdateStatusManager::UpdateThreadDelegate::updateTimeOut(const uint32_t timeout_ms) { +void UpdateStatusManager::UpdateThreadDelegate::updateTimeOut( + const uint32_t timeout_ms) { sync_primitives::AutoLock auto_lock(state_lock_); timeout_ = timeout_ms; termination_condition_.NotifyOne(); } -} // namespace policy +} // namespace policy diff --git a/src/components/policy/test/include/driver_dbms.h b/src/components/policy/test/include/driver_dbms.h index 5b1a0553dd..edd183dbd4 100644 --- a/src/components/policy/test/include/driver_dbms.h +++ b/src/components/policy/test/include/driver_dbms.h @@ -33,9 +33,9 @@ #define SRC_COMPONENTS_POLICY_TEST_INCLUDE_DRIVER_DBMS_H_ #ifdef __QNX__ -# include <qdb/qdb.h> +#include <qdb/qdb.h> #else // __QNX__ -# include <sqlite3.h> +#include <sqlite3.h> #endif // __QNX__ namespace test { @@ -45,8 +45,7 @@ namespace policy { #ifdef __QNX__ class DBMS { public: - explicit DBMS(std::string db_name) : db_name_(db_name), conn_(0) { - } + explicit DBMS(std::string db_name) : db_name_(db_name), conn_(0) {} ~DBMS() { Close(); } @@ -61,7 +60,7 @@ class DBMS { return -1 != qdb_statement(conn_, query); } int FetchOneInt(const char* query) { - int stmt = qdb_stmt_init(conn_, query, strlen(query)+1); + int stmt = qdb_stmt_init(conn_, query, strlen(query) + 1); qdb_stmt_exec(conn_, stmt, NULL, 0); qdb_result_t* res = qdb_getresult(conn_); void* ret = qdb_cell(res, 0, 0); @@ -73,7 +72,7 @@ class DBMS { return value; } double FetchOneDouble(const char* query) { - int stmt = qdb_stmt_init(conn_, query, strlen(query)+1); + int stmt = qdb_stmt_init(conn_, query, strlen(query) + 1); qdb_stmt_exec(conn_, stmt, NULL, 0); qdb_result_t* res = qdb_getresult(conn_); void* ret = qdb_cell(res, 0, 0); @@ -86,7 +85,7 @@ class DBMS { return value; } std::string FetchOneString(const char* query) { - int stmt = qdb_stmt_init(conn_, query, strlen(query)+1); + int stmt = qdb_stmt_init(conn_, query, strlen(query) + 1); qdb_stmt_exec(conn_, stmt, NULL, 0); qdb_result_t* res = qdb_getresult(conn_); void* ret = qdb_cell(res, 0, 0); @@ -104,11 +103,10 @@ class DBMS { qdb_hdl_t* conn_; }; -#else // __QNX__ +#else // __QNX__ class DBMS { public: - explicit DBMS(std::string file_name) : file_name_(file_name), conn_(0) { - } + explicit DBMS(std::string file_name) : file_name_(file_name), conn_(0) {} ~DBMS() { Close(); } diff --git a/src/components/policy/test/include/mock_cache_manager.h b/src/components/policy/test/include/mock_cache_manager.h index 078da63d8c..095319a090 100644 --- a/src/components/policy/test/include/mock_cache_manager.h +++ b/src/components/policy/test/include/mock_cache_manager.h @@ -32,7 +32,6 @@ #ifndef SRC_COMPONENTS_POLICY_TEST_POLICY_INCLUDE_MOCK_CACHE_MANAGER_H_ #define SRC_COMPONENTS_POLICY_TEST_POLICY_INCLUDE_MOCK_CACHE_MANAGER_H_ - #include <string> #include <vector> @@ -47,150 +46,157 @@ namespace policy { class MockCacheManagerInterface : public CacheManagerInterface { public: MOCK_METHOD4(CheckPermissions, - void(const PTString& app_id, const PTString& hmi_level, const PTString& rpc, CheckPermissionResult& result)); - MOCK_METHOD0(IsPTPreloaded, - bool()); - MOCK_METHOD0(IgnitionCyclesBeforeExchange, - int()); - MOCK_METHOD1(KilometersBeforeExchange, - int(int current)); + void(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + CheckPermissionResult& result)); + MOCK_METHOD0(IsPTPreloaded, bool()); + MOCK_METHOD0(IgnitionCyclesBeforeExchange, int()); + MOCK_METHOD1(KilometersBeforeExchange, int(int current)); MOCK_METHOD2(SetCountersPassedForSuccessfulUpdate, - bool(Counters counter, int value)); - MOCK_METHOD1(DaysBeforeExchange, - int(int current)); - MOCK_METHOD0(IncrementIgnitionCycles, - void()); - MOCK_METHOD0(ResetIgnitionCycles, - void()); - MOCK_METHOD0(TimeoutResponse, - int()); - MOCK_METHOD1(SecondsBetweenRetries, - bool(std::vector<int> &seconds)); - MOCK_CONST_METHOD0(GetVehicleInfo, - const VehicleInfo()); - MOCK_METHOD1(SetVINValue, - bool(const std::string& value)); + bool(Counters counter, int value)); + MOCK_METHOD1(DaysBeforeExchange, int(int current)); + MOCK_METHOD0(IncrementIgnitionCycles, void()); + MOCK_METHOD0(ResetIgnitionCycles, void()); + MOCK_METHOD0(TimeoutResponse, int()); + MOCK_METHOD1(SecondsBetweenRetries, bool(std::vector<int>& seconds)); + MOCK_CONST_METHOD0(GetVehicleInfo, const VehicleInfo()); + MOCK_METHOD1(SetVINValue, bool(const std::string& value)); MOCK_METHOD2(GetUserFriendlyMsg, - std::vector<UserFriendlyMessage>(const std::vector<std::string>& msg_codes, const std::string& language)); - MOCK_METHOD2(GetUpdateUrls, - void(int service_type, EndpointUrls& end_points)); - MOCK_METHOD1(GetNotificationsNumber, + std::vector<UserFriendlyMessage>( + const std::vector<std::string>& msg_codes, + const std::string& language)); + MOCK_METHOD2(GetUpdateUrls, void(int service_type, EndpointUrls& end_points)); + MOCK_METHOD1( + GetNotificationsNumber, policy_table::NumberOfNotificationsType(const std::string& priority)); MOCK_CONST_METHOD2(GetPriority, - bool(const std::string& policy_app_id, std::string& priority)); + bool(const std::string& policy_app_id, + std::string& priority)); MOCK_METHOD2(GetServiceUrls, - void(const std::string& service_type, EndpointUrls& end_points)); - MOCK_CONST_METHOD0(GetLockScreenIconUrl, - std::string()); + void(const std::string& service_type, EndpointUrls& end_points)); + MOCK_CONST_METHOD0(GetLockScreenIconUrl, std::string()); MOCK_METHOD2(Init, - bool(const std::string& file_name, const PolicySettings* settings)); - MOCK_METHOD0(GenerateSnapshot, - utils::SharedPtr<policy_table::Table>()); - MOCK_METHOD1(ApplyUpdate, - bool(const policy_table::Table& update_pt)); - MOCK_METHOD1(Save, - bool(const policy_table::Table& table)); - MOCK_CONST_METHOD0(UpdateRequired, - bool()); - MOCK_METHOD1(SaveUpdateRequired, - void(bool status)); + bool(const std::string& file_name, + const PolicySettings* settings)); + MOCK_METHOD0(GenerateSnapshot, utils::SharedPtr<policy_table::Table>()); + MOCK_METHOD1(ApplyUpdate, bool(const policy_table::Table& update_pt)); + MOCK_METHOD1(Save, bool(const policy_table::Table& table)); + MOCK_CONST_METHOD0(UpdateRequired, bool()); + MOCK_METHOD1(SaveUpdateRequired, void(bool status)); MOCK_METHOD3(GetInitialAppData, - bool(const std::string& app_id, StringArray& nicknames, StringArray& app_hmi_types)); - MOCK_CONST_METHOD1(IsApplicationRevoked, - bool(const std::string& app_id)); + bool(const std::string& app_id, + StringArray& nicknames, + StringArray& app_hmi_types)); + MOCK_CONST_METHOD1(IsApplicationRevoked, bool(const std::string& app_id)); MOCK_METHOD1(GetFunctionalGroupings, - bool(policy_table::FunctionalGroupings& groups)); - MOCK_CONST_METHOD1(IsApplicationRepresented, - bool(const std::string& app_id)); - MOCK_METHOD1(IsDefaultPolicy, - bool(const std::string& app_id)); - MOCK_METHOD1(SetIsDefault, - bool(const std::string& app_id)); - MOCK_METHOD1(IsPredataPolicy, - bool(const std::string& app_id)); - MOCK_METHOD1(SetDefaultPolicy, - bool(const std::string& app_id)); - MOCK_CONST_METHOD1(CanAppKeepContext, - bool(const std::string& app_id)); - MOCK_CONST_METHOD1(CanAppStealFocus, - bool(const std::string& app_id)); + bool(policy_table::FunctionalGroupings& groups)); + MOCK_CONST_METHOD1(IsApplicationRepresented, bool(const std::string& app_id)); + MOCK_METHOD1(IsDefaultPolicy, bool(const std::string& app_id)); + MOCK_METHOD1(SetIsDefault, bool(const std::string& app_id)); + MOCK_METHOD1(IsPredataPolicy, bool(const std::string& app_id)); + MOCK_METHOD1(SetDefaultPolicy, bool(const std::string& app_id)); + MOCK_CONST_METHOD1(CanAppKeepContext, bool(const std::string& app_id)); + MOCK_CONST_METHOD1(CanAppStealFocus, bool(const std::string& app_id)); MOCK_CONST_METHOD2(GetDefaultHMI, - bool(const std::string& app_id, std::string &default_hmi)); - MOCK_METHOD0(ResetUserConsent, - bool()); + bool(const std::string& app_id, std::string& default_hmi)); + MOCK_METHOD0(ResetUserConsent, bool()); MOCK_CONST_METHOD3(GetUserPermissionsForDevice, - bool(const std::string& device_id, StringArray &consented_groups, StringArray &disallowed_groups)); + bool(const std::string& device_id, + StringArray& consented_groups, + StringArray& disallowed_groups)); MOCK_METHOD3(GetPermissionsForApp, - bool(const std::string& device_id, const std::string& app_id, FunctionalIdType &group_types)); - MOCK_CONST_METHOD2(GetDeviceGroupsFromPolicies, - bool(rpc::policy_table_interface_base::Strings &groups, rpc::policy_table_interface_base::Strings &preconsented_groups)); + bool(const std::string& device_id, + const std::string& app_id, + FunctionalIdType& group_types)); + MOCK_CONST_METHOD2( + GetDeviceGroupsFromPolicies, + bool(rpc::policy_table_interface_base::Strings& groups, + rpc::policy_table_interface_base::Strings& preconsented_groups)); MOCK_METHOD2(AddDevice, - bool(const std::string& device_id, const std::string& connection_type)); + bool(const std::string& device_id, + const std::string& connection_type)); MOCK_METHOD8(SetDeviceData, - bool(const std::string& device_id, const std::string& hardware, const std::string& firmware, const std::string& os, const std::string& os_version, const std::string& carrier, const uint32_t number_of_ports, const std::string& connection_type)); + bool(const std::string& device_id, + const std::string& hardware, + const std::string& firmware, + const std::string& os, + const std::string& os_version, + const std::string& carrier, + const uint32_t number_of_ports, + const std::string& connection_type)); MOCK_METHOD3(SetUserPermissionsForDevice, - bool(const std::string& device_id, const StringArray& consented_groups, const StringArray& disallowed_groups)); + bool(const std::string& device_id, + const StringArray& consented_groups, + const StringArray& disallowed_groups)); MOCK_METHOD2(ReactOnUserDevConsentForApp, - bool(const std::string& app_id, bool is_device_allowed)); + bool(const std::string& app_id, bool is_device_allowed)); MOCK_METHOD1(SetUserPermissionsForApp, - bool(const PermissionConsent& permissions)); + bool(const PermissionConsent& permissions)); MOCK_METHOD3(SetMetaInfo, - bool(const std::string& ccpu_version, const std::string& wers_country_code, const std::string& language)); - MOCK_CONST_METHOD0(IsMetaInfoPresent, - bool()); - MOCK_METHOD1(SetSystemLanguage, - bool(const std::string& language)); - MOCK_METHOD1(Increment, - void(usage_statistics::GlobalCounterId type)); + bool(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language)); + MOCK_CONST_METHOD0(IsMetaInfoPresent, bool()); + MOCK_METHOD1(SetSystemLanguage, bool(const std::string& language)); + MOCK_METHOD1(Increment, void(usage_statistics::GlobalCounterId type)); MOCK_METHOD2(Increment, - void(const std::string& app_id, usage_statistics::AppCounterId type)); + void(const std::string& app_id, + usage_statistics::AppCounterId type)); MOCK_METHOD3(Set, - void(const std::string& app_id, usage_statistics::AppInfoId type, const std::string& value)); + void(const std::string& app_id, + usage_statistics::AppInfoId type, + const std::string& value)); MOCK_METHOD3(Add, - void(const std::string& app_id, usage_statistics::AppStopwatchId type, int seconds)); + void(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int seconds)); MOCK_METHOD2(CountUnconsentedGroups, - int(const std::string& policy_app_id, const std::string& device_id)); - MOCK_METHOD1(GetFunctionalGroupNames, - bool(FunctionalGroupNames& names)); + int(const std::string& policy_app_id, + const std::string& device_id)); + MOCK_METHOD1(GetFunctionalGroupNames, bool(FunctionalGroupNames& names)); MOCK_METHOD2(GetAllAppGroups, - void(const std::string& app_id, FunctionalGroupIDs& all_group_ids)); + void(const std::string& app_id, + FunctionalGroupIDs& all_group_ids)); MOCK_METHOD2(GetPreConsentedGroups, - void(const std::string &app_id, FunctionalGroupIDs& preconsented_groups)); + void(const std::string& app_id, + FunctionalGroupIDs& preconsented_groups)); MOCK_METHOD4(GetConsentedGroups, - void(const std::string &device_id, const std::string &app_id, FunctionalGroupIDs& allowed_groups, FunctionalGroupIDs& disallowed_groups)); + void(const std::string& device_id, + const std::string& app_id, + FunctionalGroupIDs& allowed_groups, + FunctionalGroupIDs& disallowed_groups)); MOCK_METHOD3(GetUnconsentedGroups, - void(const std::string& device_id, const std::string& policy_app_id, FunctionalGroupIDs& unconsented_groups)); + void(const std::string& device_id, + const std::string& policy_app_id, + FunctionalGroupIDs& unconsented_groups)); MOCK_METHOD2(RemoveAppConsentForGroup, - void(const std::string& app_id, const std::string& group_name)); - MOCK_METHOD1(SetPredataPolicy, - bool(const std::string& app_id)); - MOCK_METHOD0(CleanupUnpairedDevices, - bool()); + void(const std::string& app_id, const std::string& group_name)); + MOCK_METHOD1(SetPredataPolicy, bool(const std::string& app_id)); + MOCK_METHOD0(CleanupUnpairedDevices, bool()); MOCK_METHOD2(SetUnpairedDevice, - bool(const std::string& device_id, bool unpaired)); - MOCK_METHOD1(UnpairedDevicesList, - bool(DeviceIds& device_ids)); - MOCK_METHOD1(ResetPT, - bool(const std::string& file_name)); - MOCK_METHOD0(LoadFromBackup, - bool()); + bool(const std::string& device_id, bool unpaired)); + MOCK_METHOD1(UnpairedDevicesList, bool(DeviceIds& device_ids)); + MOCK_METHOD1(ResetPT, bool(const std::string& file_name)); + MOCK_METHOD0(LoadFromBackup, bool()); MOCK_METHOD2(LoadFromFile, - bool(const std::string& file_name, policy_table::Table&)); - MOCK_METHOD0(Backup, - void()); - MOCK_CONST_METHOD1(HeartBeatTimeout, - uint32_t(const std::string& app_id)); + bool(const std::string& file_name, policy_table::Table&)); + MOCK_METHOD0(Backup, void()); + MOCK_CONST_METHOD1(HeartBeatTimeout, uint32_t(const std::string& app_id)); MOCK_CONST_METHOD2(GetAppRequestTypes, - void(const std::string& policy_app_id, - std::vector<std::string>& request_types)); + void(const std::string& policy_app_id, + std::vector<std::string>& request_types)); MOCK_METHOD1(GetHMIAppTypeAfterUpdate, - void(std::map<std::string, StringArray>& app_hmi_types)); - MOCK_METHOD0(ResetCalculatedPermissions, - void()); + void(std::map<std::string, StringArray>& app_hmi_types)); + MOCK_METHOD0(ResetCalculatedPermissions, void()); MOCK_METHOD3(AddCalculatedPermissions, - void(const std::string& device_id, const std::string& policy_app_id, const policy::Permissions& permissions)); + void(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions)); MOCK_METHOD3(IsPermissionsCalculated, - bool(const std::string& device_id, const std::string& policy_app_id, policy::Permissions& permission)); + bool(const std::string& device_id, + const std::string& policy_app_id, + policy::Permissions& permission)); MOCK_CONST_METHOD0(GetPT, utils::SharedPtr<policy_table::Table>()); MOCK_CONST_METHOD0(GetCertificate, std::string()); MOCK_METHOD1(SetDecryptedCertificate, void(const std::string&)); diff --git a/src/components/policy/test/include/mock_policy_manager.h b/src/components/policy/test/include/mock_policy_manager.h index f6dd9c3279..579e15fcca 100644 --- a/src/components/policy/test/include/mock_policy_manager.h +++ b/src/components/policy/test/include/mock_policy_manager.h @@ -53,8 +53,9 @@ using namespace policy; class MockPolicyManager : public PolicyManager { public: MOCK_METHOD1(set_listener, void(PolicyListener* listener)); - MOCK_METHOD2(InitPT, bool(const std::string& file_name, - const PolicySettings* settings)); + MOCK_METHOD2(InitPT, + bool(const std::string& file_name, + const PolicySettings* settings)); MOCK_METHOD2(LoadPT, bool(const std::string& file, const BinaryMessage& pt_content)); MOCK_METHOD1(ResetPT, bool(const std::string& file_name)); @@ -62,8 +63,10 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD2(GetUpdateUrls, void(int service_type, EndpointUrls& end_points)); MOCK_METHOD0(RequestPTUpdate, bool()); MOCK_METHOD5(CheckPermissions, - void(const PTString& app_id, const PTString& hmi_level, - const PTString& rpc, const RPCParams& rpc_params, + void(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + const RPCParams& rpc_params, CheckPermissionResult& result)); MOCK_METHOD0(ResetUserConsent, bool()); MOCK_CONST_METHOD0(GetPolicyTableStatus, std::string()); @@ -77,11 +80,12 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD0(OnExceededTimeout, void()); MOCK_METHOD0(OnUpdateStarted, void()); MOCK_CONST_METHOD1(GetUserConsentForDevice, - DeviceConsent(const std::string& device_id)); - MOCK_METHOD3(GetUserConsentForApp, - void(const std::string& device_id, - const std::string& policy_app_id, - std::vector<policy::FunctionalGroupPermission>& permissions)); + DeviceConsent(const std::string& device_id)); + MOCK_METHOD3( + GetUserConsentForApp, + void(const std::string& device_id, + const std::string& policy_app_id, + std::vector<policy::FunctionalGroupPermission>& permissions)); MOCK_METHOD2(SetUserConsentForDevice, void(const std::string& device_id, bool is_allowed)); MOCK_METHOD2(ReactOnUserDevConsentForApp, @@ -89,36 +93,44 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD2(PTUpdatedAt, void(policy::Counters counter, int value)); MOCK_METHOD3(GetInitialAppData, - bool(const std::string&, policy::StringArray*, policy::StringArray*)); + bool(const std::string&, + policy::StringArray*, + policy::StringArray*)); - MOCK_METHOD2(AddDevice, void(const std::string& device_id, - const std::string& connection_type)); - MOCK_METHOD2(SetDeviceInfo, void(const std::string& device_id, - const policy::DeviceInfo& device_info)); + MOCK_METHOD2(AddDevice, + void(const std::string& device_id, + const std::string& connection_type)); + MOCK_METHOD2(SetDeviceInfo, + void(const std::string& device_id, + const policy::DeviceInfo& device_info)); MOCK_METHOD1(SetUserConsentForApp, void(const policy::PermissionConsent& permissions)); - MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, - std::string* default_hmi)); + MOCK_CONST_METHOD2(GetDefaultHmi, + bool(const std::string& policy_app_id, + std::string* default_hmi)); MOCK_CONST_METHOD2(GetPriority, - bool(const std::string& policy_app_id, std::string* priority)); + bool(const std::string& policy_app_id, + std::string* priority)); MOCK_METHOD2(GetUserFriendlyMessages, std::vector<policy::UserFriendlyMessage>( const std::vector<std::string>& message_code, const std::string& language)); MOCK_CONST_METHOD1(IsApplicationRevoked, bool(const std::string& app_id)); - MOCK_METHOD3(GetPermissionsForApp, - void(const std::string& device_id, - const std::string& policy_app_id, - std::vector<policy::FunctionalGroupPermission>& permissions)); + MOCK_METHOD3( + GetPermissionsForApp, + void(const std::string& device_id, + const std::string& policy_app_id, + std::vector<policy::FunctionalGroupPermission>& permissions)); MOCK_METHOD1(GetAppPermissionsChanges, policy::AppPermissions(const std::string& policy_app_id)); MOCK_METHOD1(RemovePendingPermissionChanges, void(const std::string& app_id)); MOCK_CONST_METHOD1(GetCurrentDeviceId, - std::string&(const std::string& policy_app_id)); + std::string&(const std::string& policy_app_id)); MOCK_METHOD1(SetSystemLanguage, void(const std::string& language)); - MOCK_METHOD3(SetSystemInfo, void(const std::string& ccpu_version, - const std::string& wers_country_code, - const std::string& language)); + MOCK_METHOD3(SetSystemInfo, + void(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& language)); MOCK_METHOD1(SendNotificationOnPermissionsUpdated, void(const std::string& application_id)); MOCK_METHOD1(MarkUnpairedDevice, void(const std::string& device_id)); @@ -127,7 +139,8 @@ class MockPolicyManager : public PolicyManager { MOCK_CONST_METHOD1(CanAppKeepContext, bool(const std::string& app_id)); MOCK_CONST_METHOD1(CanAppStealFocus, bool(const std::string& app_id)); MOCK_METHOD0(OnSystemReady, void()); - MOCK_CONST_METHOD1(GetNotificationsNumber, uint32_t(const std::string& priority)); + MOCK_CONST_METHOD1(GetNotificationsNumber, + uint32_t(const std::string& priority)); MOCK_METHOD1(SetVINValue, void(const std::string& value)); MOCK_METHOD1(IsPredataPolicy, bool(const std::string& policy_app_id)); MOCK_CONST_METHOD1(HeartBeatTimeout, uint32_t(const std::string& app_id)); @@ -136,23 +149,27 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD0(OnAppsSearchCompleted, void()); MOCK_METHOD1(OnAppRegisteredOnMobile, void(const std::string& application_id)); - MOCK_CONST_METHOD1(GetAppRequestTypes, const std::vector<std::string>( - const std::string policy_app_id)); + MOCK_CONST_METHOD1( + GetAppRequestTypes, + const std::vector<std::string>(const std::string policy_app_id)); MOCK_CONST_METHOD0(GetVehicleInfo, const policy::VehicleInfo()); MOCK_CONST_METHOD0(RetrieveCertificate, std::string()); - MOCK_METHOD1 (SetDecryptedCertificate, void(const std::string&)); + MOCK_METHOD1(SetDecryptedCertificate, void(const std::string&)); MOCK_METHOD0(ExceededIgnitionCycles, bool()); MOCK_METHOD0(ExceededDays, bool()); MOCK_METHOD0(StartPTExchange, void()); MOCK_METHOD1(Increment, void(usage_statistics::GlobalCounterId type)); - MOCK_METHOD2(Increment, void(const std::string& app_id, - usage_statistics::AppCounterId type)); + MOCK_METHOD2(Increment, + void(const std::string& app_id, + usage_statistics::AppCounterId type)); MOCK_METHOD3(Set, - void(const std::string& app_id, usage_statistics::AppInfoId type, + void(const std::string& app_id, + usage_statistics::AppInfoId type, const std::string& value)); - MOCK_METHOD3(Add, void(const std::string& app_id, - usage_statistics::AppStopwatchId type, - int32_t timespan_seconds)); + MOCK_METHOD3(Add, + void(const std::string& app_id, + usage_statistics::AppStopwatchId type, + int32_t timespan_seconds)); MOCK_CONST_METHOD0(get_settings, const PolicySettings&()); MOCK_METHOD1(set_settings, void(const PolicySettings* get_settings)); }; diff --git a/src/components/policy/test/include/mock_pt_ext_representation.h b/src/components/policy/test/include/mock_pt_ext_representation.h index 17a46cb0f6..bafce1471a 100644 --- a/src/components/policy/test/include/mock_pt_ext_representation.h +++ b/src/components/policy/test/include/mock_pt_ext_representation.h @@ -32,7 +32,6 @@ #ifndef SRC_COMPONENTS_POLICY_TEST_POLICY_INCLUDE_MOCK_PT_EXT_REPRESENTATION_H_ #define SRC_COMPONENTS_POLICY_TEST_POLICY_INCLUDE_MOCK_PT_EXT_REPRESENTATION_H_ - #include <string> #include <vector> @@ -47,84 +46,92 @@ namespace policy_table = ::rpc::policy_table_interface_base; namespace policy { class MockPTExtRepresentation : public MockPTRepresentation, - public PTExtRepresentation { + public PTExtRepresentation { public: - MOCK_METHOD1(CanAppKeepContext, - bool(const std::string& app_id)); - MOCK_METHOD1(CanAppStealFocus, - bool(const std::string& app_id)); + MOCK_METHOD1(CanAppKeepContext, bool(const std::string& app_id)); + MOCK_METHOD1(CanAppStealFocus, bool(const std::string& app_id)); MOCK_METHOD2(GetDefaultHMI, - bool(const std::string& app_id, std::string* default_hmi)); - MOCK_METHOD0(ResetUserConsent, - bool()); + bool(const std::string& app_id, std::string* default_hmi)); + MOCK_METHOD0(ResetUserConsent, bool()); MOCK_METHOD0(ResetDeviceConsents, bool()); MOCK_METHOD0(ResetAppConsents, bool()); MOCK_METHOD3(GetUserPermissionsForDevice, - bool(const std::string&, StringArray*, StringArray*)); + bool(const std::string&, StringArray*, StringArray*)); MOCK_METHOD3(GetPermissionsForApp, - bool(const std::string&, const std::string&, - FunctionalIdType* group_types)); + bool(const std::string&, + const std::string&, + FunctionalIdType* group_types)); MOCK_METHOD2(GetDeviceGroupsFromPolicies, - bool(policy_table::Strings*, policy_table::Strings*)); - MOCK_METHOD2(GetUserFriendlyMsg, + bool(policy_table::Strings*, policy_table::Strings*)); + MOCK_METHOD2( + GetUserFriendlyMsg, std::vector<UserFriendlyMessage>(const std::vector<std::string>& msg_code, - const std::string& language)); - MOCK_METHOD8(SetDeviceData, bool(const std::string& device_id, - const std::string& hardware, - const std::string& firmware, - const std::string& os, - const std::string& os_version, - const std::string& carrier, - const uint32_t number_of_ports, - const std::string& connection_type)); + const std::string& language)); + MOCK_METHOD8(SetDeviceData, + bool(const std::string& device_id, + const std::string& hardware, + const std::string& firmware, + const std::string& os, + const std::string& os_version, + const std::string& carrier, + const uint32_t number_of_ports, + const std::string& connection_type)); MOCK_METHOD6(SetDeviceData, - bool(const std::string&, const std::string&, const std::string&, const std::string&, const std::string&, const std::string&)); + bool(const std::string&, + const std::string&, + const std::string&, + const std::string&, + const std::string&, + const std::string&)); MOCK_METHOD2(SetMaxNumberPorts, - bool(const std::string& device_id, unsigned int number_of_ports)); + bool(const std::string& device_id, + unsigned int number_of_ports)); MOCK_METHOD3(SetUserPermissionsForDevice, - bool(const std::string&, const StringArray&, const StringArray&)); - MOCK_METHOD1(SetUserPermissionsForApp, - bool(const PermissionConsent&)); - MOCK_METHOD1(IncreaseStatisticsData, - bool(StatisticsType type)); + bool(const std::string&, + const StringArray&, + const StringArray&)); + MOCK_METHOD1(SetUserPermissionsForApp, bool(const PermissionConsent&)); + MOCK_METHOD1(IncreaseStatisticsData, bool(StatisticsType type)); MOCK_METHOD3(SetAppRegistrationLanguage, - bool(const std::string& app_id, LanguageType type, const std::string& language)); + bool(const std::string& app_id, + LanguageType type, + const std::string& language)); MOCK_METHOD3(SetMetaInfo, - bool(const std::string& ccpu_version, const std::string& wers_country_code, const std::string& vin)); - MOCK_METHOD0(IsMetaInfoPresent, - bool()); - MOCK_METHOD1(SetSystemLanguage, - bool(const std::string& language)); - MOCK_METHOD0(GetKmFromSuccessfulExchange, - int()); - MOCK_METHOD0(GetDayFromScsExchange, - int()); - MOCK_METHOD0(GetIgnitionsFromScsExchange, - int()); - MOCK_CONST_METHOD1(Increment, - void(const std::string& type)); + bool(const std::string& ccpu_version, + const std::string& wers_country_code, + const std::string& vin)); + MOCK_METHOD0(IsMetaInfoPresent, bool()); + MOCK_METHOD1(SetSystemLanguage, bool(const std::string& language)); + MOCK_METHOD0(GetKmFromSuccessfulExchange, int()); + MOCK_METHOD0(GetDayFromScsExchange, int()); + MOCK_METHOD0(GetIgnitionsFromScsExchange, int()); + MOCK_CONST_METHOD1(Increment, void(const std::string& type)); MOCK_CONST_METHOD2(Increment, - void(const std::string& app_id, const std::string& type)); + void(const std::string& app_id, const std::string& type)); MOCK_CONST_METHOD3(Set, - void(const std::string& app_id, const std::string& type, const std::string& value)); + void(const std::string& app_id, + const std::string& type, + const std::string& value)); MOCK_CONST_METHOD3(Add, - void(const std::string& app_id, const std::string& type, int seconds)); + void(const std::string& app_id, + const std::string& type, + int seconds)); MOCK_CONST_METHOD3(CountUnconsentedGroups, - bool(const std::string& app_id, - const std::string& device_id, - int* count)); - MOCK_METHOD1(GetFunctionalGroupNames, - bool(FunctionalGroupNames& names)); - MOCK_CONST_METHOD1(CleanupUnpairedDevices, - bool(const DeviceIds& device_ids)); + bool(const std::string& app_id, + const std::string& device_id, + int* count)); + MOCK_METHOD1(GetFunctionalGroupNames, bool(FunctionalGroupNames& names)); + MOCK_CONST_METHOD1(CleanupUnpairedDevices, bool(const DeviceIds& device_ids)); MOCK_METHOD2(ReactOnUserDevConsentForApp, - bool(const std::string& app_id, bool is_device_allowed)); + bool(const std::string& app_id, bool is_device_allowed)); MOCK_METHOD1(SetPredataPolicy, bool(const std::string& app_id)); MOCK_METHOD2(SetIsPredata, bool(const std::string& app_id, bool is_predata)); - MOCK_CONST_METHOD2(SetUnpairedDevice, bool(const std::string& device_id, bool unpaired)); + MOCK_CONST_METHOD2(SetUnpairedDevice, + bool(const std::string& device_id, bool unpaired)); MOCK_CONST_METHOD1(UnpairedDevicesList, bool(DeviceIds* device_ids)); - MOCK_CONST_METHOD2(RemoveAppConsentForGroup, bool(const std::string& policy_app_id, - const std::string& functional_group)); + MOCK_CONST_METHOD2(RemoveAppConsentForGroup, + bool(const std::string& policy_app_id, + const std::string& functional_group)); }; } // namespace policy diff --git a/src/components/policy/test/include/mock_pt_representation.h b/src/components/policy/test/include/mock_pt_representation.h index ad70155af7..7906018721 100644 --- a/src/components/policy/test/include/mock_pt_representation.h +++ b/src/components/policy/test/include/mock_pt_representation.h @@ -48,69 +48,52 @@ namespace policy { class MockPTRepresentation : virtual public PTRepresentation { public: MOCK_METHOD4(CheckPermissions, - void(const PTString& app_id, - const PTString& hmi_level, - const PTString& rpc, - CheckPermissionResult& result)); - MOCK_METHOD0(IsPTPreloaded, - bool()); - MOCK_METHOD0(IgnitionCyclesBeforeExchange, - int()); - MOCK_METHOD1(KilometersBeforeExchange, - int(int current)); + void(const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + CheckPermissionResult& result)); + MOCK_METHOD0(IsPTPreloaded, bool()); + MOCK_METHOD0(IgnitionCyclesBeforeExchange, int()); + MOCK_METHOD1(KilometersBeforeExchange, int(int current)); MOCK_METHOD2(SetCountersPassedForSuccessfulUpdate, - bool(int kilometers, int days_after_epoch)); - MOCK_METHOD1(DaysBeforeExchange, - int(int current)); - MOCK_METHOD0(IncrementIgnitionCycles, - void()); - MOCK_METHOD0(ResetIgnitionCycles, - void()); - MOCK_METHOD0(TimeoutResponse, - int()); - MOCK_METHOD1(SecondsBetweenRetries, - bool(std::vector<int>* seconds)); + bool(int kilometers, int days_after_epoch)); + MOCK_METHOD1(DaysBeforeExchange, int(int current)); + MOCK_METHOD0(IncrementIgnitionCycles, void()); + MOCK_METHOD0(ResetIgnitionCycles, void()); + MOCK_METHOD0(TimeoutResponse, int()); + MOCK_METHOD1(SecondsBetweenRetries, bool(std::vector<int>* seconds)); MOCK_METHOD2(GetPriority, - bool(const std::string& app_id, std::string* priority)); - MOCK_CONST_METHOD0(GetVehicleInfo, - const VehicleInfo()); - MOCK_METHOD1(SetVINValue, - bool(const std::string& value)); - MOCK_METHOD2(GetUserFriendlyMsg, + bool(const std::string& app_id, std::string* priority)); + MOCK_CONST_METHOD0(GetVehicleInfo, const VehicleInfo()); + MOCK_METHOD1(SetVINValue, bool(const std::string& value)); + MOCK_METHOD2( + GetUserFriendlyMsg, std::vector<UserFriendlyMessage>(const std::vector<std::string>& msg_code, - const std::string& language)); - MOCK_METHOD2(GetUpdateUrls, - void(int service_type, EndpointUrls&)); - MOCK_METHOD1(GetNotificationsNumber, - int(const std::string& priority)); - MOCK_METHOD0(Init, - InitResult()); - MOCK_METHOD0(Close, - bool()); - MOCK_METHOD0(Clear, - bool()); - MOCK_METHOD0(Drop, - bool()); - MOCK_CONST_METHOD0(GenerateSnapshot, - utils::SharedPtr<policy_table::Table>()); - MOCK_METHOD1(Save, - bool(const policy_table::Table& table)); - MOCK_CONST_METHOD0(UpdateRequired, - bool()); - MOCK_METHOD1(SaveUpdateRequired, - void(bool value)); + const std::string& language)); + MOCK_METHOD2(GetUpdateUrls, void(int service_type, EndpointUrls&)); + MOCK_METHOD1(GetNotificationsNumber, int(const std::string& priority)); + MOCK_METHOD0(Init, InitResult()); + MOCK_METHOD0(Close, bool()); + MOCK_METHOD0(Clear, bool()); + MOCK_METHOD0(Drop, bool()); + MOCK_CONST_METHOD0(GenerateSnapshot, utils::SharedPtr<policy_table::Table>()); + MOCK_METHOD1(Save, bool(const policy_table::Table& table)); + MOCK_CONST_METHOD0(UpdateRequired, bool()); + MOCK_METHOD1(SaveUpdateRequired, void(bool value)); MOCK_METHOD3(GetInitialAppData, - bool(const std::string& app_id, StringArray* nicknames, StringArray* app_types)); + bool(const std::string& app_id, + StringArray* nicknames, + StringArray* app_types)); MOCK_METHOD4(SaveApplicationCustomData, - bool(const std::string& app_id, - bool is_revoked, - bool is_default, - bool is_predata)); + bool(const std::string& app_id, + bool is_revoked, + bool is_default, + bool is_predata)); MOCK_CONST_METHOD1(IsApplicationRevoked, bool(const std::string& app_id)); MOCK_METHOD1(GetFunctionalGroupings, - bool(policy_table::FunctionalGroupings& groups)); + bool(policy_table::FunctionalGroupings& groups)); MOCK_CONST_METHOD1(IsApplicationRepresented, bool(const std::string& app_id)); MOCK_CONST_METHOD1(IsDefaultPolicy, bool(const std::string& app_id)); MOCK_METHOD1(SetDefaultPolicy, bool(const std::string& app_id)); diff --git a/src/components/policy/test/include/mock_update_status_manager.h b/src/components/policy/test/include/mock_update_status_manager.h index 0050276807..aa6abd7301 100644 --- a/src/components/policy/test/include/mock_update_status_manager.h +++ b/src/components/policy/test/include/mock_update_status_manager.h @@ -40,26 +40,16 @@ namespace policy { class MockUpdateStatusManager : public UpdateStatusManager { public: - MOCK_METHOD1(set_listener, - void(PolicyListener* listener)); - MOCK_METHOD1(OnUpdateSentOut, - void(uint32_t update_timeout)); - MOCK_METHOD0(OnUpdateTimeoutOccurs, - void()); - MOCK_METHOD0(OnValidUpdateReceived, - void()); - MOCK_METHOD0(OnWrongUpdateReceived, - void()); - MOCK_METHOD1(OnResetDefaultPT, - void(bool is_update_required)); - MOCK_METHOD0(OnResetRetrySequence, - void()); - MOCK_METHOD0(OnNewApplicationAdded, - void()); - MOCK_METHOD1(OnPolicyInit, - void(bool is_update_required)); - MOCK_METHOD0(GetUpdateStatus, - PolicyTableStatus()); + MOCK_METHOD1(set_listener, void(PolicyListener* listener)); + MOCK_METHOD1(OnUpdateSentOut, void(uint32_t update_timeout)); + MOCK_METHOD0(OnUpdateTimeoutOccurs, void()); + MOCK_METHOD0(OnValidUpdateReceived, void()); + MOCK_METHOD0(OnWrongUpdateReceived, void()); + MOCK_METHOD1(OnResetDefaultPT, void(bool is_update_required)); + MOCK_METHOD0(OnResetRetrySequence, void()); + MOCK_METHOD0(OnNewApplicationAdded, void()); + MOCK_METHOD1(OnPolicyInit, void(bool is_update_required)); + MOCK_METHOD0(GetUpdateStatus, PolicyTableStatus()); }; } // namespace policy diff --git a/src/components/policy/test/shared_library_test.cc b/src/components/policy/test/shared_library_test.cc index f8f77f1fda..53238a463d 100644 --- a/src/components/policy/test/shared_library_test.cc +++ b/src/components/policy/test/shared_library_test.cc @@ -45,27 +45,28 @@ namespace policy { } } -TEST(SharedLibraryTest, FullTest_OpenLibrarySetSymbolCloseLibrary_ExpectActsWithoutErrors) { - //Arrange +TEST(SharedLibraryTest, + FullTest_OpenLibrarySetSymbolCloseLibrary_ExpectActsWithoutErrors) { + // Arrange const std::string kLib = "../src/policy/libPolicy.so"; void* handle = dlopen(kLib.c_str(), RTLD_LAZY); - //Assert + // Assert EXPECT_FALSE(IsError(dlerror())); ASSERT_TRUE(handle); - //Act + // Act const std::string kSymbol = "CreateManager"; void* symbol = dlsym(handle, kSymbol.c_str()); - //Assert + // Assert EXPECT_FALSE(IsError(dlerror())); EXPECT_TRUE(symbol); - //Act + // Act int ret = dlclose(handle); - //Assert + // Assert EXPECT_FALSE(ret); EXPECT_FALSE(IsError(dlerror())); } diff --git a/src/components/protocol/src/message_priority.cc b/src/components/protocol/src/message_priority.cc index d76cde038c..893e624ed2 100644 --- a/src/components/protocol/src/message_priority.cc +++ b/src/components/protocol/src/message_priority.cc @@ -50,8 +50,7 @@ MessagePriority MessagePriority::FromServiceType(ServiceType service_type) { } MessagePriority::MessagePriority(const MessagePriority& that) - : value_(that.value_) { -} + : value_(that.value_) {} size_t MessagePriority::OrderingValue() const { return value_; diff --git a/src/components/protocol/src/raw_message.cc b/src/components/protocol/src/raw_message.cc index 7b1b8b087d..daffd0f2bd 100644 --- a/src/components/protocol/src/raw_message.cc +++ b/src/components/protocol/src/raw_message.cc @@ -36,16 +36,19 @@ namespace protocol_handler { -RawMessage::RawMessage(uint32_t connection_key, uint32_t protocol_version, - const uint8_t *const data_param, uint32_t data_sz, - uint8_t type, uint32_t payload_size) - : connection_key_(connection_key), - data_(NULL), - data_size_(data_sz), - protocol_version_(protocol_version), - service_type_(ServiceTypeFromByte(type)), - payload_size_(payload_size), - waiting_(false) { +RawMessage::RawMessage(uint32_t connection_key, + uint32_t protocol_version, + const uint8_t* const data_param, + uint32_t data_sz, + uint8_t type, + uint32_t payload_size) + : connection_key_(connection_key) + , data_(NULL) + , data_size_(data_sz) + , protocol_version_(protocol_version) + , service_type_(ServiceTypeFromByte(type)) + , payload_size_(payload_size) + , waiting_(false) { if (data_param && data_sz > 0) { data_ = new uint8_t[data_sz]; memcpy(data_, data_param, sizeof(*data_) * data_sz); @@ -64,7 +67,7 @@ void RawMessage::set_connection_key(uint32_t key) { connection_key_ = key; } -uint8_t *RawMessage::data() const { +uint8_t* RawMessage::data() const { return data_; } diff --git a/src/components/protocol/src/rpc_type.cc b/src/components/protocol/src/rpc_type.cc index ce8ab898f5..bc1142ad5c 100644 --- a/src/components/protocol/src/rpc_type.cc +++ b/src/components/protocol/src/rpc_type.cc @@ -67,7 +67,7 @@ uint8_t RpcTypeToByte(RpcType type) { return uint8_t(type); } -const char *RpcTypeToString(RpcType type) { +const char* RpcTypeToString(RpcType type) { switch (type) { case kRpcTypeRequest: return "kRpcTypeRequest"; @@ -80,7 +80,7 @@ const char *RpcTypeToString(RpcType type) { } } -std::ostream &operator<<(std::ostream &os, RpcType rpc_type) { +std::ostream& operator<<(std::ostream& os, RpcType rpc_type) { return os << RpcTypeToString(rpc_type); } } // namespace protocol_handler diff --git a/src/components/protocol/src/service_type.cc b/src/components/protocol/src/service_type.cc index 2f0f4f2338..8ca57f338b 100644 --- a/src/components/protocol/src/service_type.cc +++ b/src/components/protocol/src/service_type.cc @@ -58,7 +58,7 @@ ServiceType ServiceTypeFromByte(uint8_t byte) { ServiceType type = ServiceType(byte); const bool valid_type = IsValid(type); if (!valid_type) { - LOG4CXX_INFO(logger_, "Invalid service type: "<< int32_t(byte)); + LOG4CXX_INFO(logger_, "Invalid service type: " << int32_t(byte)); } return valid_type ? type : kInvalidServiceType; } diff --git a/src/components/protocol_handler/include/protocol_handler/incoming_data_handler.h b/src/components/protocol_handler/include/protocol_handler/incoming_data_handler.h index b02e7de3bf..4633be6c6e 100644 --- a/src/components/protocol_handler/include/protocol_handler/incoming_data_handler.h +++ b/src/components/protocol_handler/include/protocol_handler/incoming_data_handler.h @@ -42,7 +42,8 @@ namespace protocol_handler { /** * \class IncomingDataHandler - * \brief Class for contecat TM messages to ford frames and validate ford header data + * \brief Class for contecat TM messages to ford frames and validate ford header + * data * IncomingDataHandler methods are reentrant and not thread-safe */ class IncomingDataHandler { @@ -52,7 +53,8 @@ class IncomingDataHandler { * @brief Setting additional validator for checking malformed packets * \param validator pointer */ - void set_validator(const ProtocolPacket::ProtocolHeaderValidator* const validator); + void set_validator( + const ProtocolPacket::ProtocolHeaderValidator* const validator); /** * @brief Concatenate TM messages to ford frames and validate ford header data * \param TM messages for converting to frames @@ -70,13 +72,11 @@ class IncomingDataHandler { /** * @brief Add connection for data handling and verification */ - void AddConnection( - const transport_manager::ConnectionUID connection_id); + void AddConnection(const transport_manager::ConnectionUID connection_id); /** * @brief Remove connection and all unhandled data */ - void RemoveConnection( - const transport_manager::ConnectionUID connection_id); + void RemoveConnection(const transport_manager::ConnectionUID connection_id); private: /** @@ -100,10 +100,10 @@ class IncomingDataHandler { const transport_manager::ConnectionUID connection_id); typedef std::map<transport_manager::ConnectionUID, std::vector<uint8_t> > - ConnectionsDataMap; + ConnectionsDataMap; ConnectionsDataMap connections_data_; ProtocolPacket::ProtocolHeader header_; - const ProtocolPacket::ProtocolHeaderValidator* validator_; + const ProtocolPacket::ProtocolHeaderValidator* validator_; bool last_portion_of_data_was_malformed_; DISALLOW_COPY_AND_ASSIGN(IncomingDataHandler); }; diff --git a/src/components/protocol_handler/include/protocol_handler/multiframe_builder.h b/src/components/protocol_handler/include/protocol_handler/multiframe_builder.h index 6ccf891b38..bac37b508c 100644 --- a/src/components/protocol_handler/include/protocol_handler/multiframe_builder.h +++ b/src/components/protocol_handler/include/protocol_handler/multiframe_builder.h @@ -34,9 +34,9 @@ #define SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_MULTIFRAME_BUILDER_H_ #include <map> -#include <ostream> // std::basic_ostream -#include <iterator> // std::ostream_iterator -#include <algorithm> // std::copy +#include <ostream> // std::basic_ostream +#include <iterator> // std::ostream_iterator +#include <algorithm> // std::copy #include "utils/date_time.h" #include "protocol_handler/protocol_packet.h" @@ -63,15 +63,18 @@ struct ProtocolFrameData { TimevalStruct append_time; }; /** - *\brief Map of frames with last frame data for messages received in multiple frames. + *\brief Map of frames with last frame data for messages received in multiple + *frames. */ typedef std::map<MessageID, ProtocolFrameData> MessageIDToFrameMap; /** - *\brief Map of frames with last frame data for messages received in multiple frames. + *\brief Map of frames with last frame data for messages received in multiple + *frames. */ typedef std::map<SessionID, MessageIDToFrameMap> SessionToFrameMap; /** - *\brief Map of frames with last frame data for messages received in multiple frames. + *\brief Map of frames with last frame data for messages received in multiple + *frames. */ typedef std::map<ConnectionID, SessionToFrameMap> MultiFrameMap; @@ -119,33 +122,39 @@ class MultiFrameBuilder { RESULT_CODE HandleFirstFrame(const ProtocolFramePtr packet); RESULT_CODE HandleConsecutiveFrame(const ProtocolFramePtr packet); - // Map of frames with last frame data for messages received in multiple frames. + // Map of frames with last frame data for messages received in multiple + // frames. MultiFrameMap multiframes_map_; int64_t consecutive_frame_wait_msecs_; }; -template<typename _CharT> -std::basic_ostream<_CharT>& operator<<(std::basic_ostream<_CharT>& stream, - const protocol_handler::MultiFrameMap& map) { +template <typename _CharT> +std::basic_ostream<_CharT>& operator<<( + std::basic_ostream<_CharT>& stream, + const protocol_handler::MultiFrameMap& map) { if (map.empty()) { stream << "{empty}"; return stream; } for (MultiFrameMap::const_iterator connection_it = map.begin(); - connection_it != map.end(); ++connection_it) { + connection_it != map.end(); + ++connection_it) { const SessionToFrameMap& session_map = connection_it->second; for (SessionToFrameMap::const_iterator session_it = session_map.begin(); - session_it != session_map.end(); ++session_it) { + session_it != session_map.end(); + ++session_it) { const MessageIDToFrameMap& messageId_map = session_it->second; - for (MessageIDToFrameMap::const_iterator messageId_it = messageId_map.begin(); - messageId_it != messageId_map.end(); ++messageId_it) { + for (MessageIDToFrameMap::const_iterator messageId_it = + messageId_map.begin(); + messageId_it != messageId_map.end(); + ++messageId_it) { const ProtocolFrameData& frame_data = messageId_it->second; stream << "ConnectionID: " << connection_it->first - << ", SessionID: " << static_cast<uint32_t>(session_it->first) - << ", MessageID: " << static_cast<uint32_t>(messageId_it->first) + << ", SessionID: " << static_cast<uint32_t>(session_it->first) + << ", MessageID: " << static_cast<uint32_t>(messageId_it->first) << " msec, frame: " << frame_data.frame << std::endl; } } diff --git a/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h b/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h index 9378081854..cd50f98bdb 100644 --- a/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h +++ b/src/components/protocol_handler/include/protocol_handler/protocol_handler_impl.h @@ -95,36 +95,37 @@ namespace impl { * TODO(ik): replace these with globally defined message types * when we have them. */ -struct RawFordMessageFromMobile: public ProtocolFramePtr { +struct RawFordMessageFromMobile : public ProtocolFramePtr { RawFordMessageFromMobile() {} explicit RawFordMessageFromMobile(const ProtocolFramePtr message) - : ProtocolFramePtr(message) {} + : ProtocolFramePtr(message) {} // PrioritizedQueue requires this method to decide which priority to assign size_t PriorityOrder() const { return MessagePriority::FromServiceType( - ServiceTypeFromByte(get()->service_type())).OrderingValue(); + ServiceTypeFromByte(get()->service_type())).OrderingValue(); } }; -struct RawFordMessageToMobile: public ProtocolFramePtr { +struct RawFordMessageToMobile : public ProtocolFramePtr { RawFordMessageToMobile() : is_final(false) {} explicit RawFordMessageToMobile(const ProtocolFramePtr message, bool final_message) - : ProtocolFramePtr(message), is_final(final_message) {} + : ProtocolFramePtr(message), is_final(final_message) {} // PrioritizedQueue requires this method to decide which priority to assign size_t PriorityOrder() const { return MessagePriority::FromServiceType( - ServiceTypeFromByte(get()->service_type())).OrderingValue(); + ServiceTypeFromByte(get()->service_type())).OrderingValue(); } - // Signals whether connection to mobile must be closed after processing this message + // Signals whether connection to mobile must be closed after processing this + // message bool is_final; }; // Short type names for prioritized message queues -typedef threads::MessageLoopThread < - utils::PrioritizedQueue<RawFordMessageFromMobile> > FromMobileQueue; -typedef threads::MessageLoopThread < - utils::PrioritizedQueue<RawFordMessageToMobile> > ToMobileQueue; +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<RawFordMessageFromMobile> > FromMobileQueue; +typedef threads::MessageLoopThread< + utils::PrioritizedQueue<RawFordMessageToMobile> > ToMobileQueue; } // namespace impl /** @@ -136,15 +137,15 @@ typedef threads::MessageLoopThread < * about activities around sessions. */ class ProtocolHandlerImpl - : public ProtocolHandler, - public TransportManagerListenerEmpty, - public impl::FromMobileQueue::Handler, - public impl::ToMobileQueue::Handler + : public ProtocolHandler, + public TransportManagerListenerEmpty, + public impl::FromMobileQueue::Handler, + public impl::ToMobileQueue::Handler #ifdef TELEMETRY_MONITOR - , - public telemetry_monitor::TelemetryObservable<PHTelemetryObserver> + , + public telemetry_monitor::TelemetryObservable<PHTelemetryObserver> #endif // TELEMETRY_MONITOR - { + { public: /** * @brief Constructor @@ -153,10 +154,10 @@ class ProtocolHandlerImpl * information and controll session life cycle * @param transportManager Pointer to Transport layer handler for */ - ProtocolHandlerImpl(const ProtocolHandlerSettings& settings, - protocol_handler::SessionObserver& session_observer, - connection_handler::ConnectionHandler& connection_handler, - transport_manager::TransportManager& transport_manager); + ProtocolHandlerImpl(const ProtocolHandlerSettings& settings, + protocol_handler::SessionObserver& session_observer, + connection_handler::ConnectionHandler& connection_handler, + transport_manager::TransportManager& transport_manager); /** * \brief Destructor */ @@ -167,17 +168,18 @@ class ProtocolHandlerImpl * \param observer Pointer to object of the class implementing * IProtocolObserver */ - void AddProtocolObserver(ProtocolObserver *observer); + void AddProtocolObserver(ProtocolObserver* observer); - void RemoveProtocolObserver( - ProtocolObserver* observer) OVERRIDE; + void RemoveProtocolObserver(ProtocolObserver* observer) OVERRIDE; #ifdef ENABLE_SECURITY /** - * \brief Sets pointer for SecurityManager layer for managing protection routine + * \brief Sets pointer for SecurityManager layer for managing protection + * routine * \param security_manager Pointer to SecurityManager object */ - void set_security_manager(security_manager::SecurityManager *security_manager); + void set_security_manager( + security_manager::SecurityManager* security_manager); #endif // ENABLE_SECURITY /** @@ -194,7 +196,8 @@ class ProtocolHandlerImpl /** * \brief Sends number of processed frames in case of binary nav streaming - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param number_of_frames Number of frames processed by * streaming server and displayed to user. */ @@ -206,7 +209,7 @@ class ProtocolHandlerImpl * * @param observer - pointer to observer */ - void SetTelemetryObserver(PHTelemetryObserver *observer); + void SetTelemetryObserver(PHTelemetryObserver* observer); #endif // TELEMETRY_MONITOR /* @@ -292,11 +295,11 @@ class ProtocolHandlerImpl uint8_t protocol_version, uint8_t service_type); - - SessionObserver &get_session_observer() OVERRIDE; + SessionObserver& get_session_observer() OVERRIDE; private: - void SendEndServicePrivate(int32_t connection_id, uint8_t session_id, + void SendEndServicePrivate(int32_t connection_id, + uint8_t session_id, uint8_t service_type); /* @@ -311,8 +314,7 @@ class ProtocolHandlerImpl * * @param message Received message **/ - void OnTMMessageReceived( - const RawMessagePtr message) OVERRIDE; + void OnTMMessageReceived(const RawMessagePtr message) OVERRIDE; /** * @brief Notifies about error on receiving message from TM. @@ -320,7 +322,7 @@ class ProtocolHandlerImpl * @param error Occurred error **/ void OnTMMessageReceiveFailed( - const transport_manager::DataReceiveError &error) OVERRIDE; + const transport_manager::DataReceiveError& error) OVERRIDE; /** * @brief Notifies about successfully sending message. @@ -335,15 +337,15 @@ class ProtocolHandlerImpl * @param error Describes occurred error. * @param message Message during sending which error occurred. **/ - void OnTMMessageSendFailed( - const transport_manager::DataSendError &error, - const RawMessagePtr message) OVERRIDE; + void OnTMMessageSendFailed(const transport_manager::DataSendError& error, + const RawMessagePtr message) OVERRIDE; - void OnConnectionEstablished(const transport_manager::DeviceInfo &device_info, - const transport_manager::ConnectionUID connection_id) OVERRIDE; + void OnConnectionEstablished( + const transport_manager::DeviceInfo& device_info, + const transport_manager::ConnectionUID connection_id) OVERRIDE; void OnConnectionClosed( - const transport_manager::ConnectionUID connection_id) OVERRIDE; + const transport_manager::ConnectionUID connection_id) OVERRIDE; /** * @brief Notifies subscribers about message @@ -369,7 +371,7 @@ class ProtocolHandlerImpl const uint32_t protocol_version, const uint8_t service_type, const size_t data_size, - const uint8_t *data, + const uint8_t* data, const bool is_final_message); /** @@ -390,7 +392,7 @@ class ProtocolHandlerImpl const uint8_t protocol_version, const uint8_t service_type, const size_t data_size, - const uint8_t *data, + const uint8_t* data, const size_t max_frame_size, const bool is_final_message); @@ -462,9 +464,9 @@ class ProtocolHandlerImpl RESULT_CODE DecryptFrame(ProtocolFramePtr packet); #endif // ENABLE_SECURITY - bool TrackMessage(const uint32_t &connection_key); + bool TrackMessage(const uint32_t& connection_key); - bool TrackMalformedMessage(const uint32_t &connection_key, + bool TrackMalformedMessage(const uint32_t& connection_key, const size_t count); /** * @brief Function returns supported SDL Protocol Version, @@ -544,7 +546,7 @@ class ProtocolHandlerImpl utils::MessageMeter<uint32_t> malformed_message_meter_; #ifdef ENABLE_SECURITY - security_manager::SecurityManager *security_manager_; + security_manager::SecurityManager* security_manager_; #endif // ENABLE_SECURITY // Thread that pumps non-parsed messages coming from mobile side. @@ -555,7 +557,7 @@ class ProtocolHandlerImpl sync_primitives::Lock protocol_observers_lock_; #ifdef TELEMETRY_MONITOR - PHTelemetryObserver *metric_observer_; + PHTelemetryObserver* metric_observer_; #endif // TELEMETRY_MONITOR }; } // namespace protocol_handler diff --git a/src/components/protocol_handler/include/protocol_handler/protocol_packet.h b/src/components/protocol_handler/include/protocol_handler/protocol_packet.h index 1b68e6c870..f8696c46a0 100644 --- a/src/components/protocol_handler/include/protocol_handler/protocol_packet.h +++ b/src/components/protocol_handler/include/protocol_handler/protocol_packet.h @@ -59,7 +59,7 @@ class ProtocolPacket { struct ProtocolData { ProtocolData(); ~ProtocolData(); - uint8_t *data; + uint8_t* data; uint32_t totalDataBytes; }; @@ -70,11 +70,14 @@ class ProtocolPacket { class ProtocolHeader { public: ProtocolHeader(); - ProtocolHeader(uint8_t version, bool protection, + ProtocolHeader(uint8_t version, + bool protection, uint8_t frameType, uint8_t serviceType, - uint8_t frameData, uint8_t sessionID, - uint32_t dataSize, uint32_t messageID); + uint8_t frameData, + uint8_t sessionID, + uint32_t dataSize, + uint32_t messageID); uint8_t version; bool protection_flag; uint8_t frameType; @@ -83,7 +86,7 @@ class ProtocolPacket { uint8_t sessionId; uint32_t dataSize; uint32_t messageId; - void deserialize(const uint8_t *message, const size_t messageSize); + void deserialize(const uint8_t* message, const size_t messageSize); }; /** * \class ProtocolHeaderValidator @@ -101,6 +104,7 @@ class ProtocolPacket { * \brief Check ProtocolHeader according to protocol requiements */ RESULT_CODE validate(const ProtocolHeader& header) const; + private: size_t max_payload_size_; }; @@ -132,10 +136,15 @@ class ProtocolPacket { * \param data Message string if provided */ ProtocolPacket(ConnectionID connection_id, - uint8_t version, bool protection, uint8_t frameType, - uint8_t serviceType, uint8_t frameData, - uint8_t sessionId, uint32_t dataSize, - uint32_t messageID, const uint8_t *data = 0); + uint8_t version, + bool protection, + uint8_t frameType, + uint8_t serviceType, + uint8_t frameData, + uint8_t sessionId, + uint32_t dataSize, + uint32_t messageID, + const uint8_t* data = 0); /*Serialization*/ /** @@ -150,7 +159,7 @@ class ProtocolPacket { * \param chunkDataSize Size of current message string * \return \saRESULT_CODE Status of serialization */ - RESULT_CODE appendData(uint8_t *chunkData, uint32_t chunkDataSize); + RESULT_CODE appendData(uint8_t* chunkData, uint32_t chunkDataSize); /** * \brief Getter of message size including protocol header @@ -171,7 +180,7 @@ class ProtocolPacket { * \param messageSize Incoming message size * \return \saRESULT_CODE Status of serialization */ - RESULT_CODE deserializePacket(const uint8_t *message, + RESULT_CODE deserializePacket(const uint8_t* message, const size_t messageSize); /** @@ -200,7 +209,8 @@ class ProtocolPacket { uint8_t service_type() const; /** - *\brief Getter and setter of frame data (start/end session, number of frame etc) + *\brief Getter and setter of frame data (start/end session, number of frame + *etc) */ uint8_t frame_data() const; @@ -224,7 +234,7 @@ class ProtocolPacket { /** *\brief Getter of message string */ - uint8_t *data() const; + uint8_t* data() const; /** *\brief Setter for size of multiframe message @@ -234,8 +244,7 @@ class ProtocolPacket { /** *\brief Setter for new data */ - void set_data(const uint8_t *const new_data, - const size_t new_data_size); + void set_data(const uint8_t* const new_data, const size_t new_data_size); /** *\brief Getter for size of multiframe message @@ -283,38 +292,41 @@ class ProtocolPacket { DISALLOW_COPY_AND_ASSIGN(ProtocolPacket); }; } // namespace protocol_handler -/** - * @brief Type definition for variable that hold shared pointer to protocolol packet - */ + /** + * @brief Type definition for variable that hold shared pointer to protocolol + * packet + */ typedef utils::SharedPtr<protocol_handler::ProtocolPacket> ProtocolFramePtr; -typedef std::list<ProtocolFramePtr> ProtocolFramePtrList; - -template<typename _CharT> -std::basic_ostream<_CharT>& operator<<(std::basic_ostream<_CharT>& stream, - const protocol_handler::ProtocolPacket::ProtocolHeader& header) { - stream << "Version: " << static_cast<uint32_t>(header.version) << - ", Protection: " << (header.protection_flag ? "ON" : "OFF") << - ", FrameType: " << static_cast<uint32_t>(header.frameType) << - ", ServiceType: " << static_cast<uint32_t>(header.serviceType) << - ", FrameData: " << static_cast<uint32_t>(header.frameData) << - ", SessionId: " << static_cast<uint32_t>(header.sessionId) << - ", DataSize: " << static_cast<uint32_t>(header.dataSize) << - ", MessageId: " << static_cast<uint32_t>(header.messageId); +typedef std::list<ProtocolFramePtr> ProtocolFramePtrList; + +template <typename _CharT> +std::basic_ostream<_CharT>& operator<<( + std::basic_ostream<_CharT>& stream, + const protocol_handler::ProtocolPacket::ProtocolHeader& header) { + stream << "Version: " << static_cast<uint32_t>(header.version) + << ", Protection: " << (header.protection_flag ? "ON" : "OFF") + << ", FrameType: " << static_cast<uint32_t>(header.frameType) + << ", ServiceType: " << static_cast<uint32_t>(header.serviceType) + << ", FrameData: " << static_cast<uint32_t>(header.frameData) + << ", SessionId: " << static_cast<uint32_t>(header.sessionId) + << ", DataSize: " << static_cast<uint32_t>(header.dataSize) + << ", MessageId: " << static_cast<uint32_t>(header.messageId); return stream; } -template<typename _CharT> -std::basic_ostream<_CharT>& operator<<(std::basic_ostream<_CharT>& stream, - const protocol_handler::ProtocolPacket& packet) { - stream << packet.packet_header() << - ", ConnectionID: " << static_cast<uint32_t>(packet.connection_id()) << - ", TotalDataBytes: " << (packet.total_data_bytes()) << - ", Data: " << static_cast<void*>(packet.data()); +template <typename _CharT> +std::basic_ostream<_CharT>& operator<<( + std::basic_ostream<_CharT>& stream, + const protocol_handler::ProtocolPacket& packet) { + stream << packet.packet_header() + << ", ConnectionID: " << static_cast<uint32_t>(packet.connection_id()) + << ", TotalDataBytes: " << (packet.total_data_bytes()) + << ", Data: " << static_cast<void*>(packet.data()); return stream; } -template<typename _CharT> +template <typename _CharT> std::basic_ostream<_CharT>& operator<<(std::basic_ostream<_CharT>& stream, const ProtocolFramePtr packet_ptr) { - if(packet_ptr) { + if (packet_ptr) { return stream << *packet_ptr; } return stream << "empty smart pointer"; diff --git a/src/components/protocol_handler/include/protocol_handler/protocol_payload.h b/src/components/protocol_handler/include/protocol_handler/protocol_payload.h index 861d29d4d4..ed61d3588d 100644 --- a/src/components/protocol_handler/include/protocol_handler/protocol_payload.h +++ b/src/components/protocol_handler/include/protocol_handler/protocol_payload.h @@ -48,9 +48,11 @@ namespace protocol_handler { // Applink Protocolv5 4.1.2 Protocol Payload Binary header struct ProtocolPayloadHeaderV2 { ProtocolPayloadHeaderV2() - : rpc_type(kRpcTypeReserved), - rpc_function_id(0), correlation_id(0), json_size(0) {} - RpcType rpc_type; + : rpc_type(kRpcTypeReserved) + , rpc_function_id(0) + , correlation_id(0) + , json_size(0) {} + RpcType rpc_type; uint32_t rpc_function_id; uint32_t correlation_id; uint32_t json_size; @@ -66,14 +68,18 @@ struct ProtocolPayloadV2 { // Procedures that extract and validate defined protocol structures from // a bit stream. // If error during parsing is detected, bit stream is marked as invalid -void Extract(utils::BitStream *bs, ProtocolPayloadHeaderV2 *headerv2); -void Extract(utils::BitStream *bs, ProtocolPayloadV2 *payload, size_t payload_size); +void Extract(utils::BitStream* bs, ProtocolPayloadHeaderV2* headerv2); +void Extract(utils::BitStream* bs, + ProtocolPayloadV2* payload, + size_t payload_size); -std::ostream &operator<<(std::ostream &os, const ProtocolPayloadHeaderV2 &payload_header); -std::ostream &operator<<(std::ostream &os, const ProtocolPayloadV2 &payload); +std::ostream& operator<<(std::ostream& os, + const ProtocolPayloadHeaderV2& payload_header); +std::ostream& operator<<(std::ostream& os, const ProtocolPayloadV2& payload); -//Add for tests +// Add for tests size_t ProtocolPayloadV2SizeBits(); -} // namespace protocol_handler +} // namespace protocol_handler -#endif /* SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PAYLOAD_H_ */ +#endif /* SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_PROTOCOL_PAYLOAD_H_ \ + */ diff --git a/src/components/protocol_handler/include/protocol_handler/telemetry_observer.h b/src/components/protocol_handler/include/protocol_handler/telemetry_observer.h index f0923623e0..1f4c1ebcb5 100644 --- a/src/components/protocol_handler/include/protocol_handler/telemetry_observer.h +++ b/src/components/protocol_handler/include/protocol_handler/telemetry_observer.h @@ -48,9 +48,10 @@ class PHTelemetryObserver { TimevalStruct begin; TimevalStruct end; }; - virtual void StartMessageProcess(uint32_t message_id, const TimevalStruct &start_time) = 0; + virtual void StartMessageProcess(uint32_t message_id, + const TimevalStruct& start_time) = 0; virtual void EndMessageProcess(utils::SharedPtr<MessageMetric> m) = 0; - virtual ~PHTelemetryObserver(){} + virtual ~PHTelemetryObserver() {} }; } // protocol_handler #endif // SRC_COMPONENTS_PROTOCOL_HANDLER_INCLUDE_PROTOCOL_HANDLER_TIME_METRIC_OBSERVER_H_ diff --git a/src/components/protocol_handler/src/incoming_data_handler.cc b/src/components/protocol_handler/src/incoming_data_handler.cc index 9a73ba5900..e1d08a6ada 100644 --- a/src/components/protocol_handler/src/incoming_data_handler.cc +++ b/src/components/protocol_handler/src/incoming_data_handler.cc @@ -38,18 +38,15 @@ namespace protocol_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "ProtocolHandler") IncomingDataHandler::IncomingDataHandler() - : header_(), - validator_(NULL), - last_portion_of_data_was_malformed_(false) { -} + : header_(), validator_(NULL), last_portion_of_data_was_malformed_(false) {} void IncomingDataHandler::set_validator( - const ProtocolPacket::ProtocolHeaderValidator* const validator) { + const ProtocolPacket::ProtocolHeaderValidator* const validator) { validator_ = validator; } -static const size_t MIN_HEADER_SIZE = std::min(PROTOCOL_HEADER_V1_SIZE, - PROTOCOL_HEADER_V2_SIZE); +static const size_t MIN_HEADER_SIZE = + std::min(PROTOCOL_HEADER_V1_SIZE, PROTOCOL_HEADER_V2_SIZE); ProtocolFramePtrList IncomingDataHandler::ProcessData( const RawMessage& tm_message, @@ -59,7 +56,7 @@ ProtocolFramePtrList IncomingDataHandler::ProcessData( DCHECK(result); DCHECK(malformed_occurrence); const transport_manager::ConnectionUID connection_id = - tm_message.connection_key(); + tm_message.connection_key(); const uint8_t* data = tm_message.data(); const size_t tm_message_size = tm_message.data_size(); if (tm_message_size == 0 || data == NULL) { @@ -67,8 +64,9 @@ ProtocolFramePtrList IncomingDataHandler::ProcessData( *result = RESULT_FAIL; return ProtocolFramePtrList(); } - LOG4CXX_INFO(logger_, "Processing incoming data of size " - << tm_message_size << " for connection " << connection_id); + LOG4CXX_INFO(logger_, + "Processing incoming data of size " + << tm_message_size << " for connection " << connection_id); ConnectionsDataMap::iterator it = connections_data_.find(connection_id); if (connections_data_.end() == it) { LOG4CXX_WARN(logger_, "ProcessData requested for unknown connection"); @@ -77,20 +75,24 @@ ProtocolFramePtrList IncomingDataHandler::ProcessData( } std::vector<uint8_t>& connection_data = it->second; connection_data.insert(connection_data.end(), data, data + tm_message_size); - LOG4CXX_DEBUG(logger_, "Total data size for connection " - << connection_id << " is " << connection_data.size()); + LOG4CXX_DEBUG(logger_, + "Total data size for connection " << connection_id << " is " + << connection_data.size()); ProtocolFramePtrList out_frames; *malformed_occurrence = 0; - *result = CreateFrame(connection_data, out_frames, *malformed_occurrence, connection_id); - LOG4CXX_DEBUG(logger_, "New data size for connection " << connection_id - << " is " << connection_data.size()); + *result = CreateFrame( + connection_data, out_frames, *malformed_occurrence, connection_id); + LOG4CXX_DEBUG(logger_, + "New data size for connection " << connection_id << " is " + << connection_data.size()); if (!out_frames.empty()) { - LOG4CXX_INFO(logger_, "Created and passed " << out_frames.size() << - " packets"); + LOG4CXX_INFO(logger_, + "Created and passed " << out_frames.size() << " packets"); } else { if (RESULT_DEFERRED == *result) { - LOG4CXX_DEBUG(logger_, - "No packets have been created. Waiting next portion of data."); + LOG4CXX_DEBUG( + logger_, + "No packets have been created. Waiting next portion of data."); } else { LOG4CXX_WARN(logger_, "No packets have been created."); } @@ -104,20 +106,20 @@ ProtocolFramePtrList IncomingDataHandler::ProcessData( } void IncomingDataHandler::AddConnection( - const transport_manager::ConnectionUID connection_id) { + const transport_manager::ConnectionUID connection_id) { LOG4CXX_AUTO_TRACE(logger_); // Add empty list of session to new connection connections_data_[connection_id] = ConnectionsDataMap::mapped_type(); } void IncomingDataHandler::RemoveConnection( - const transport_manager::ConnectionUID connection_id) { + const transport_manager::ConnectionUID connection_id) { LOG4CXX_AUTO_TRACE(logger_); connections_data_.erase(connection_id); } uint32_t IncomingDataHandler::GetPacketSize( - const ProtocolPacket::ProtocolHeader& header) { + const ProtocolPacket::ProtocolHeader& header) { switch (header.version) { case PROTOCOL_VERSION_1: return header.dataSize + PROTOCOL_HEADER_V1_SIZE; @@ -126,8 +128,8 @@ uint32_t IncomingDataHandler::GetPacketSize( case PROTOCOL_VERSION_4: return header.dataSize + PROTOCOL_HEADER_V2_SIZE; default: - LOG4CXX_WARN(logger_, "Unknown version: " << - static_cast<int>(header.version)); + LOG4CXX_WARN(logger_, + "Unknown version: " << static_cast<int>(header.version)); break; } return 0u; @@ -145,19 +147,21 @@ RESULT_CODE IncomingDataHandler::CreateFrame( while (data_size >= MIN_HEADER_SIZE) { header_.deserialize(&*data_it, data_size); const RESULT_CODE validate_result = - validator_ ? validator_->validate(header_) : RESULT_OK; + validator_ ? validator_->validate(header_) : RESULT_OK; if (validate_result != RESULT_OK) { LOG4CXX_WARN(logger_, "Packet validation failed"); if (!last_portion_of_data_was_malformed_) { ++malformed_occurrence; - LOG4CXX_DEBUG(logger_, "Malformed message found " << malformed_occurrence); + LOG4CXX_DEBUG(logger_, + "Malformed message found " << malformed_occurrence); } last_portion_of_data_was_malformed_ = true; ++data_it; --data_size; - LOG4CXX_DEBUG(logger_, "Moved to the next byte " << std::hex - << static_cast<const void*>(&*data_it)); + LOG4CXX_DEBUG(logger_, + "Moved to the next byte " + << std::hex << static_cast<const void*>(&*data_it)); continue; } LOG4CXX_DEBUG(logger_, "Payload size " << header_.dataSize); @@ -166,8 +170,9 @@ RESULT_CODE IncomingDataHandler::CreateFrame( LOG4CXX_WARN(logger_, "Null packet size"); ++data_it; --data_size; - LOG4CXX_DEBUG(logger_, "Moved to the next byte " << std::hex - << static_cast<const void*>(&*data_it)); + LOG4CXX_DEBUG(logger_, + "Moved to the next byte " + << std::hex << static_cast<const void*>(&*data_it)); continue; } if (data_size < packet_size) { @@ -177,9 +182,8 @@ RESULT_CODE IncomingDataHandler::CreateFrame( } ProtocolFramePtr frame(new protocol_handler::ProtocolPacket(connection_id)); const RESULT_CODE deserialize_result = - frame->deserializePacket(&*data_it, packet_size); - LOG4CXX_DEBUG( - logger_, "Deserialized frame " << frame); + frame->deserializePacket(&*data_it, packet_size); + LOG4CXX_DEBUG(logger_, "Deserialized frame " << frame); if (deserialize_result != RESULT_OK) { LOG4CXX_WARN(logger_, "Packet deserialization failed"); incoming_data.erase(incoming_data.begin(), data_it); @@ -188,7 +192,9 @@ RESULT_CODE IncomingDataHandler::CreateFrame( out_frames.push_back(frame); last_portion_of_data_was_malformed_ = false; - LOG4CXX_DEBUG(logger_, "Frame added. " << "Connection ID " << connection_id); + LOG4CXX_DEBUG(logger_, + "Frame added. " + << "Connection ID " << connection_id); data_it += packet_size; data_size -= packet_size; diff --git a/src/components/protocol_handler/src/multiframe_builder.cc b/src/components/protocol_handler/src/multiframe_builder.cc index c9cfc4bd0d..5a1fc6d205 100644 --- a/src/components/protocol_handler/src/multiframe_builder.cc +++ b/src/components/protocol_handler/src/multiframe_builder.cc @@ -43,16 +43,17 @@ namespace protocol_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "ProtocolHandler") -MultiFrameBuilder::MultiFrameBuilder() - : consecutive_frame_wait_msecs_(0u) { -} +MultiFrameBuilder::MultiFrameBuilder() : consecutive_frame_wait_msecs_(0u) {} -void MultiFrameBuilder::set_waiting_timeout(const uint32_t consecutive_frame_wait_msecs) { - consecutive_frame_wait_msecs_ = static_cast<int64_t>(consecutive_frame_wait_msecs); +void MultiFrameBuilder::set_waiting_timeout( + const uint32_t consecutive_frame_wait_msecs) { + consecutive_frame_wait_msecs_ = + static_cast<int64_t>(consecutive_frame_wait_msecs); if (consecutive_frame_wait_msecs == 0) { LOG4CXX_WARN(logger_, "Waiting timout disabled"); } else { - LOG4CXX_DEBUG(logger_, "Waiting time in msec: " << consecutive_frame_wait_msecs_); + LOG4CXX_DEBUG(logger_, + "Waiting time in msec: " << consecutive_frame_wait_msecs_); } } @@ -79,8 +80,9 @@ bool MultiFrameBuilder::RemoveConnection(const ConnectionID connection_id) { const SessionToFrameMap& session_to_frame_map = it->second; if (!session_to_frame_map.empty()) { // FIXME(EZamakhov): Ask ReqManager - do we need to send GenericError - LOG4CXX_WARN(logger_, "For connection_id: " << connection_id - << " waiting: " << multiframes_map_); + LOG4CXX_WARN(logger_, + "For connection_id: " << connection_id + << " waiting: " << multiframes_map_); } multiframes_map_.erase(it); return true; @@ -91,14 +93,17 @@ ProtocolFramePtrList MultiFrameBuilder::PopMultiframes() { LOG4CXX_DEBUG(logger_, "Current state is: " << multiframes_map_); ProtocolFramePtrList outpute_frame_list; for (MultiFrameMap::iterator connection_it = multiframes_map_.begin(); - connection_it != multiframes_map_.end(); ++connection_it) { + connection_it != multiframes_map_.end(); + ++connection_it) { LOG4CXX_TRACE(logger_, "Step over connection: " << connection_it->first); SessionToFrameMap& session_map = connection_it->second; for (SessionToFrameMap::iterator session_it = session_map.begin(); - session_it != session_map.end(); ++session_it) { - LOG4CXX_TRACE(logger_, "Step over session: " - << static_cast<int>(session_it->first)); + session_it != session_map.end(); + ++session_it) { + LOG4CXX_TRACE( + logger_, + "Step over session: " << static_cast<int>(session_it->first)); MessageIDToFrameMap& messageId_map = session_it->second; MessageIDToFrameMap::iterator messageId_it = messageId_map.begin(); @@ -107,9 +112,8 @@ ProtocolFramePtrList MultiFrameBuilder::PopMultiframes() { ProtocolFrameData& frame_data = messageId_it->second; ProtocolFramePtr frame = frame_data.frame; - if (frame && - frame->frame_data() == FRAME_DATA_LAST_CONSECUTIVE && - frame->payload_size() > 0u ) { + if (frame && frame->frame_data() == FRAME_DATA_LAST_CONSECUTIVE && + frame->payload_size() > 0u) { LOG4CXX_DEBUG(logger_, "Ready frame: " << frame); outpute_frame_list.push_back(frame); messageId_map.erase(messageId_it++); @@ -118,7 +122,7 @@ ProtocolFramePtrList MultiFrameBuilder::PopMultiframes() { if (consecutive_frame_wait_msecs_ != 0) { LOG4CXX_TRACE(logger_, "Expiration verification"); const int64_t time_left = - date_time::DateTime::calculateTimeSpan(frame_data.append_time); + date_time::DateTime::calculateTimeSpan(frame_data.append_time); LOG4CXX_DEBUG(logger_, "mSecs left: " << time_left); if (time_left >= consecutive_frame_wait_msecs_) { LOG4CXX_WARN(logger_, "Expired frame: " << frame); @@ -129,8 +133,8 @@ ProtocolFramePtrList MultiFrameBuilder::PopMultiframes() { } ++messageId_it; } // iteration over messageId_map - } // iteration over session_map - } // iteration over multiframes_map_ + } // iteration over session_map + } // iteration over multiframes_map_ LOG4CXX_DEBUG(logger_, "Result frames count: " << outpute_frame_list.size()); return outpute_frame_list; } @@ -151,21 +155,18 @@ RESULT_CODE MultiFrameBuilder::AddFrame(const ProtocolFramePtr packet) { LOG4CXX_TRACE(logger_, "FRAME_TYPE_CONSECUTIVE"); return HandleConsecutiveFrame(packet); default: - LOG4CXX_ERROR(logger_, "Frame is not FIRST or CONSECUTIVE :" - << packet); + LOG4CXX_ERROR(logger_, "Frame is not FIRST or CONSECUTIVE :" << packet); break; } return RESULT_FAIL; } RESULT_CODE MultiFrameBuilder::HandleFirstFrame(const ProtocolFramePtr packet) { - DCHECK_OR_RETURN(packet->frame_type() == FRAME_TYPE_FIRST, - RESULT_FAIL); + DCHECK_OR_RETURN(packet->frame_type() == FRAME_TYPE_FIRST, RESULT_FAIL); LOG4CXX_DEBUG(logger_, "Waiting : " << multiframes_map_); LOG4CXX_DEBUG(logger_, "Handling FIRST frame: " << packet); if (packet->payload_size() != 0u) { - LOG4CXX_ERROR(logger_, - "First frame shall have no data:" << packet); + LOG4CXX_ERROR(logger_, "First frame shall have no data:" << packet); return RESULT_FAIL; } @@ -184,25 +185,28 @@ RESULT_CODE MultiFrameBuilder::HandleFirstFrame(const ProtocolFramePtr packet) { const MessageID message_id = packet->message_id(); MessageIDToFrameMap::iterator messageId_it = messageId_map.find(message_id); if (messageId_it != messageId_map.end()) { - LOG4CXX_ERROR(logger_, "Already waiting message for connection_id: " << connection_id - << ", session_id: " << static_cast<int>(session_id) - << ", message_id: " << message_id); + LOG4CXX_ERROR(logger_, + "Already waiting message for connection_id: " + << connection_id + << ", session_id: " << static_cast<int>(session_id) + << ", message_id: " << message_id); return RESULT_FAIL; } - LOG4CXX_DEBUG(logger_, "Start waiting frames for connection_id: " << connection_id - << ", session_id: " << static_cast<int>(session_id) - << ", message_id: " << message_id); + LOG4CXX_DEBUG(logger_, + "Start waiting frames for connection_id: " + << connection_id + << ", session_id: " << static_cast<int>(session_id) + << ", message_id: " << message_id); messageId_map[message_id] = {packet, date_time::DateTime::getCurrentTime()}; return RESULT_OK; } -RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame(const ProtocolFramePtr packet) { - DCHECK_OR_RETURN(packet->frame_type() == FRAME_TYPE_CONSECUTIVE, - RESULT_FAIL); +RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame( + const ProtocolFramePtr packet) { + DCHECK_OR_RETURN(packet->frame_type() == FRAME_TYPE_CONSECUTIVE, RESULT_FAIL); LOG4CXX_DEBUG(logger_, "Handling CONSECUTIVE frame: " << packet); - const ConnectionID connection_id = packet->connection_id(); MultiFrameMap::iterator connection_it = multiframes_map_.find(connection_id); if (connection_it == multiframes_map_.end()) { @@ -218,9 +222,11 @@ RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame(const ProtocolFramePtr pac const MessageID message_id = packet->message_id(); MessageIDToFrameMap::iterator messageId_it = messageId_map.find(message_id); if (messageId_it == messageId_map.end()) { - LOG4CXX_ERROR(logger_, "No waiting message for connection_id: " << connection_id - << ", session_id: " << static_cast<int>(session_id) - << ", message_id: " << message_id); + LOG4CXX_ERROR(logger_, + "No waiting message for connection_id: " + << connection_id + << ", session_id: " << static_cast<int>(session_id) + << ", message_id: " << message_id); return RESULT_FAIL; } @@ -230,8 +236,8 @@ RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame(const ProtocolFramePtr pac RESULT_FAIL); const uint8_t new_frame_data = packet->frame_data(); - const bool is_last_consecutive = (new_frame_data == - FRAME_DATA_LAST_CONSECUTIVE); + const bool is_last_consecutive = + (new_frame_data == FRAME_DATA_LAST_CONSECUTIVE); if (is_last_consecutive) { // TODO(EZamakhov): implement count of frames and result size verification @@ -244,10 +250,11 @@ RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame(const ProtocolFramePtr pac // The next frame data is bigger at 1 if (new_frame_data != (previous_frame_data + 1)) { LOG4CXX_ERROR(logger_, - "Unexpected CONSECUTIVE frame for connection_id: " << connection_id - << ", session_id: " << static_cast<int>(session_id) - << ", message_id: " << message_id - << ", frame: " << packet); + "Unexpected CONSECUTIVE frame for connection_id: " + << connection_id + << ", session_id: " << static_cast<int>(session_id) + << ", message_id: " << message_id + << ", frame: " << packet); return RESULT_FAIL; } } @@ -256,17 +263,20 @@ RESULT_CODE MultiFrameBuilder::HandleConsecutiveFrame(const ProtocolFramePtr pac LOG4CXX_DEBUG(logger_, "Appending " << packet->data_size() << " bytes " - << "; frame_data " << static_cast<int>(new_frame_data) - << "; for connection_id: " << connection_id - << ", session_id: " << static_cast<int>(session_id) - << ", message_id: " << message_id); + << "; frame_data " + << static_cast<int>(new_frame_data) + << "; for connection_id: " << connection_id + << ", session_id: " << static_cast<int>(session_id) + << ", message_id: " << message_id); - if (assembling_frame->appendData(packet->data(), - packet->data_size()) != RESULT_OK) { + if (assembling_frame->appendData(packet->data(), packet->data_size()) != + RESULT_OK) { LOG4CXX_ERROR(logger_, "Failed to append frame for multiframe message."); return RESULT_FAIL; } - LOG4CXX_INFO(logger_, "Assembled frame with payload size: " << assembling_frame->payload_size()); + LOG4CXX_INFO(logger_, + "Assembled frame with payload size: " + << assembling_frame->payload_size()); frame_data.append_time = date_time::DateTime::getCurrentTime(); return RESULT_OK; } diff --git a/src/components/protocol_handler/src/protocol_handler_impl.cc b/src/components/protocol_handler/src/protocol_handler_impl.cc index bdba570a75..aa2910722d 100644 --- a/src/components/protocol_handler/src/protocol_handler_impl.cc +++ b/src/components/protocol_handler/src/protocol_handler_impl.cc @@ -32,7 +32,7 @@ #include "protocol_handler/protocol_handler_impl.h" #include <memory.h> -#include <algorithm> // std::find +#include <algorithm> // std::find #include "connection_handler/connection_handler_impl.h" #include "protocol_handler/session_observer.h" @@ -52,12 +52,13 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "ProtocolHandler") * Function return packet data as std::string. * If packet data is not printable return error message */ -std::string ConvertPacketDataToString(const uint8_t *data, +std::string ConvertPacketDataToString(const uint8_t* data, const size_t data_size); const size_t kStackSize = 32768; -ProtocolHandlerImpl::ProtocolHandlerImpl(const ProtocolHandlerSettings& settings, +ProtocolHandlerImpl::ProtocolHandlerImpl( + const ProtocolHandlerSettings& settings, protocol_handler::SessionObserver& session_observer, connection_handler::ConnectionHandler& connection_handler, transport_manager::TransportManager& transport_manager) @@ -69,63 +70,73 @@ ProtocolHandlerImpl::ProtocolHandlerImpl(const ProtocolHandlerSettings& settings , kPeriodForNaviAck(5) , #ifdef ENABLE_SECURITY - security_manager_(NULL), + security_manager_(NULL) + , #endif // ENABLE_SECURITY - raw_ford_messages_from_mobile_("PH FromMobile", this, - threads::ThreadOptions(kStackSize)), - raw_ford_messages_to_mobile_("PH ToMobile", this, - threads::ThreadOptions(kStackSize)) + raw_ford_messages_from_mobile_( + "PH FromMobile", this, threads::ThreadOptions(kStackSize)) + , raw_ford_messages_to_mobile_( + "PH ToMobile", this, threads::ThreadOptions(kStackSize)) #ifdef TELEMETRY_MONITOR - , metric_observer_(NULL) + , metric_observer_(NULL) #endif // TELEMETRY_MONITOR { LOG4CXX_AUTO_TRACE(logger_); protocol_header_validator_.set_max_payload_size( - get_settings().maximum_payload_size()); + get_settings().maximum_payload_size()); incoming_data_handler_.set_validator(&protocol_header_validator_); - const size_t& message_frequency_count = get_settings().message_frequency_count(); - const size_t& message_frequency_time = get_settings().message_frequency_time(); + const size_t& message_frequency_count = + get_settings().message_frequency_count(); + const size_t& message_frequency_time = + get_settings().message_frequency_time(); - if (message_frequency_time > 0u && - message_frequency_count > 0u) { + if (message_frequency_time > 0u && message_frequency_count > 0u) { message_meter_.set_time_range(message_frequency_time); - LOG4CXX_DEBUG(logger_, "Frequency meter is enabled ( " << message_frequency_count - << " per " << message_frequency_time << " mSecond)"); + LOG4CXX_DEBUG(logger_, + "Frequency meter is enabled ( " + << message_frequency_count << " per " + << message_frequency_time << " mSecond)"); } else { LOG4CXX_WARN(logger_, "Frequency meter is disabled"); } - const size_t& malformed_frequency_time = get_settings().malformed_frequency_time(); - const size_t& malformed_frequency_count = get_settings().message_frequency_time(); + const size_t& malformed_frequency_time = + get_settings().malformed_frequency_time(); + const size_t& malformed_frequency_count = + get_settings().message_frequency_time(); if (get_settings().malformed_message_filtering()) { - if (malformed_frequency_time > 0u && - malformed_frequency_count > 0u) { + if (malformed_frequency_time > 0u && malformed_frequency_count > 0u) { malformed_message_meter_.set_time_range(malformed_frequency_time); - LOG4CXX_DEBUG(logger_, "Malformed frequency meter is enabled ( " - << malformed_frequency_count << " per " - << malformed_frequency_time << " mSecond)"); + LOG4CXX_DEBUG(logger_, + "Malformed frequency meter is enabled ( " + << malformed_frequency_count << " per " + << malformed_frequency_time << " mSecond)"); } else { LOG4CXX_WARN(logger_, "Malformed frequency meter is disabled"); } } else { - LOG4CXX_WARN(logger_, "Malformed message filtering is disabled." - << "Connection will be close on first malformed message detection"); + LOG4CXX_WARN( + logger_, + "Malformed message filtering is disabled." + << "Connection will be close on first malformed message detection"); } - multiframe_builder_.set_waiting_timeout(get_settings().multiframe_waiting_timeout()); + multiframe_builder_.set_waiting_timeout( + get_settings().multiframe_waiting_timeout()); } ProtocolHandlerImpl::~ProtocolHandlerImpl() { sync_primitives::AutoLock lock(protocol_observers_lock_); if (!protocol_observers_.empty()) { - LOG4CXX_WARN(logger_, "Not all observers have unsubscribed" + LOG4CXX_WARN(logger_, + "Not all observers have unsubscribed" " from ProtocolHandlerImpl"); } } -void ProtocolHandlerImpl::AddProtocolObserver(ProtocolObserver *observer) { +void ProtocolHandlerImpl::AddProtocolObserver(ProtocolObserver* observer) { if (!observer) { LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to IProtocolObserver."); return; @@ -145,25 +156,27 @@ void ProtocolHandlerImpl::RemoveProtocolObserver(ProtocolObserver* observer) { } void set_hash_id(uint32_t hash_id, protocol_handler::ProtocolPacket& packet) { - if (HASH_ID_NOT_SUPPORTED == hash_id || - HASH_ID_WRONG == hash_id) { + if (HASH_ID_NOT_SUPPORTED == hash_id || HASH_ID_WRONG == hash_id) { return; } if (packet.protocol_version() < PROTOCOL_VERSION_2) { - LOG4CXX_DEBUG(logger_, "Packet needs no hash data (protocol version less 2)"); + LOG4CXX_DEBUG(logger_, + "Packet needs no hash data (protocol version less 2)"); return; } - LOG4CXX_DEBUG(logger_, "Set hash_id 0x" << std::hex << hash_id << - " to the packet 0x" << &packet); + LOG4CXX_DEBUG(logger_, + "Set hash_id 0x" << std::hex << hash_id << " to the packet 0x" + << &packet); // Hash id shall be 4 bytes according Ford Protocol v8 DCHECK(sizeof(hash_id) == 4); const uint32_t hash_id_be = LE_TO_BE32(hash_id); - packet.set_data(reinterpret_cast<const uint8_t*>(&hash_id_be), sizeof(hash_id_be)); + packet.set_data(reinterpret_cast<const uint8_t*>(&hash_id_be), + sizeof(hash_id_be)); } void ProtocolHandlerImpl::SendStartSessionAck(ConnectionID connection_id, uint8_t session_id, - uint8_t , + uint8_t, uint32_t hash_id, uint8_t service_type, bool protection) { @@ -171,10 +184,16 @@ void ProtocolHandlerImpl::SendStartSessionAck(ConnectionID connection_id, uint8_t protocolVersion = SupportedSDLProtocolVersion(); - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocolVersion, protection, FRAME_TYPE_CONTROL, - service_type, FRAME_DATA_START_SERVICE_ACK, session_id, - 0u, message_counters_[session_id]++)); + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocolVersion, + protection, + FRAME_TYPE_CONTROL, + service_type, + FRAME_DATA_START_SERVICE_ACK, + session_id, + 0u, + message_counters_[session_id]++)); set_hash_id(hash_id, *ptr); @@ -182,10 +201,11 @@ void ProtocolHandlerImpl::SendStartSessionAck(ConnectionID connection_id, impl::RawFordMessageToMobile(ptr, false)); LOG4CXX_DEBUG(logger_, - "SendStartSessionAck() for connection " << connection_id - << " for service_type " << static_cast<int32_t>(service_type) - << " session_id " << static_cast<int32_t>(session_id) - << " protection " << (protection ? "ON" : "OFF")); + "SendStartSessionAck() for connection " + << connection_id << " for service_type " + << static_cast<int32_t>(service_type) << " session_id " + << static_cast<int32_t>(session_id) << " protection " + << (protection ? "ON" : "OFF")); } void ProtocolHandlerImpl::SendStartSessionNAck(ConnectionID connection_id, @@ -194,18 +214,25 @@ void ProtocolHandlerImpl::SendStartSessionNAck(ConnectionID connection_id, uint8_t service_type) { LOG4CXX_AUTO_TRACE(logger_); - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - service_type, FRAME_DATA_START_SERVICE_NACK, - session_id, 0u, message_counters_[session_id]++)); + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + service_type, + FRAME_DATA_START_SERVICE_NACK, + session_id, + 0u, + message_counters_[session_id]++)); raw_ford_messages_to_mobile_.PostMessage( impl::RawFordMessageToMobile(ptr, false)); LOG4CXX_DEBUG(logger_, - "SendStartSessionNAck() for connection " << connection_id - << " for service_type " << static_cast<int32_t>(service_type) - << " session_id " << static_cast<int32_t>(session_id)); + "SendStartSessionNAck() for connection " + << connection_id << " for service_type " + << static_cast<int32_t>(service_type) << " session_id " + << static_cast<int32_t>(session_id)); } void ProtocolHandlerImpl::SendEndSessionNAck(ConnectionID connection_id, @@ -214,10 +241,16 @@ void ProtocolHandlerImpl::SendEndSessionNAck(ConnectionID connection_id, uint8_t service_type) { LOG4CXX_AUTO_TRACE(logger_); - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - service_type, FRAME_DATA_END_SERVICE_NACK, - session_id, 0u, message_counters_[session_id]++)); + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + service_type, + FRAME_DATA_END_SERVICE_NACK, + session_id, + 0u, + message_counters_[session_id]++)); raw_ford_messages_to_mobile_.PostMessage( impl::RawFordMessageToMobile(ptr, false)); @@ -226,7 +259,7 @@ void ProtocolHandlerImpl::SendEndSessionNAck(ConnectionID connection_id, "SendEndSessionNAck() for connection " << connection_id << " for service_type " << static_cast<int32_t>(service_type) << " session_id " - << static_cast<int32_t>(session_id)); + << static_cast<int32_t>(session_id)); } SessionObserver& ProtocolHandlerImpl::get_session_observer() { @@ -239,18 +272,25 @@ void ProtocolHandlerImpl::SendEndSessionAck(ConnectionID connection_id, uint8_t service_type) { LOG4CXX_AUTO_TRACE(logger_); - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - service_type, FRAME_DATA_END_SERVICE_ACK, session_id, - 0u, message_counters_[session_id]++)); + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + service_type, + FRAME_DATA_END_SERVICE_ACK, + session_id, + 0u, + message_counters_[session_id]++)); raw_ford_messages_to_mobile_.PostMessage( impl::RawFordMessageToMobile(ptr, false)); LOG4CXX_DEBUG(logger_, - "SendEndSessionAck() for connection " << connection_id - << " for service_type " << static_cast<int32_t>(service_type) - << " session_id " << static_cast<int32_t>(session_id)); + "SendEndSessionAck() for connection " + << connection_id << " for service_type " + << static_cast<int32_t>(service_type) << " session_id " + << static_cast<int32_t>(session_id)); } void ProtocolHandlerImpl::SendEndServicePrivate(int32_t connection_id, @@ -259,20 +299,29 @@ void ProtocolHandlerImpl::SendEndServicePrivate(int32_t connection_id, LOG4CXX_AUTO_TRACE(logger_); uint8_t protocol_version; - if (session_observer_.ProtocolVersionUsed(connection_id, - session_id, protocol_version)) { - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - service_type, FRAME_DATA_END_SERVICE, session_id, 0, - message_counters_[session_id]++)); + if (session_observer_.ProtocolVersionUsed( + connection_id, session_id, protocol_version)) { + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + service_type, + FRAME_DATA_END_SERVICE, + session_id, + 0, + message_counters_[session_id]++)); raw_ford_messages_to_mobile_.PostMessage( - impl::RawFordMessageToMobile(ptr, false)); - LOG4CXX_DEBUG(logger_, "SendEndSession() for connection " << connection_id - << " for service_type " << service_type - << " session_id " << static_cast<int32_t>(session_id)); + impl::RawFordMessageToMobile(ptr, false)); + LOG4CXX_DEBUG(logger_, + "SendEndSession() for connection " + << connection_id << " for service_type " << service_type + << " session_id " << static_cast<int32_t>(session_id)); } else { - LOG4CXX_WARN(logger_, "SendEndSession is failed connection or session does not exist"); + LOG4CXX_WARN( + logger_, + "SendEndSession is failed connection or session does not exist"); } } @@ -293,18 +342,26 @@ RESULT_CODE ProtocolHandlerImpl::SendHeartBeatAck(ConnectionID connection_id, LOG4CXX_AUTO_TRACE(logger_); uint8_t protocol_version; - if (session_observer_.ProtocolVersionUsed(connection_id, - session_id, protocol_version)) { - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - SERVICE_TYPE_CONTROL, FRAME_DATA_HEART_BEAT_ACK, session_id, - 0u, message_id)); + if (session_observer_.ProtocolVersionUsed( + connection_id, session_id, protocol_version)) { + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + SERVICE_TYPE_CONTROL, + FRAME_DATA_HEART_BEAT_ACK, + session_id, + 0u, + message_id)); - raw_ford_messages_to_mobile_.PostMessage( - impl::RawFordMessageToMobile(ptr, false)); - return RESULT_OK; + raw_ford_messages_to_mobile_.PostMessage( + impl::RawFordMessageToMobile(ptr, false)); + return RESULT_OK; } - LOG4CXX_WARN(logger_, "SendHeartBeatAck is failed connection or session does not exist"); + LOG4CXX_WARN( + logger_, + "SendHeartBeatAck is failed connection or session does not exist"); return RESULT_FAIL; } @@ -312,35 +369,44 @@ void ProtocolHandlerImpl::SendHeartBeat(int32_t connection_id, uint8_t session_id) { LOG4CXX_AUTO_TRACE(logger_); uint8_t protocol_version; - if (session_observer_.ProtocolVersionUsed(connection_id, - session_id, protocol_version)) { - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - SERVICE_TYPE_CONTROL, FRAME_DATA_HEART_BEAT, session_id, - 0u, message_counters_[session_id]++)); - raw_ford_messages_to_mobile_.PostMessage(impl::RawFordMessageToMobile(ptr, false)); - LOG4CXX_DEBUG(logger_, "SendHeartBeat finished successfully"); + if (session_observer_.ProtocolVersionUsed( + connection_id, session_id, protocol_version)) { + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + SERVICE_TYPE_CONTROL, + FRAME_DATA_HEART_BEAT, + session_id, + 0u, + message_counters_[session_id]++)); + raw_ford_messages_to_mobile_.PostMessage( + impl::RawFordMessageToMobile(ptr, false)); + LOG4CXX_DEBUG(logger_, "SendHeartBeat finished successfully"); } else { - LOG4CXX_WARN(logger_, "SendHeartBeat is failed connection or session does not exist"); + LOG4CXX_WARN( + logger_, + "SendHeartBeat is failed connection or session does not exist"); } } void ProtocolHandlerImpl::SendMessageToMobileApp(const RawMessagePtr message, bool final_message) { #ifdef TELEMETRY_MONITOR - const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); + const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); #endif // TELEMETRY_MONITOR LOG4CXX_AUTO_TRACE(logger_); if (!message) { LOG4CXX_ERROR(logger_, - "Invalid message for sending to mobile app is received."); + "Invalid message for sending to mobile app is received."); return; } uint32_t connection_handle = 0; uint8_t sessionID = 0; - session_observer_.PairFromKey(message->connection_key(), &connection_handle, - &sessionID); + session_observer_.PairFromKey( + message->connection_key(), &connection_handle, &sessionID); #ifdef TELEMETRY_MONITOR uint32_t message_id = message_counters_[sessionID]; if (metric_observer_) { @@ -352,30 +418,36 @@ void ProtocolHandlerImpl::SendMessageToMobileApp(const RawMessagePtr message, switch (message->protocol_version()) { case PROTOCOL_VERSION_3: case PROTOCOL_VERSION_4: - frame_size = max_frame_size > MAXIMUM_FRAME_DATA_V2_SIZE ? - max_frame_size : MAXIMUM_FRAME_DATA_V2_SIZE; + frame_size = max_frame_size > MAXIMUM_FRAME_DATA_V2_SIZE + ? max_frame_size + : MAXIMUM_FRAME_DATA_V2_SIZE; break; default: break; } #ifdef ENABLE_SECURITY - const security_manager::SSLContext *ssl_context = session_observer_. - GetSSLContext(message->connection_key(), message->service_type()); + const security_manager::SSLContext* ssl_context = + session_observer_.GetSSLContext(message->connection_key(), + message->service_type()); if (ssl_context && ssl_context->IsInitCompleted()) { const size_t max_block_size = ssl_context->get_max_block_size(frame_size); DCHECK(max_block_size > 0); if (max_block_size > 0) { frame_size = max_block_size; - LOG4CXX_DEBUG(logger_, "Security set new optimal packet size " << frame_size); + LOG4CXX_DEBUG(logger_, + "Security set new optimal packet size " << frame_size); } else { - LOG4CXX_ERROR(logger_, "Security could not return max block size, use the origin one"); + LOG4CXX_ERROR( + logger_, + "Security could not return max block size, use the origin one"); } } LOG4CXX_DEBUG(logger_, "Optimal packet size is " << frame_size); #endif // ENABLE_SECURITY if (message->data_size() <= frame_size) { - RESULT_CODE result = SendSingleFrameMessage(connection_handle, sessionID, + RESULT_CODE result = SendSingleFrameMessage(connection_handle, + sessionID, message->protocol_version(), message->service_type(), message->data_size(), @@ -383,33 +455,35 @@ void ProtocolHandlerImpl::SendMessageToMobileApp(const RawMessagePtr message, final_message); if (result != RESULT_OK) { LOG4CXX_ERROR(logger_, - "ProtocolHandler failed to send single frame message."); + "ProtocolHandler failed to send single frame message."); } } else { - LOG4CXX_DEBUG( - logger_, - "Message will be sent in multiple frames; max frame size is " << frame_size); + LOG4CXX_DEBUG(logger_, + "Message will be sent in multiple frames; max frame size is " + << frame_size); - RESULT_CODE result = SendMultiFrameMessage(connection_handle, sessionID, + RESULT_CODE result = SendMultiFrameMessage(connection_handle, + sessionID, message->protocol_version(), message->service_type(), message->data_size(), message->data(), - frame_size, final_message); + frame_size, + final_message); if (result != RESULT_OK) { LOG4CXX_ERROR(logger_, - "ProtocolHandler failed to send multiframe messages."); + "ProtocolHandler failed to send multiframe messages."); } } #ifdef TELEMETRY_MONITOR - if (metric_observer_) { - PHTelemetryObserver::MessageMetric *metric - = new PHTelemetryObserver::MessageMetric(); - metric->message_id = message_id; - metric->connection_key = message->connection_key(); - metric->raw_msg = message; - metric_observer_->EndMessageProcess(metric); - } + if (metric_observer_) { + PHTelemetryObserver::MessageMetric* metric = + new PHTelemetryObserver::MessageMetric(); + metric->message_id = message_id; + metric->connection_key = message->connection_key(); + metric->raw_msg = message; + metric_observer_->EndMessageProcess(metric); + } #endif } @@ -417,31 +491,33 @@ void ProtocolHandlerImpl::OnTMMessageReceived(const RawMessagePtr tm_message) { LOG4CXX_AUTO_TRACE(logger_); if (!tm_message) { - LOG4CXX_ERROR( - logger_, - "Invalid incoming message received in" - << " ProtocolHandler from Transport Manager."); + LOG4CXX_ERROR(logger_, + "Invalid incoming message received in" + << " ProtocolHandler from Transport Manager."); return; } const uint32_t connection_key = tm_message->connection_key(); LOG4CXX_DEBUG(logger_, - "Received data from TM with connection id " << connection_key << - " msg data_size " << tm_message->data_size()); + "Received data from TM with connection id " + << connection_key << " msg data_size " + << tm_message->data_size()); RESULT_CODE result; size_t malformed_occurs = 0u; const ProtocolFramePtrList protocol_frames = - incoming_data_handler_.ProcessData(*tm_message, &result, &malformed_occurs); + incoming_data_handler_.ProcessData( + *tm_message, &result, &malformed_occurs); LOG4CXX_DEBUG(logger_, "Proccessed " << protocol_frames.size() << " frames"); if (result != RESULT_OK) { if (result == RESULT_MALFORMED_OCCURS) { - LOG4CXX_WARN(logger_, "Malformed message occurs, connection id " - << connection_key); + LOG4CXX_WARN(logger_, + "Malformed message occurs, connection id " + << connection_key); if (!get_settings().malformed_message_filtering()) { LOG4CXX_DEBUG(logger_, "Malformed message filterign disabled"); session_observer_.OnMalformedMessageCallback(connection_key); - // For tracking only malformed occurrence check outpute + // For tracking only malformed occurrence check outpute } else { if (malformed_occurs > 0) { TrackMalformedMessage(connection_key, malformed_occurs); @@ -453,8 +529,9 @@ void ProtocolHandlerImpl::OnTMMessageReceived(const RawMessagePtr tm_message) { } } - for (ProtocolFramePtrList::const_iterator it = - protocol_frames.begin(); it != protocol_frames.end(); ++it) { + for (ProtocolFramePtrList::const_iterator it = protocol_frames.begin(); + it != protocol_frames.end(); + ++it) { #ifdef TELEMETRY_MONITOR const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); #endif // TELEMETRY_MONITOR @@ -478,7 +555,7 @@ void ProtocolHandlerImpl::OnTMMessageReceived(const RawMessagePtr tm_message) { } void ProtocolHandlerImpl::OnTMMessageReceiveFailed( - const transport_manager::DataReceiveError &error) { + const transport_manager::DataReceiveError& error) { // TODO(PV): implement LOG4CXX_ERROR(logger_, "Received error on attemping to recieve message."); } @@ -488,11 +565,12 @@ void ProtocolHandlerImpl::NotifySubscribers(const RawMessagePtr message) { sync_primitives::AutoLock lock(protocol_observers_lock_); if (protocol_observers_.empty()) { LOG4CXX_ERROR( - logger_, - "Cannot handle multiframe message: no IProtocolObserver is set."); + logger_, + "Cannot handle multiframe message: no IProtocolObserver is set."); } for (ProtocolObservers::iterator it = protocol_observers_.begin(); - protocol_observers_.end() != it; ++it) { + protocol_observers_.end() != it; + ++it) { ProtocolObserver* observe = *it; observe->OnMessageReceived(message); } @@ -504,13 +582,13 @@ void ProtocolHandlerImpl::OnTMMessageSend(const RawMessagePtr message) { uint32_t connection_handle = 0; uint8_t sessionID = 0; - session_observer_.PairFromKey(message->connection_key(), - &connection_handle, - &sessionID); + session_observer_.PairFromKey( + message->connection_key(), &connection_handle, &sessionID); std::vector<uint32_t>::iterator connection_it = std::find(ready_to_close_connections_.begin(), - ready_to_close_connections_.end(), connection_handle); + ready_to_close_connections_.end(), + connection_handle); if (ready_to_close_connections_.end() != connection_it) { ready_to_close_connections_.erase(connection_it); @@ -519,8 +597,8 @@ void ProtocolHandlerImpl::OnTMMessageSend(const RawMessagePtr message) { } ProtocolPacket sent_message(message->connection_key()); - const RESULT_CODE result = sent_message.deserializePacket(message->data(), - message->data_size()); + const RESULT_CODE result = + sent_message.deserializePacket(message->data(), message->data_size()); if (result != RESULT_OK) { LOG4CXX_ERROR(logger_, "Error while message deserialization."); return; @@ -531,33 +609,36 @@ void ProtocolHandlerImpl::OnTMMessageSend(const RawMessagePtr message) { if (sessions_last_message_id_.end() != it) { uint32_t last_message_id = it->second; sessions_last_message_id_.erase(it); - if ((sent_message.message_id() == last_message_id) && + if ((sent_message.message_id() == last_message_id) && ((FRAME_TYPE_SINGLE == sent_message.frame_type()) || - ((FRAME_TYPE_CONSECUTIVE == sent_message.frame_type()) && - (0 == sent_message.frame_data())))) { + ((FRAME_TYPE_CONSECUTIVE == sent_message.frame_type()) && + (0 == sent_message.frame_data())))) { ready_to_close_connections_.push_back(connection_handle); SendEndSession(connection_handle, sent_message.session_id()); } } sync_primitives::AutoLock lock(protocol_observers_lock_); for (ProtocolObservers::iterator it = protocol_observers_.begin(); - protocol_observers_.end() != it; ++it) { + protocol_observers_.end() != it; + ++it) { (*it)->OnMobileMessageSent(message); } } void ProtocolHandlerImpl::OnTMMessageSendFailed( - const transport_manager::DataSendError &error, + const transport_manager::DataSendError& error, const RawMessagePtr message) { DCHECK_OR_RETURN_VOID(message); // TODO(PV): implement - LOG4CXX_ERROR(logger_, "Sending message " << message->data_size() - << "bytes failed, connection_key " << message->connection_key() - << "Error_text: " << error.text()); + LOG4CXX_ERROR(logger_, + "Sending message " << message->data_size() + << "bytes failed, connection_key " + << message->connection_key() + << "Error_text: " << error.text()); } void ProtocolHandlerImpl::OnConnectionEstablished( - const transport_manager::DeviceInfo &device_info, + const transport_manager::DeviceInfo& device_info, const transport_manager::ConnectionUID connection_id) { incoming_data_handler_.AddConnection(connection_id); multiframe_builder_.AddConnection(connection_id); @@ -586,17 +667,19 @@ RESULT_CODE ProtocolHandlerImpl::SendFrame(const ProtocolFramePtr packet) { } #endif // ENABLE_SECURITY - LOG4CXX_DEBUG(logger_, "Packet to be sent: " << - ConvertPacketDataToString(packet->data(), packet->data_size()) << - " of size: " << packet->data_size()); + LOG4CXX_DEBUG( + logger_, + "Packet to be sent: " + << ConvertPacketDataToString(packet->data(), packet->data_size()) + << " of size: " << packet->data_size()); const RawMessagePtr message_to_send = packet->serializePacket(); if (!message_to_send) { LOG4CXX_ERROR(logger_, "Serialization error"); - return RESULT_FAIL; + return RESULT_FAIL; } LOG4CXX_DEBUG(logger_, - "Message to send with connection id " << - static_cast<int>(packet->connection_id())); + "Message to send with connection id " + << static_cast<int>(packet->connection_id())); if (transport_manager::E_SUCCESS != transport_manager_.SendMessageToDevice(message_to_send)) { @@ -607,15 +690,26 @@ RESULT_CODE ProtocolHandlerImpl::SendFrame(const ProtocolFramePtr packet) { } RESULT_CODE ProtocolHandlerImpl::SendSingleFrameMessage( - const ConnectionID connection_id, const uint8_t session_id, - const uint32_t protocol_version, const uint8_t service_type, - const size_t data_size, const uint8_t *data, + const ConnectionID connection_id, + const uint8_t session_id, + const uint32_t protocol_version, + const uint8_t service_type, + const size_t data_size, + const uint8_t* data, const bool is_final_message) { LOG4CXX_AUTO_TRACE(logger_); - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_SINGLE, service_type, FRAME_DATA_SINGLE, - session_id, data_size, message_counters_[session_id]++, data)); + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + service_type, + FRAME_DATA_SINGLE, + session_id, + data_size, + message_counters_[session_id]++, + data)); raw_ford_messages_to_mobile_.PostMessage( impl::RawFordMessageToMobile(ptr, is_final_message)); @@ -623,14 +717,19 @@ RESULT_CODE ProtocolHandlerImpl::SendSingleFrameMessage( } RESULT_CODE ProtocolHandlerImpl::SendMultiFrameMessage( - const ConnectionID connection_id, const uint8_t session_id, - const uint8_t protocol_version, const uint8_t service_type, - const size_t data_size, const uint8_t *data, - const size_t max_frame_size, const bool is_final_message) { + const ConnectionID connection_id, + const uint8_t session_id, + const uint8_t protocol_version, + const uint8_t service_type, + const size_t data_size, + const uint8_t* data, + const size_t max_frame_size, + const bool is_final_message) { LOG4CXX_AUTO_TRACE(logger_); - LOG4CXX_DEBUG( - logger_, " data size " << data_size << " max_frame_size " << max_frame_size); + LOG4CXX_DEBUG(logger_, + " data size " << data_size << " max_frame_size " + << max_frame_size); // remainder of last frame const size_t lastframe_remainder = data_size % max_frame_size; @@ -639,13 +738,12 @@ RESULT_CODE ProtocolHandlerImpl::SendMultiFrameMessage( lastframe_remainder > 0 ? lastframe_remainder : max_frame_size; const size_t frames_count = data_size / max_frame_size + - // add last frame if not empty - (lastframe_remainder > 0 ? 1 : 0); + // add last frame if not empty + (lastframe_remainder > 0 ? 1 : 0); - LOG4CXX_DEBUG( - logger_, - "Data " << data_size << " bytes in " << frames_count << - " frames with last frame size " << lastframe_size); + LOG4CXX_DEBUG(logger_, + "Data " << data_size << " bytes in " << frames_count + << " frames with last frame size " << lastframe_size); DCHECK(max_frame_size >= FIRST_FRAME_DATA_SIZE); DCHECK(FIRST_FRAME_DATA_SIZE >= 8); @@ -660,13 +758,20 @@ RESULT_CODE ProtocolHandlerImpl::SendMultiFrameMessage( out_data[6] = frames_count >> 8; out_data[7] = frames_count; - // TODO(EZamakhov): investigate message_id for CONSECUTIVE frames - APPLINK-9531 + // TODO(EZamakhov): investigate message_id for CONSECUTIVE frames - + // APPLINK-9531 const uint8_t message_id = message_counters_[session_id]++; const ProtocolFramePtr firstPacket( - new protocol_handler::ProtocolPacket( - connection_id, protocol_version, PROTECTION_OFF, FRAME_TYPE_FIRST, - service_type, FRAME_DATA_FIRST, session_id, FIRST_FRAME_DATA_SIZE, - message_id, out_data)); + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_FIRST, + service_type, + FRAME_DATA_FIRST, + session_id, + FIRST_FRAME_DATA_SIZE, + message_id, + out_data)); raw_ford_messages_to_mobile_.PostMessage( impl::RawFordMessageToMobile(firstPacket, false)); @@ -675,19 +780,25 @@ RESULT_CODE ProtocolHandlerImpl::SendMultiFrameMessage( for (uint32_t i = 0; i < frames_count; ++i) { const bool is_last_frame = (i == (frames_count - 1)); const size_t frame_size = is_last_frame ? lastframe_size : max_frame_size; - const uint8_t data_type = - is_last_frame - ? FRAME_DATA_LAST_CONSECUTIVE - : (i % FRAME_DATA_MAX_CONSECUTIVE + 1); + const uint8_t data_type = is_last_frame + ? FRAME_DATA_LAST_CONSECUTIVE + : (i % FRAME_DATA_MAX_CONSECUTIVE + 1); const bool is_final_packet = is_last_frame ? is_final_message : false; - const ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONSECUTIVE, - service_type, data_type, session_id, frame_size, message_id, - data + max_frame_size * i)); + const ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONSECUTIVE, + service_type, + data_type, + session_id, + frame_size, + message_id, + data + max_frame_size * i)); raw_ford_messages_to_mobile_.PostMessage( - impl::RawFordMessageToMobile(ptr, is_final_packet)); + impl::RawFordMessageToMobile(ptr, is_final_packet)); LOG4CXX_DEBUG(logger_, '#' << i << " frame is sent."); } return RESULT_OK; @@ -708,43 +819,44 @@ RESULT_CODE ProtocolHandlerImpl::HandleMessage(const ProtocolFramePtr packet) { LOG4CXX_TRACE(logger_, "FRAME_TYPE_FIRST or FRAME_TYPE_CONSECUTIVE"); return HandleMultiFrameMessage(packet); default: { - LOG4CXX_WARN(logger_, "Unknown frame type" - << packet->frame_type()); + LOG4CXX_WARN(logger_, "Unknown frame type" << packet->frame_type()); return RESULT_FAIL; } } return RESULT_OK; } -RESULT_CODE ProtocolHandlerImpl::HandleSingleFrameMessage(const ProtocolFramePtr packet) { +RESULT_CODE ProtocolHandlerImpl::HandleSingleFrameMessage( + const ProtocolFramePtr packet) { LOG4CXX_AUTO_TRACE(logger_); - LOG4CXX_DEBUG(logger_, - "FRAME_TYPE_SINGLE message of size " << packet->data_size() << "; message " - << ConvertPacketDataToString(packet->data(), packet->data_size())); - - const uint32_t connection_key = - session_observer_.KeyFromPair(packet->connection_id(), packet->session_id()); - - const RawMessagePtr rawMessage( - new RawMessage(connection_key, - packet->protocol_version(), - packet->data(), - packet->total_data_bytes(), - packet->service_type(), - packet->payload_size())); + LOG4CXX_DEBUG( + logger_, + "FRAME_TYPE_SINGLE message of size " + << packet->data_size() << "; message " + << ConvertPacketDataToString(packet->data(), packet->data_size())); + + const uint32_t connection_key = session_observer_.KeyFromPair( + packet->connection_id(), packet->session_id()); + + const RawMessagePtr rawMessage(new RawMessage(connection_key, + packet->protocol_version(), + packet->data(), + packet->total_data_bytes(), + packet->service_type(), + packet->payload_size())); if (!rawMessage) { return RESULT_FAIL; } #ifdef TELEMETRY_MONITOR - if (metric_observer_) { - PHTelemetryObserver::MessageMetric *metric - = new PHTelemetryObserver::MessageMetric(); - metric->message_id = packet->message_id(); - metric->connection_key = connection_key; - metric->raw_msg = rawMessage; - metric_observer_->EndMessageProcess(metric); - } + if (metric_observer_) { + PHTelemetryObserver::MessageMetric* metric = + new PHTelemetryObserver::MessageMetric(); + metric->message_id = packet->message_id(); + metric->connection_key = connection_key; + metric->raw_msg = rawMessage; + metric_observer_->EndMessageProcess(metric); + } #endif // TODO(EZamakhov): check service in session @@ -752,7 +864,8 @@ RESULT_CODE ProtocolHandlerImpl::HandleSingleFrameMessage(const ProtocolFramePtr return RESULT_OK; } -RESULT_CODE ProtocolHandlerImpl::HandleMultiFrameMessage(const ProtocolFramePtr packet) { +RESULT_CODE ProtocolHandlerImpl::HandleMultiFrameMessage( + const ProtocolFramePtr packet) { LOG4CXX_AUTO_TRACE(logger_); if (multiframe_builder_.AddFrame(packet) != RESULT_OK) { @@ -762,7 +875,8 @@ RESULT_CODE ProtocolHandlerImpl::HandleMultiFrameMessage(const ProtocolFramePtr return RESULT_OK; } -RESULT_CODE ProtocolHandlerImpl::HandleControlMessage(const ProtocolFramePtr packet) { +RESULT_CODE ProtocolHandlerImpl::HandleControlMessage( + const ProtocolFramePtr packet) { LOG4CXX_AUTO_TRACE(logger_); // TODO{ALeshin}: Rename "Session" to "Service" on PH, CH, AM levels @@ -785,22 +899,25 @@ RESULT_CODE ProtocolHandlerImpl::HandleControlMessage(const ProtocolFramePtr pac } case FRAME_DATA_HEART_BEAT_ACK: { LOG4CXX_TRACE(logger_, "FrameData Heartbeat ACK"); - LOG4CXX_DEBUG(logger_, "Received Heartbeat ACK from mobile," - " connection: " << packet->connection_id()); + LOG4CXX_DEBUG(logger_, + "Received Heartbeat ACK from mobile," + " connection: " + << packet->connection_id()); return RESULT_OK; } default: LOG4CXX_WARN(logger_, - "Control message of type " << static_cast<int>(packet->frame_data()) - << " ignored"); + "Control message of type " + << static_cast<int>(packet->frame_data()) << " ignored"); return RESULT_OK; } return RESULT_OK; } -uint32_t get_hash_id(const ProtocolPacket &packet) { +uint32_t get_hash_id(const ProtocolPacket& packet) { if (packet.protocol_version() < PROTOCOL_VERSION_2) { - LOG4CXX_DEBUG(logger_, "Packet without hash data (protocol version less 2)"); + LOG4CXX_DEBUG(logger_, + "Packet without hash data (protocol version less 2)"); return HASH_ID_NOT_SUPPORTED; } if (packet.data_size() < 4) { @@ -813,7 +930,8 @@ uint32_t get_hash_id(const ProtocolPacket &packet) { return hash_le == HASH_ID_NOT_SUPPORTED ? HASH_ID_WRONG : hash_le; } -RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndSession(const ProtocolPacket& packet) { +RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndSession( + const ProtocolPacket& packet) { LOG4CXX_AUTO_TRACE(logger_); const uint8_t current_session_id = packet.session_id(); @@ -826,20 +944,25 @@ RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndSession(const ProtocolPa // TODO(EZamakhov): add clean up output queue (for removed service) if (session_key != 0) { - SendEndSessionAck(connection_id, current_session_id, - packet.protocol_version(), service_type); + SendEndSessionAck(connection_id, + current_session_id, + packet.protocol_version(), + service_type); message_counters_.erase(current_session_id); } else { - LOG4CXX_WARN( - logger_, - "Refused to end session " << static_cast<int>(service_type) << " type."); - SendEndSessionNAck(connection_id, current_session_id, packet.protocol_version(), + LOG4CXX_WARN(logger_, + "Refused to end session " << static_cast<int>(service_type) + << " type."); + SendEndSessionNAck(connection_id, + current_session_id, + packet.protocol_version(), service_type); } return RESULT_OK; } -RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndServiceACK(const ProtocolPacket& packet) { +RESULT_CODE ProtocolHandlerImpl::HandleControlMessageEndServiceACK( + const ProtocolPacket& packet) { LOG4CXX_AUTO_TRACE(logger_); const uint8_t current_session_id = packet.session_id(); @@ -866,27 +989,24 @@ namespace { */ class StartSessionHandler : public security_manager::SecurityManagerListener { public: - StartSessionHandler( - uint32_t connection_key, - ProtocolHandlerImpl *protocol_handler, - SessionObserver& session_observer, - ConnectionID connection_id, - int32_t session_id, - uint8_t protocol_version, - uint32_t hash_id, - ServiceType service_type, - const std::vector<int>& force_protected_service) - : connection_key_(connection_key), - protocol_handler_(protocol_handler), - session_observer_(session_observer), - connection_id_(connection_id), - session_id_(session_id), - protocol_version_(protocol_version), - hash_id_(hash_id), - service_type_(service_type) - ,force_protected_service_(force_protected_service) - { - } + StartSessionHandler(uint32_t connection_key, + ProtocolHandlerImpl* protocol_handler, + SessionObserver& session_observer, + ConnectionID connection_id, + int32_t session_id, + uint8_t protocol_version, + uint32_t hash_id, + ServiceType service_type, + const std::vector<int>& force_protected_service) + : connection_key_(connection_key) + , protocol_handler_(protocol_handler) + , session_observer_(session_observer) + , connection_id_(connection_id) + , session_id_(session_id) + , protocol_version_(protocol_version) + , hash_id_(hash_id) + , service_type_(service_type) + , force_protected_service_(force_protected_service) {} bool OnHandshakeDone( const uint32_t connection_key, @@ -901,8 +1021,8 @@ class StartSessionHandler : public security_manager::SecurityManagerListener { session_observer_.GetSSLContext(connection_key_, service_type_) != NULL; if (was_service_protection_enabled) { if (!success) { - protocol_handler_->SendStartSessionNAck(connection_id_, session_id_, - protocol_version_, service_type_); + protocol_handler_->SendStartSessionNAck( + connection_id_, session_id_, protocol_version_, service_type_); } else { // Could not be success handshake and not already protected service NOTREACHED(); @@ -911,18 +1031,18 @@ class StartSessionHandler : public security_manager::SecurityManagerListener { if (success) { session_observer_.SetProtectionFlag(connection_key_, service_type_); } - protocol_handler_->SendStartSessionAck( - connection_id_, session_id_, - protocol_version_, hash_id_, - service_type_, - success); + protocol_handler_->SendStartSessionAck(connection_id_, + session_id_, + protocol_version_, + hash_id_, + service_type_, + success); } delete this; return true; } - void OnCertificateUpdateRequired() OVERRIDE { - } + void OnCertificateUpdateRequired() OVERRIDE {} virtual const std::vector<int>& force_protected_service() const { return force_protected_service_; @@ -930,7 +1050,7 @@ class StartSessionHandler : public security_manager::SecurityManagerListener { private: const uint32_t connection_key_; - ProtocolHandlerImpl *protocol_handler_; + ProtocolHandlerImpl* protocol_handler_; SessionObserver& session_observer_; const ConnectionID connection_id_; @@ -943,18 +1063,20 @@ class StartSessionHandler : public security_manager::SecurityManagerListener { } // namespace #endif // ENABLE_SECURITY -RESULT_CODE ProtocolHandlerImpl::HandleControlMessageStartSession(const ProtocolPacket& packet) { +RESULT_CODE ProtocolHandlerImpl::HandleControlMessageStartSession( + const ProtocolPacket& packet) { LOG4CXX_AUTO_TRACE(logger_); - LOG4CXX_DEBUG(logger_, - "Protocol version:" << - static_cast<int>(packet.protocol_version())); + LOG4CXX_DEBUG( + logger_, + "Protocol version:" << static_cast<int>(packet.protocol_version())); const ServiceType service_type = ServiceTypeFromByte(packet.service_type()); const uint8_t protocol_version = packet.protocol_version(); #ifdef ENABLE_SECURITY const bool protection = // Protocolo version 1 is not support protection - (protocol_version > PROTOCOL_VERSION_1) ? packet.protection_flag() : false; + (protocol_version > PROTOCOL_VERSION_1) ? packet.protection_flag() + : false; #else const bool protection = false; #endif // ENABLE_SECURITY @@ -962,13 +1084,16 @@ RESULT_CODE ProtocolHandlerImpl::HandleControlMessageStartSession(const Protocol uint32_t hash_id; const ConnectionID connection_id = packet.connection_id(); const uint32_t session_id = session_observer_.OnSessionStartedCallback( - connection_id, packet.session_id(), service_type, protection, &hash_id); + connection_id, packet.session_id(), service_type, protection, &hash_id); if (0 == session_id) { - LOG4CXX_WARN(logger_, "Refused by session_observer to create service " << - static_cast<int32_t>(service_type) << " type."); - SendStartSessionNAck(connection_id, packet.session_id(), - protocol_version, packet.service_type()); + LOG4CXX_WARN(logger_, + "Refused by session_observer to create service " + << static_cast<int32_t>(service_type) << " type."); + SendStartSessionNAck(connection_id, + packet.session_id(), + protocol_version, + packet.service_type()); return RESULT_OK; } @@ -978,66 +1103,89 @@ RESULT_CODE ProtocolHandlerImpl::HandleControlMessageStartSession(const Protocol const uint32_t connection_key = session_observer_.KeyFromPair(connection_id, session_id); - security_manager::SSLContext *ssl_context = + security_manager::SSLContext* ssl_context = security_manager_->CreateSSLContext(connection_key); if (!ssl_context) { const std::string error("CreateSSLContext failed"); LOG4CXX_ERROR(logger_, error); security_manager_->SendInternalError( - connection_key, security_manager::SecurityManager::ERROR_INTERNAL, error); + connection_key, + security_manager::SecurityManager::ERROR_INTERNAL, + error); // Start service without protection - SendStartSessionAck(connection_id, session_id, packet.protocol_version(), - hash_id, packet.service_type(), PROTECTION_OFF); + SendStartSessionAck(connection_id, + session_id, + packet.protocol_version(), + hash_id, + packet.service_type(), + PROTECTION_OFF); return RESULT_OK; } if (ssl_context->IsInitCompleted()) { // mark service as protected session_observer_.SetProtectionFlag(connection_key, service_type); // Start service as protected with current SSLContext - SendStartSessionAck(connection_id, session_id, packet.protocol_version(), - hash_id, packet.service_type(), PROTECTION_ON); + SendStartSessionAck(connection_id, + session_id, + packet.protocol_version(), + hash_id, + packet.service_type(), + PROTECTION_ON); } else { security_manager_->AddListener( - new StartSessionHandler( - connection_key, this, session_observer_, - connection_id, session_id, packet.protocol_version(), - hash_id, service_type, get_settings().force_protected_service())); + new StartSessionHandler(connection_key, + this, + session_observer_, + connection_id, + session_id, + packet.protocol_version(), + hash_id, + service_type, + get_settings().force_protected_service())); if (!ssl_context->IsHandshakePending()) { // Start handshake process security_manager_->StartHandshake(connection_key); } } - LOG4CXX_DEBUG(logger_, "Protection establishing for connection " - << connection_key << " is in progress"); + LOG4CXX_DEBUG(logger_, + "Protection establishing for connection " + << connection_key << " is in progress"); return RESULT_OK; } #endif // ENABLE_SECURITY // Start service without protection - SendStartSessionAck(connection_id, session_id, packet.protocol_version(), - hash_id, packet.service_type(), PROTECTION_OFF); + SendStartSessionAck(connection_id, + session_id, + packet.protocol_version(), + hash_id, + packet.service_type(), + PROTECTION_OFF); return RESULT_OK; } -RESULT_CODE ProtocolHandlerImpl::HandleControlMessageHeartBeat(const ProtocolPacket& packet) { +RESULT_CODE ProtocolHandlerImpl::HandleControlMessageHeartBeat( + const ProtocolPacket& packet) { const ConnectionID connection_id = packet.connection_id(); - LOG4CXX_DEBUG( - logger_, - "Sending heart beat acknowledgment for connection " << connection_id); + LOG4CXX_DEBUG(logger_, + "Sending heart beat acknowledgment for connection " + << connection_id); uint8_t protocol_version; if (session_observer_.ProtocolVersionUsed( - connection_id, packet.session_id(), protocol_version)) { + connection_id, packet.session_id(), protocol_version)) { // TODO(EZamakhov): investigate message_id for HeartBeatAck if (PROTOCOL_VERSION_3 == protocol_version || PROTOCOL_VERSION_4 == protocol_version) { - return SendHeartBeatAck(connection_id, packet.session_id(), - packet.message_id()); + return SendHeartBeatAck( + connection_id, packet.session_id(), packet.message_id()); } else { LOG4CXX_WARN(logger_, "HeartBeat is not supported"); return RESULT_HEARTBEAT_IS_NOT_SUPPORTED; } } else { - LOG4CXX_WARN(logger_, "SendHeartBeatAck is failed connection or session does not exist"); + LOG4CXX_WARN( + logger_, + "SendHeartBeatAck is failed connection or session does not exist"); return RESULT_FAIL; } } @@ -1045,29 +1193,30 @@ RESULT_CODE ProtocolHandlerImpl::HandleControlMessageHeartBeat(const ProtocolPac void ProtocolHandlerImpl::PopValideAndExpirateMultiframes() { const ProtocolFramePtrList& frame_list = multiframe_builder_.PopMultiframes(); for (ProtocolFramePtrList::const_iterator it = frame_list.begin(); - it != frame_list.end(); ++it) { + it != frame_list.end(); + ++it) { const ProtocolFramePtr frame = *it; DCHECK(frame); - if(!frame) { + if (!frame) { continue; } - const uint32_t connection_key = - session_observer_.KeyFromPair(frame->connection_id(), frame->session_id()); - LOG4CXX_DEBUG(logger_, "Result frame" << frame << - "for connection "<< connection_key); - const RawMessagePtr rawMessage( - new RawMessage(connection_key, - frame->protocol_version(), - frame->data(), - frame->total_data_bytes(), - frame->service_type(), - frame->payload_size())); + const uint32_t connection_key = session_observer_.KeyFromPair( + frame->connection_id(), frame->session_id()); + LOG4CXX_DEBUG(logger_, + "Result frame" << frame << "for connection " + << connection_key); + const RawMessagePtr rawMessage(new RawMessage(connection_key, + frame->protocol_version(), + frame->data(), + frame->total_data_bytes(), + frame->service_type(), + frame->payload_size())); DCHECK(rawMessage); #ifdef TELEMETRY_MONITOR if (metric_observer_) { - PHTelemetryObserver::MessageMetric *metric = + PHTelemetryObserver::MessageMetric* metric = new PHTelemetryObserver::MessageMetric(); metric->raw_msg = rawMessage; metric_observer_->EndMessageProcess(metric); @@ -1082,10 +1231,14 @@ bool ProtocolHandlerImpl::TrackMessage(const uint32_t& connection_key) { const size_t& frequency_time = get_settings().message_frequency_time(); const size_t& frequency_count = get_settings().message_frequency_count(); if (frequency_time > 0u && frequency_count > 0u) { - const size_t message_frequency = message_meter_.TrackMessage(connection_key); - LOG4CXX_DEBUG(logger_, "Frequency of " << connection_key << " is " << message_frequency); + const size_t message_frequency = + message_meter_.TrackMessage(connection_key); + LOG4CXX_DEBUG(logger_, + "Frequency of " << connection_key << " is " + << message_frequency); if (message_frequency > frequency_count) { - LOG4CXX_WARN(logger_, "Frequency of " << connection_key << " is marked as high."); + LOG4CXX_WARN(logger_, + "Frequency of " << connection_key << " is marked as high."); session_observer_.OnApplicationFloodCallBack(connection_key); message_meter_.RemoveIdentifier(connection_key); return true; @@ -1094,7 +1247,7 @@ bool ProtocolHandlerImpl::TrackMessage(const uint32_t& connection_key) { return false; } -bool ProtocolHandlerImpl::TrackMalformedMessage(const uint32_t &connection_key, +bool ProtocolHandlerImpl::TrackMalformedMessage(const uint32_t& connection_key, const size_t count) { const size_t& malformed_frequency_count = get_settings().malformed_frequency_count(); @@ -1103,12 +1256,14 @@ bool ProtocolHandlerImpl::TrackMalformedMessage(const uint32_t &connection_key, malformed_frequency_count > 0u) { const size_t malformed_message_frequency = malformed_message_meter_.TrackMessages(connection_key, count); - LOG4CXX_DEBUG(logger_, "Malformed frequency of " << connection_key - << " is " << malformed_message_frequency); + LOG4CXX_DEBUG(logger_, + "Malformed frequency of " << connection_key << " is " + << malformed_message_frequency); if (!get_settings().malformed_message_filtering() || malformed_message_frequency > malformed_frequency_count) { - LOG4CXX_WARN(logger_, "Malformed frequency of " << connection_key - << " is marked as high."); + LOG4CXX_WARN(logger_, + "Malformed frequency of " << connection_key + << " is marked as high."); session_observer_.OnMalformedMessageCallback(connection_key); malformed_message_meter_.RemoveIdentifier(connection_key); return true; @@ -1125,17 +1280,16 @@ void ProtocolHandlerImpl::Handle(const impl::RawFordMessageFromMobile message) { case kAudio: break; default: { - const uint32_t connection_key = session_observer_.KeyFromPair( - message->connection_id(), message->session_id()); - if (TrackMessage(connection_key)) { - return; - } + const uint32_t connection_key = session_observer_.KeyFromPair( + message->connection_id(), message->session_id()); + if (TrackMessage(connection_key)) { + return; } - break; + } break; } LOG4CXX_DEBUG(logger_, "Message : " << message.get()); const uint8_t c_id = message->connection_id(); - const uint32_t m_id = message->session_id(); + const uint32_t m_id = message->session_id(); if (session_observer_.IsHeartBeatSupported(c_id, m_id)) { connection_handler_.KeepConnectionAlive(c_id, m_id); @@ -1145,9 +1299,9 @@ void ProtocolHandlerImpl::Handle(const impl::RawFordMessageFromMobile message) { if (((0 != message->data()) && (0 != message->data_size())) || FRAME_TYPE_CONTROL == message->frame_type() || FRAME_TYPE_FIRST == message->frame_type()) { - LOG4CXX_DEBUG(logger_, "Packet: dataSize " << message->data_size()); - HandleMessage(message); - PopValideAndExpirateMultiframes(); + LOG4CXX_DEBUG(logger_, "Packet: dataSize " << message->data_size()); + HandleMessage(message); + PopValideAndExpirateMultiframes(); } else { LOG4CXX_WARN(logger_, "handleMessagesFromMobileApp() - incorrect or NULL data"); @@ -1155,17 +1309,18 @@ void ProtocolHandlerImpl::Handle(const impl::RawFordMessageFromMobile message) { } void ProtocolHandlerImpl::Handle(const impl::RawFordMessageToMobile message) { - LOG4CXX_DEBUG( - logger_, - "Message to mobile app: connection id " << - static_cast<int>(message->connection_id()) << ";" - " dataSize: " << message->data_size() << " ;" - " protocolVersion " << static_cast<int>(message->protocol_version())); + LOG4CXX_DEBUG(logger_, + "Message to mobile app: connection id " + << static_cast<int>(message->connection_id()) + << ";" + " dataSize: " << message->data_size() + << " ;" + " protocolVersion " + << static_cast<int>(message->protocol_version())); if (message.is_final) { - sessions_last_message_id_.insert( - std::pair<uint8_t, uint32_t>(message->session_id(), - message->message_id())); + sessions_last_message_id_.insert(std::pair<uint8_t, uint32_t>( + message->session_id(), message->message_id())); } SendFrame(message); @@ -1190,7 +1345,7 @@ RESULT_CODE ProtocolHandlerImpl::EncryptFrame(ProtocolFramePtr packet) { DCHECK(packet); // Control frames and data over control service shall be unprotected if (packet->service_type() == kControl || - packet->frame_type() == FRAME_TYPE_CONTROL) { + packet->frame_type() == FRAME_TYPE_CONTROL) { return RESULT_OK; } if (!security_manager_) { @@ -1198,28 +1353,32 @@ RESULT_CODE ProtocolHandlerImpl::EncryptFrame(ProtocolFramePtr packet) { return RESULT_FAIL; } const uint32_t connection_key = session_observer_.KeyFromPair( - packet->connection_id(), packet->session_id()); - security_manager::SSLContext *context = session_observer_.GetSSLContext( - connection_key, ServiceTypeFromByte(packet->service_type())); + packet->connection_id(), packet->session_id()); + security_manager::SSLContext* context = session_observer_.GetSSLContext( + connection_key, ServiceTypeFromByte(packet->service_type())); if (!context || !context->IsInitCompleted()) { return RESULT_OK; } - const uint8_t *out_data; + const uint8_t* out_data; size_t out_data_size; - if (!context->Encrypt(packet->data(), packet->data_size(), - &out_data, &out_data_size)) { + if (!context->Encrypt( + packet->data(), packet->data_size(), &out_data, &out_data_size)) { const std::string error_text(context->LastError()); LOG4CXX_ERROR(logger_, "Enryption failed: " << error_text); - security_manager_->SendInternalError(connection_key, - security_manager::SecurityManager::ERROR_ENCRYPTION_FAILED, error_text); + security_manager_->SendInternalError( + connection_key, + security_manager::SecurityManager::ERROR_ENCRYPTION_FAILED, + error_text); // Close session to prevent usage unprotected service/session - session_observer_.OnSessionEndedCallback( - packet->connection_id(), packet->session_id(), - packet->message_id(), kRpc); + session_observer_.OnSessionEndedCallback(packet->connection_id(), + packet->session_id(), + packet->message_id(), + kRpc); return RESULT_OK; } - LOG4CXX_DEBUG(logger_, "Encrypted " << packet->data_size() << " bytes to " - << out_data_size << " bytes"); + LOG4CXX_DEBUG(logger_, + "Encrypted " << packet->data_size() << " bytes to " + << out_data_size << " bytes"); DCHECK(out_data); DCHECK(out_data_size); packet->set_protection_flag(true); @@ -1230,9 +1389,9 @@ RESULT_CODE ProtocolHandlerImpl::EncryptFrame(ProtocolFramePtr packet) { RESULT_CODE ProtocolHandlerImpl::DecryptFrame(ProtocolFramePtr packet) { DCHECK(packet); if (!packet->protection_flag() || - // Control frames and data over control service shall be unprotected - packet->service_type() == kControl || - packet->frame_type() == FRAME_TYPE_CONTROL) { + // Control frames and data over control service shall be unprotected + packet->service_type() == kControl || + packet->frame_type() == FRAME_TYPE_CONTROL) { return RESULT_OK; } if (!security_manager_) { @@ -1240,32 +1399,39 @@ RESULT_CODE ProtocolHandlerImpl::DecryptFrame(ProtocolFramePtr packet) { return RESULT_FAIL; } const uint32_t connection_key = session_observer_.KeyFromPair( - packet->connection_id(), packet->session_id()); - security_manager::SSLContext *context = session_observer_.GetSSLContext( - connection_key, ServiceTypeFromByte(packet->service_type())); + packet->connection_id(), packet->session_id()); + security_manager::SSLContext* context = session_observer_.GetSSLContext( + connection_key, ServiceTypeFromByte(packet->service_type())); if (!context || !context->IsInitCompleted()) { const std::string error_text("Fail decryption for unprotected service "); - LOG4CXX_ERROR(logger_, error_text << static_cast<int>(packet->service_type())); - security_manager_->SendInternalError(connection_key, - security_manager::SecurityManager::ERROR_SERVICE_NOT_PROTECTED, error_text); + LOG4CXX_ERROR(logger_, + error_text << static_cast<int>(packet->service_type())); + security_manager_->SendInternalError( + connection_key, + security_manager::SecurityManager::ERROR_SERVICE_NOT_PROTECTED, + error_text); return RESULT_ENCRYPTION_FAILED; } - const uint8_t *out_data; + const uint8_t* out_data; size_t out_data_size; - if (!context->Decrypt(packet->data(), packet->data_size(), - &out_data, &out_data_size)) { + if (!context->Decrypt( + packet->data(), packet->data_size(), &out_data, &out_data_size)) { const std::string error_text(context->LastError()); LOG4CXX_ERROR(logger_, "Decryption failed: " << error_text); - security_manager_->SendInternalError(connection_key, - security_manager::SecurityManager::ERROR_DECRYPTION_FAILED, error_text); + security_manager_->SendInternalError( + connection_key, + security_manager::SecurityManager::ERROR_DECRYPTION_FAILED, + error_text); // Close session to prevent usage unprotected service/session - session_observer_.OnSessionEndedCallback( - packet->connection_id(), packet->session_id(), - packet->message_id(), kRpc); + session_observer_.OnSessionEndedCallback(packet->connection_id(), + packet->session_id(), + packet->message_id(), + kRpc); return RESULT_ENCRYPTION_FAILED; } - LOG4CXX_DEBUG(logger_, "Decrypted " << packet->data_size() << " bytes to " - << out_data_size << " bytes"); + LOG4CXX_DEBUG(logger_, + "Decrypted " << packet->data_size() << " bytes to " + << out_data_size << " bytes"); DCHECK(out_data); DCHECK(out_data_size); packet->set_data(out_data, out_data_size); @@ -1275,47 +1441,56 @@ RESULT_CODE ProtocolHandlerImpl::DecryptFrame(ProtocolFramePtr packet) { void ProtocolHandlerImpl::SendFramesNumber(uint32_t connection_key, int32_t number_of_frames) { - LOG4CXX_DEBUG(logger_, - "SendFramesNumber MobileNaviAck for session " << connection_key); + LOG4CXX_DEBUG( + logger_, "SendFramesNumber MobileNaviAck for session " << connection_key); - // TODO(EZamakhov): add protocol version check - to avoid send for PROTOCOL_VERSION_1 + // TODO(EZamakhov): add protocol version check - to avoid send for + // PROTOCOL_VERSION_1 transport_manager::ConnectionUID connection_id = 0; uint8_t session_id = 0; session_observer_.PairFromKey(connection_key, &connection_id, &session_id); uint8_t protocol_version; - if (session_observer_.ProtocolVersionUsed(connection_id, session_id, - protocol_version)) { - ProtocolFramePtr ptr(new protocol_handler::ProtocolPacket(connection_id, - protocol_version, PROTECTION_OFF, FRAME_TYPE_CONTROL, - SERVICE_TYPE_NAVI, FRAME_DATA_SERVICE_DATA_ACK, - session_id, 0, message_counters_[session_id]++)); + if (session_observer_.ProtocolVersionUsed( + connection_id, session_id, protocol_version)) { + ProtocolFramePtr ptr( + new protocol_handler::ProtocolPacket(connection_id, + protocol_version, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + SERVICE_TYPE_NAVI, + FRAME_DATA_SERVICE_DATA_ACK, + session_id, + 0, + message_counters_[session_id]++)); // Flow control data shall be 4 bytes according Ford Protocol DCHECK(sizeof(number_of_frames) == 4); number_of_frames = LE_TO_BE32(number_of_frames); ptr->set_data(reinterpret_cast<const uint8_t*>(&number_of_frames), - sizeof(number_of_frames)); - raw_ford_messages_to_mobile_.PostMessage( - impl::RawFordMessageToMobile(ptr, false)); - LOG4CXX_DEBUG(logger_, "SendFramesNumber finished successfully"); + sizeof(number_of_frames)); + raw_ford_messages_to_mobile_.PostMessage( + impl::RawFordMessageToMobile(ptr, false)); + LOG4CXX_DEBUG(logger_, "SendFramesNumber finished successfully"); } else { - LOG4CXX_WARN(logger_, "SendFramesNumber is failed connection or session does not exist"); + LOG4CXX_WARN( + logger_, + "SendFramesNumber is failed connection or session does not exist"); } } #ifdef TELEMETRY_MONITOR -void ProtocolHandlerImpl::SetTelemetryObserver(PHTelemetryObserver *observer) { +void ProtocolHandlerImpl::SetTelemetryObserver(PHTelemetryObserver* observer) { metric_observer_ = observer; } #endif // TELEMETRY_MONITOR -std::string ConvertPacketDataToString(const uint8_t *data, +std::string ConvertPacketDataToString(const uint8_t* data, const size_t data_size) { if (0 == data_size) return std::string(); bool is_printable_array = true; std::locale loc; - const char *text = reinterpret_cast<const char*>(data); + const char* text = reinterpret_cast<const char*>(data); // Check data for printability for (size_t i = 0; i < data_size; ++i) { if (!std::isprint(text[i], loc)) { @@ -1323,14 +1498,14 @@ std::string ConvertPacketDataToString(const uint8_t *data, break; } } - return is_printable_array ? std::string(text, data_size) : std::string("is raw data"); + return is_printable_array ? std::string(text, data_size) + : std::string("is raw data"); } uint8_t ProtocolHandlerImpl::SupportedSDLProtocolVersion() const { LOG4CXX_AUTO_TRACE(logger_); - bool heart_beat_support = - (0 != get_settings().heart_beat_timeout()); + bool heart_beat_support = (0 != get_settings().heart_beat_timeout()); bool sdl4_support = get_settings().enable_protocol_4(); diff --git a/src/components/protocol_handler/src/protocol_packet.cc b/src/components/protocol_handler/src/protocol_packet.cc index 9a3e6e49d6..d766cf18c4 100644 --- a/src/components/protocol_handler/src/protocol_packet.cc +++ b/src/components/protocol_handler/src/protocol_packet.cc @@ -46,53 +46,56 @@ namespace protocol_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "ProtocolHandler") -ProtocolPacket::ProtocolData::ProtocolData() - : data(NULL), totalDataBytes(0u) { } +ProtocolPacket::ProtocolData::ProtocolData() : data(NULL), totalDataBytes(0u) {} ProtocolPacket::ProtocolData::~ProtocolData() { delete[] data; } ProtocolPacket::ProtocolHeader::ProtocolHeader() - : version(0x00), - protection_flag(PROTECTION_OFF), - frameType(0x00), - serviceType(0x00), - frameData(0x00), - sessionId(0x00), - dataSize(0x00), - messageId(0x00) { -} - -ProtocolPacket::ProtocolHeader::ProtocolHeader( - uint8_t version, bool protection, uint8_t frameType, uint8_t serviceType, - uint8_t frameData, uint8_t sessionID, uint32_t dataSize, uint32_t messageID) - : version(version), - protection_flag(protection), - frameType(frameType), - serviceType(serviceType), - frameData(frameData), - sessionId(sessionID), - dataSize(dataSize), - messageId(messageID) { -} + : version(0x00) + , protection_flag(PROTECTION_OFF) + , frameType(0x00) + , serviceType(0x00) + , frameData(0x00) + , sessionId(0x00) + , dataSize(0x00) + , messageId(0x00) {} + +ProtocolPacket::ProtocolHeader::ProtocolHeader(uint8_t version, + bool protection, + uint8_t frameType, + uint8_t serviceType, + uint8_t frameData, + uint8_t sessionID, + uint32_t dataSize, + uint32_t messageID) + : version(version) + , protection_flag(protection) + , frameType(frameType) + , serviceType(serviceType) + , frameData(frameData) + , sessionId(sessionID) + , dataSize(dataSize) + , messageId(messageID) {} inline uint32_t read_be_uint32(const uint8_t* const data) { // Int value read byte per byte // reintercast for non-4 byte address alignment lead to UB on arm platform uint32_t value = data[3]; - value += (data[2] << 8); + value += (data[2] << 8); value += (data[1] << 16); value += (data[0] << 24); return value; } -void ProtocolPacket::ProtocolHeader::deserialize( - const uint8_t* message, const size_t messageSize) { +void ProtocolPacket::ProtocolHeader::deserialize(const uint8_t* message, + const size_t messageSize) { LOG4CXX_AUTO_TRACE(logger_); DCHECK_OR_RETURN_VOID(message); if (messageSize < PROTOCOL_HEADER_V1_SIZE) { - LOG4CXX_DEBUG(logger_, "Message size less " << PROTOCOL_HEADER_V1_SIZE << " bytes"); + LOG4CXX_DEBUG(logger_, + "Message size less " << PROTOCOL_HEADER_V1_SIZE << " bytes"); return; } // first 4 bits @@ -103,8 +106,8 @@ void ProtocolPacket::ProtocolHeader::deserialize( frameType = message[0] & 0x07u; serviceType = message[1]; - frameData = message[2]; - sessionId = message[3]; + frameData = message[2]; + sessionId = message[3]; // FIXME(EZamakhov): usage for FirstFrame message dataSize = read_be_uint32(message + 4); @@ -112,24 +115,23 @@ void ProtocolPacket::ProtocolHeader::deserialize( case PROTOCOL_VERSION_2: case PROTOCOL_VERSION_3: case PROTOCOL_VERSION_4: { - if (messageSize < PROTOCOL_HEADER_V2_SIZE) { - LOG4CXX_DEBUG(logger_, "Message size less " << PROTOCOL_HEADER_V2_SIZE << " bytes"); - return; - } - messageId = read_be_uint32(message + 8); + if (messageSize < PROTOCOL_HEADER_V2_SIZE) { + LOG4CXX_DEBUG(logger_, + "Message size less " << PROTOCOL_HEADER_V2_SIZE + << " bytes"); + return; } - break; + messageId = read_be_uint32(message + 8); + } break; default: - LOG4CXX_WARN(logger_, "Unknown version:" << - static_cast<int>(version)); + LOG4CXX_WARN(logger_, "Unknown version:" << static_cast<int>(version)); messageId = 0; break; } } ProtocolPacket::ProtocolHeaderValidator::ProtocolHeaderValidator() - : max_payload_size_(std::numeric_limits<size_t>::max()) { -} + : max_payload_size_(std::numeric_limits<size_t>::max()) {} void ProtocolPacket::ProtocolHeaderValidator::set_max_payload_size( const size_t max_payload_size) { @@ -154,55 +156,63 @@ RESULT_CODE ProtocolPacket::ProtocolHeaderValidator::validate( break; case PROTOCOL_VERSION_3: case PROTOCOL_VERSION_4: - payload_size = max_payload_size_ > MAXIMUM_FRAME_DATA_V2_SIZE ? - max_payload_size_ : MAXIMUM_FRAME_DATA_V2_SIZE; + payload_size = max_payload_size_ > MAXIMUM_FRAME_DATA_V2_SIZE + ? max_payload_size_ + : MAXIMUM_FRAME_DATA_V2_SIZE; break; default: - LOG4CXX_WARN(logger_, "Unknown version:" << - static_cast<int>(header.version)); + LOG4CXX_WARN(logger_, + "Unknown version:" << static_cast<int>(header.version)); return RESULT_FAIL; } - // ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B (Video), 0x0F (Bulk) + // ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B + // (Video), 0x0F (Bulk) if (ServiceTypeFromByte(header.serviceType) == kInvalidServiceType) { - LOG4CXX_WARN(logger_, "Invalide service type" << - static_cast<int>(header.serviceType)); + LOG4CXX_WARN(logger_, + "Invalide service type" + << static_cast<int>(header.serviceType)); return RESULT_FAIL; } // Check frame info for each frame type - // Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 (Consecutive) - // For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data Ack), 0xFF(HB Ack) + // Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 + // (Consecutive) + // For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data + // Ack), 0xFF(HB Ack) // For Single and First frames Frame info value shall be equal 0x00 switch (header.frameType) { - case FRAME_TYPE_CONTROL : { - switch (header.frameData) { - case FRAME_DATA_HEART_BEAT: - case FRAME_DATA_START_SERVICE: - case FRAME_DATA_START_SERVICE_ACK: - case FRAME_DATA_START_SERVICE_NACK: - case FRAME_DATA_END_SERVICE: - case FRAME_DATA_END_SERVICE_ACK: - case FRAME_DATA_END_SERVICE_NACK: - case FRAME_DATA_SERVICE_DATA_ACK: - case FRAME_DATA_HEART_BEAT_ACK: - break; - default: - LOG4CXX_WARN(logger_, "FRAME_TYPE_CONTROL - Invalide frame data " << - static_cast<int>(header.frameData)); - return RESULT_FAIL; - } - break; + case FRAME_TYPE_CONTROL: { + switch (header.frameData) { + case FRAME_DATA_HEART_BEAT: + case FRAME_DATA_START_SERVICE: + case FRAME_DATA_START_SERVICE_ACK: + case FRAME_DATA_START_SERVICE_NACK: + case FRAME_DATA_END_SERVICE: + case FRAME_DATA_END_SERVICE_ACK: + case FRAME_DATA_END_SERVICE_NACK: + case FRAME_DATA_SERVICE_DATA_ACK: + case FRAME_DATA_HEART_BEAT_ACK: + break; + default: + LOG4CXX_WARN(logger_, + "FRAME_TYPE_CONTROL - Invalide frame data " + << static_cast<int>(header.frameData)); + return RESULT_FAIL; } + break; + } case FRAME_TYPE_SINGLE: if (header.frameData != FRAME_DATA_SINGLE) { - LOG4CXX_WARN(logger_, "FRAME_TYPE_SINGLE - Invalide frame data " << - static_cast<int>(header.frameData)); + LOG4CXX_WARN(logger_, + "FRAME_TYPE_SINGLE - Invalide frame data " + << static_cast<int>(header.frameData)); return RESULT_FAIL; } break; case FRAME_TYPE_FIRST: if (header.frameData != FRAME_DATA_FIRST) { - LOG4CXX_WARN(logger_, "FRAME_TYPE_FIRST - Invalide frame data " << - static_cast<int>(header.frameData)); + LOG4CXX_WARN(logger_, + "FRAME_TYPE_FIRST - Invalide frame data " + << static_cast<int>(header.frameData)); return RESULT_FAIL; } break; @@ -210,8 +220,8 @@ RESULT_CODE ProtocolPacket::ProtocolHeaderValidator::validate( // Could have any FrameInfo value break; default: - LOG4CXX_WARN(logger_, "Unknown frame type " << - static_cast<int>(header.frameType)); + LOG4CXX_WARN(logger_, + "Unknown frame type " << static_cast<int>(header.frameType)); // All other Frame type is invalid return RESULT_FAIL; } @@ -219,8 +229,11 @@ RESULT_CODE ProtocolPacket::ProtocolHeaderValidator::validate( // For Single and Consecutive Data Size value shall be greater than 0x00 // and shall be less than payload size if (header.dataSize > payload_size) { - LOG4CXX_WARN(logger_, "Packet data size is " << header.dataSize << - " and bigger than allowed payload size " << payload_size << " bytes"); + LOG4CXX_WARN(logger_, + "Packet data size is " + << header.dataSize + << " and bigger than allowed payload size " << payload_size + << " bytes"); return RESULT_FAIL; } switch (header.frameType) { @@ -228,14 +241,16 @@ RESULT_CODE ProtocolPacket::ProtocolHeaderValidator::validate( case FRAME_TYPE_CONSECUTIVE: if (header.dataSize <= 0u) { LOG4CXX_WARN(logger_, - "Data size of Single and Consecutive frame shall be not equal 0 byte "); + "Data size of Single and Consecutive frame shall be not " + "equal 0 byte "); return RESULT_FAIL; } break; default: break; } - // Message ID be equal or greater than 0x01 (not actual for 1 protocol version and Control frames) + // Message ID be equal or greater than 0x01 (not actual for 1 protocol version + // and Control frames) if (header.messageId <= 0) { if (FRAME_TYPE_CONTROL != header.frameType && PROTOCOL_VERSION_1 != header.version) { @@ -248,31 +263,37 @@ RESULT_CODE ProtocolPacket::ProtocolHeaderValidator::validate( return RESULT_OK; } -ProtocolPacket::ProtocolPacket() - : payload_size_(0u), connection_id_(0u) { -} +ProtocolPacket::ProtocolPacket() : payload_size_(0u), connection_id_(0u) {} ProtocolPacket::ProtocolPacket(ConnectionID connection_id, - uint8_t version, bool protection, + uint8_t version, + bool protection, uint8_t frameType, uint8_t serviceType, - uint8_t frameData, uint8_t sessionID, - uint32_t dataSize, uint32_t messageID, - const uint8_t *data) - : packet_header_(version, protection, frameType, serviceType, - frameData, sessionID, dataSize, messageID), - packet_data_(), - payload_size_(0), - connection_id_(connection_id) { + uint8_t frameData, + uint8_t sessionID, + uint32_t dataSize, + uint32_t messageID, + const uint8_t* data) + : packet_header_(version, + protection, + frameType, + serviceType, + frameData, + sessionID, + dataSize, + messageID) + , packet_data_() + , payload_size_(0) + , connection_id_(connection_id) { set_data(data, dataSize); } ProtocolPacket::ProtocolPacket(ConnectionID connection_id) - : packet_header_(), - packet_data_(), - payload_size_(0), - connection_id_(connection_id) { -} + : packet_header_() + , packet_data_() + , payload_size_(0) + , connection_id_(connection_id) {} // Serialization RawMessagePtr ProtocolPacket::serializePacket() const { @@ -304,9 +325,10 @@ RawMessagePtr ProtocolPacket::serializePacket() const { header[offset++] = packet_header_.messageId; } - size_t total_packet_size = offset + (packet_data_.data ? packet_data_.totalDataBytes : 0); + size_t total_packet_size = + offset + (packet_data_.data ? packet_data_.totalDataBytes : 0); - uint8_t *packet = new (std::nothrow) uint8_t[total_packet_size]; + uint8_t* packet = new (std::nothrow) uint8_t[total_packet_size]; if (!packet) { return RawMessagePtr(); } @@ -316,16 +338,17 @@ RawMessagePtr ProtocolPacket::serializePacket() const { memcpy(packet + offset, packet_data_.data, packet_data_.totalDataBytes); } - const RawMessagePtr out_message( - new RawMessage( - connection_id(), packet_header_.version, - packet, total_packet_size, packet_header_.serviceType) ); + const RawMessagePtr out_message(new RawMessage(connection_id(), + packet_header_.version, + packet, + total_packet_size, + packet_header_.serviceType)); delete[] packet; return out_message; } -RESULT_CODE ProtocolPacket::appendData(uint8_t *chunkData, +RESULT_CODE ProtocolPacket::appendData(uint8_t* chunkData, uint32_t chunkDataSize) { if (payload_size_ + chunkDataSize <= packet_data_.totalDataBytes) { if (chunkData && chunkDataSize > 0) { @@ -353,14 +376,15 @@ bool ProtocolPacket::operator==(const ProtocolPacket& other) const { packet_header_.frameData == other.packet_header_.frameData && packet_header_.sessionId == other.packet_header_.sessionId && packet_header_.dataSize == other.packet_header_.dataSize && - packet_header_.messageId == other.packet_header_.messageId && + packet_header_.messageId == other.packet_header_.messageId && packet_data_.totalDataBytes == other.packet_data_.totalDataBytes) { if (other.packet_data_.totalDataBytes == 0) { return true; } // Compare payload data if (packet_data_.data && other.packet_data_.data && - 0 == memcmp(packet_data_.data, other.packet_data_.data, + 0 == memcmp(packet_data_.data, + other.packet_data_.data, packet_data_.totalDataBytes)) { return true; } @@ -368,26 +392,25 @@ bool ProtocolPacket::operator==(const ProtocolPacket& other) const { return false; } -RESULT_CODE ProtocolPacket::deserializePacket( - const uint8_t *message, const size_t messageSize) { +RESULT_CODE ProtocolPacket::deserializePacket(const uint8_t* message, + const size_t messageSize) { LOG4CXX_AUTO_TRACE(logger_); DCHECK_OR_RETURN(message, RESULT_FAIL); packet_header_.deserialize(message, messageSize); - const uint8_t offset = - packet_header_.version == PROTOCOL_VERSION_1 ? PROTOCOL_HEADER_V1_SIZE - : PROTOCOL_HEADER_V2_SIZE; + const uint8_t offset = packet_header_.version == PROTOCOL_VERSION_1 + ? PROTOCOL_HEADER_V1_SIZE + : PROTOCOL_HEADER_V2_SIZE; packet_data_.totalDataBytes = packet_header_.dataSize; uint32_t dataPayloadSize = 0; - if ((offset < messageSize) && - packet_header_.frameType != FRAME_TYPE_FIRST) { + if ((offset < messageSize) && packet_header_.frameType != FRAME_TYPE_FIRST) { dataPayloadSize = messageSize - offset; } if (packet_header_.frameType == FRAME_TYPE_FIRST) { payload_size_ = 0; - const uint8_t *data = message + offset; + const uint8_t* data = message + offset; uint32_t total_data_bytes = data[0] << 24; total_data_bytes |= data[1] << 16; total_data_bytes |= data[2] << 8; @@ -397,7 +420,6 @@ RESULT_CODE ProtocolPacket::deserializePacket( return RESULT_FAIL; } } else if (dataPayloadSize) { - delete[] packet_data_.data; packet_data_.data = new (std::nothrow) uint8_t[dataPayloadSize]; memcpy(packet_data_.data, message + offset, dataPayloadSize); @@ -447,7 +469,7 @@ uint32_t ProtocolPacket::message_id() const { return packet_header_.messageId; } -uint8_t *ProtocolPacket::data() const { +uint8_t* ProtocolPacket::data() const { return packet_data_.data; } @@ -459,8 +481,8 @@ void ProtocolPacket::set_total_data_bytes(size_t dataBytes) { } } -void ProtocolPacket::set_data( - const uint8_t *const new_data, const size_t new_data_size) { +void ProtocolPacket::set_data(const uint8_t* const new_data, + const size_t new_data_size) { if (new_data_size && new_data) { packet_header_.dataSize = packet_data_.totalDataBytes = new_data_size; delete[] packet_data_.data; diff --git a/src/components/protocol_handler/src/protocol_payload.cc b/src/components/protocol_handler/src/protocol_payload.cc index 9fb77c81ee..aa011bdf0f 100644 --- a/src/components/protocol_handler/src/protocol_payload.cc +++ b/src/components/protocol_handler/src/protocol_payload.cc @@ -38,19 +38,17 @@ namespace { // Protocol header field sizes -static const size_t kRpcTypeBits = 4; +static const size_t kRpcTypeBits = 4; static const size_t kRpcFunctionIdBits = 32 - kRpcTypeBits; static const size_t kCorrelationIdBits = 32; -static const size_t kJsonSizeBits = 32; -static const size_t PayloadHeaderBits = kRpcTypeBits + - kRpcFunctionIdBits + - kCorrelationIdBits + - kJsonSizeBits; +static const size_t kJsonSizeBits = 32; +static const size_t PayloadHeaderBits = + kRpcTypeBits + kRpcFunctionIdBits + kCorrelationIdBits + kJsonSizeBits; } namespace protocol_handler { -void Extract(utils::BitStream *bs, ProtocolPayloadHeaderV2 *headerv2) { +void Extract(utils::BitStream* bs, ProtocolPayloadHeaderV2* headerv2) { DCHECK(bs && headerv2); if (headerv2 && bs && *bs) { uint8_t rpc_type; @@ -61,36 +59,38 @@ void Extract(utils::BitStream *bs, ProtocolPayloadHeaderV2 *headerv2) { return; } utils::Extract(bs, &headerv2->rpc_function_id, kRpcFunctionIdBits); - utils::Extract(bs, &headerv2->correlation_id); // kCorrelationIdBits - utils::Extract(bs, &headerv2->json_size); // kJsonSizeBits + utils::Extract(bs, &headerv2->correlation_id); // kCorrelationIdBits + utils::Extract(bs, &headerv2->json_size); // kJsonSizeBits } } -void Extract(utils::BitStream *bs, ProtocolPayloadV2 *payload, +void Extract(utils::BitStream* bs, + ProtocolPayloadV2* payload, size_t payload_size) { DCHECK(bs && payload); if (payload && bs && *bs) { Extract(bs, &payload->header); utils::Extract(bs, &payload->json, payload->header.json_size); - size_t data_size = payload_size - payload->header.json_size - - PayloadHeaderBits / CHAR_BIT; + size_t data_size = + payload_size - payload->header.json_size - PayloadHeaderBits / CHAR_BIT; utils::Extract(bs, &payload->data, data_size); } } -std::ostream &operator<<(std::ostream &os, - const ProtocolPayloadHeaderV2 &payload_header) { - return os << "(ProtocolPayloadHeaderV2" << " rpc_type: " - << payload_header.rpc_type << ", rpc_function_id: " - << payload_header.rpc_function_id << ", correlation_id: " - << payload_header.correlation_id << ", json_size: " - << payload_header.json_size << ")"; +std::ostream& operator<<(std::ostream& os, + const ProtocolPayloadHeaderV2& payload_header) { + return os << "(ProtocolPayloadHeaderV2" + << " rpc_type: " << payload_header.rpc_type + << ", rpc_function_id: " << payload_header.rpc_function_id + << ", correlation_id: " << payload_header.correlation_id + << ", json_size: " << payload_header.json_size << ")"; } -std::ostream &operator<<(std::ostream &os, const ProtocolPayloadV2 &payload) { - return os << "(ProtocolPayloadV2" << " header: " << payload.header - << ", json (bytes): " << payload.json.size() << ", data (bytes): " - << payload.data.size() << ")"; +std::ostream& operator<<(std::ostream& os, const ProtocolPayloadV2& payload) { + return os << "(ProtocolPayloadV2" + << " header: " << payload.header + << ", json (bytes): " << payload.json.size() + << ", data (bytes): " << payload.data.size() << ")"; } size_t ProtocolPayloadV2SizeBits() { diff --git a/src/components/protocol_handler/test/include/protocol_handler/mock_telemetry_observer.h b/src/components/protocol_handler/test/include/protocol_handler/mock_telemetry_observer.h index 83037c9631..40d662ac9f 100644 --- a/src/components/protocol_handler/test/include/protocol_handler/mock_telemetry_observer.h +++ b/src/components/protocol_handler/test/include/protocol_handler/mock_telemetry_observer.h @@ -51,4 +51,4 @@ class MockPHTelemetryObserver : public ::protocol_handler::PHTelemetryObserver { } // namespace components } // namespace test --#endif // SRC_COMPONENTS_INCLUDE_TEST_PROTOCOL_HANDLER_MOCK_TIME_METRIC_OBSERVER_H_ +- #endif // SRC_COMPONENTS_INCLUDE_TEST_PROTOCOL_HANDLER_MOCK_TIME_METRIC_OBSERVER_H_ diff --git a/src/components/protocol_handler/test/include/protocol_handler/protocol_observer_mock.h b/src/components/protocol_handler/test/include/protocol_handler/protocol_observer_mock.h index c415e66e40..9f99ee41f8 100644 --- a/src/components/protocol_handler/test/include/protocol_handler/protocol_observer_mock.h +++ b/src/components/protocol_handler/test/include/protocol_handler/protocol_observer_mock.h @@ -47,11 +47,11 @@ namespace protocol_handler_test { class ProtocolObserverMock : public ::protocol_handler::ProtocolObserver { public: MOCK_METHOD1(OnMessageReceived, - void(const ::protocol_handler::RawMessagePtr)); + void(const ::protocol_handler::RawMessagePtr)); MOCK_METHOD1(OnMobileMessageSent, - void(const ::protocol_handler::RawMessagePtr)); + void(const ::protocol_handler::RawMessagePtr)); }; -} // namespace protocol_handler_test -} // namespace components -} // namespace test -#endif //SRC_COMPONENTS_PROTOCOL_HANDLER_TEST_INCLUDE_PROTOCOL_OBSERVER_MOCK_H_ +} // namespace protocol_handler_test +} // namespace components +} // namespace test +#endif // SRC_COMPONENTS_PROTOCOL_HANDLER_TEST_INCLUDE_PROTOCOL_OBSERVER_MOCK_H_ diff --git a/src/components/protocol_handler/test/incoming_data_handler_test.cc b/src/components/protocol_handler/test/incoming_data_handler_test.cc index dd30620733..66f5aea712 100644 --- a/src/components/protocol_handler/test/incoming_data_handler_test.cc +++ b/src/components/protocol_handler/test/incoming_data_handler_test.cc @@ -65,10 +65,11 @@ class IncomingDataHandlerTest : public ::testing::Test { delete[] some_data; delete[] some_data2; } - void ProcessData(transport_manager::ConnectionUID uid, const uint8_t *const data, - const uint32_t data_size ) { - actual_frames = data_handler.ProcessData(RawMessage(uid, 0, data, data_size), - &result_code, &malformed_occurs); + void ProcessData(transport_manager::ConnectionUID uid, + const uint8_t* const data, + const uint32_t data_size) { + actual_frames = data_handler.ProcessData( + RawMessage(uid, 0, data, data_size), &result_code, &malformed_occurs); } void AppendPacketToTMData(const ProtocolPacket& packet) { @@ -116,35 +117,44 @@ TEST_F(IncomingDataHandlerTest, NullData) { TEST_F(IncomingDataHandlerTest, DataForUnknownConnection) { size_t malformed_count = 0; - actual_frames = data_handler.ProcessData(RawMessage(uid_unknown, 0, NULL, 0), - &result_code, &malformed_count); + actual_frames = data_handler.ProcessData( + RawMessage(uid_unknown, 0, NULL, 0), &result_code, &malformed_count); EXPECT_EQ(RESULT_FAIL, result_code); EXPECT_EQ(malformed_count, 0u); EXPECT_TRUE(actual_frames.empty()); AppendPacketToTMData(ProtocolPacket()); - actual_frames = data_handler.ProcessData(RawMessage(uid_unknown, 0, tm_data.data(), tm_data.size()), - &result_code, &malformed_count); + actual_frames = data_handler.ProcessData( + RawMessage(uid_unknown, 0, tm_data.data(), tm_data.size()), + &result_code, + &malformed_count); EXPECT_EQ(RESULT_FAIL, result_code); EXPECT_EQ(malformed_count, 0u); EXPECT_TRUE(actual_frames.empty()); } TEST_F(IncomingDataHandlerTest, Heartbeat_per_byte) { - const ProtocolPacket hb_packet(uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, - protov1_message_id, NULL); + const ProtocolPacket hb_packet(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + protov1_message_id, + NULL); const size_t hb_count = 100; for (size_t i = 0; i < hb_count; ++i) { AppendPacketToTMData(hb_packet); // Send per 1 byte (except last byte) for (size_t i = 0; i < tm_data.size() - 1; ++i) { - ProcessData(uid1, &tm_data[i] , 1); + ProcessData(uid1, &tm_data[i], 1); EXPECT_EQ(RESULT_OK, result_code); EXPECT_EQ(malformed_occurs, 0u); EXPECT_TRUE(actual_frames.empty()); } - ProcessData(uid1, &*(tm_data.end()-1), 1); + ProcessData(uid1, &*(tm_data.end() - 1), 1); EXPECT_EQ(RESULT_OK, result_code); EXPECT_EQ(malformed_occurs, 0u); EXPECT_EQ(1u, actual_frames.size()); @@ -154,9 +164,16 @@ TEST_F(IncomingDataHandlerTest, Heartbeat_per_byte) { } TEST_F(IncomingDataHandlerTest, Heartbeat_pack) { - const ProtocolPacket hb_packet(uid1, PROTOCOL_VERSION_2, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, - some_message_id, NULL); + const ProtocolPacket hb_packet(uid1, + PROTOCOL_VERSION_2, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id, + NULL); const size_t hb_count = 100; for (size_t i = 0u; i < hb_count; ++i) { AppendPacketToTMData(hb_packet); @@ -165,7 +182,9 @@ TEST_F(IncomingDataHandlerTest, Heartbeat_pack) { EXPECT_EQ(RESULT_OK, result_code); EXPECT_EQ(malformed_occurs, 0u); EXPECT_EQ(hb_count, actual_frames.size()); - for (FrameList::iterator it = actual_frames.begin(); it != actual_frames.end(); ++it) { + for (FrameList::iterator it = actual_frames.begin(); + it != actual_frames.end(); + ++it) { EXPECT_EQ(hb_packet, **it); } } @@ -173,30 +192,52 @@ TEST_F(IncomingDataHandlerTest, Heartbeat_pack) { TEST_F(IncomingDataHandlerTest, MixedPayloadData_TwoConnections) { FrameList mobile_packets; // single packet RPC - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_SINGLE, - kRpc, FRAME_DATA_SINGLE, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kRpc, + FRAME_DATA_SINGLE, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); // consecutive packet Audio - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kAudio, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - some_message_id, some_data2)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kAudio, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + some_message_id, + some_data2)); // single packet Nav - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, - kMobileNav, FRAME_DATA_SINGLE, ++some_session_id, some_data_size, - ++some_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kMobileNav, + FRAME_DATA_SINGLE, + ++some_session_id, + some_data_size, + ++some_message_id, + some_data)); // consecutive packet Bulk - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kBulk, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - ++some_message_id, some_data2)); - for (FrameList::iterator it = mobile_packets.begin(); it != mobile_packets.end(); ++it) { + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kBulk, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + ++some_message_id, + some_data2)); + for (FrameList::iterator it = mobile_packets.begin(); + it != mobile_packets.end(); + ++it) { AppendPacketToTMData(**it); } ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -204,29 +245,39 @@ TEST_F(IncomingDataHandlerTest, MixedPayloadData_TwoConnections) { EXPECT_EQ(malformed_occurs, 0u); EXPECT_EQ(mobile_packets.size(), actual_frames.size()); FrameList::iterator it_exp = mobile_packets.begin(); - for (FrameList::const_iterator it = actual_frames.begin(); it != actual_frames.end(); + for (FrameList::const_iterator it = actual_frames.begin(); + it != actual_frames.end(); ++it, ++it_exp) { // TODO(EZamakhov): investigate valgrind warning (unitialized value) - EXPECT_EQ(**it, **it_exp) - << "Element number " << std::distance(mobile_packets.begin(), it_exp); + EXPECT_EQ(**it, **it_exp) << "Element number " + << std::distance(mobile_packets.begin(), it_exp); } } -// TODO(EZamakhov): add validator abstraction and replace next test with check only return frames +// TODO(EZamakhov): add validator abstraction and replace next test with check +// only return frames // Protocol version shall be from 1 to 4 TEST_F(IncomingDataHandlerTest, MalformedPacket_Version) { FrameList malformed_packets; std::vector<uint8_t> malformed_versions; malformed_versions.push_back(0); - for (uint8_t version = PROTOCOL_VERSION_4 + 1; version <= PROTOCOL_VERSION_MAX; ++version) { + for (uint8_t version = PROTOCOL_VERSION_4 + 1; + version <= PROTOCOL_VERSION_MAX; + ++version) { malformed_versions.push_back(version); } for (size_t i = 0; i < malformed_versions.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, malformed_versions[i], PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + malformed_versions[i], + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -237,7 +288,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_Version) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -249,11 +301,13 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_Version) { } } -// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B (Video), 0x0F (Bulk) +// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B +// (Video), 0x0F (Bulk) TEST_F(IncomingDataHandlerTest, MalformedPacket_ServiceType) { FrameList malformed_packets; std::vector<uint8_t> malformed_serv_types; - for (uint8_t service_type = kControl + 1; service_type < kRpc; ++service_type) { + for (uint8_t service_type = kControl + 1; service_type < kRpc; + ++service_type) { malformed_serv_types.push_back(service_type); } malformed_serv_types.push_back(0x08); @@ -262,11 +316,16 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_ServiceType) { malformed_serv_types.push_back(0x0D); malformed_serv_types.push_back(0x0E); for (size_t i = 0; i < malformed_serv_types.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - malformed_serv_types[i], FRAME_DATA_HEART_BEAT, some_session_id, 0u, - some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + malformed_serv_types[i], + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -277,7 +336,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_ServiceType) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -289,19 +349,27 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_ServiceType) { } } -// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 (Consecutive) +// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 +// (Consecutive) TEST_F(IncomingDataHandlerTest, MalformedPacket_FrameType) { FrameList malformed_packets; std::vector<uint8_t> malformed_frame_types; for (uint8_t frame_type = FRAME_TYPE_CONSECUTIVE + 1; - frame_type <= FRAME_TYPE_MAX_VALUE; ++frame_type) { + frame_type <= FRAME_TYPE_MAX_VALUE; + ++frame_type) { malformed_frame_types.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_types.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, malformed_frame_types[i], - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + malformed_frame_types[i], + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -312,7 +380,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_FrameType) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -324,19 +393,27 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_FrameType) { } } -// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data Ack), 0xFF(HB Ack) +// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data +// Ack), 0xFF(HB Ack) TEST_F(IncomingDataHandlerTest, MalformedPacket_ControlFrame) { FrameList malformed_packets; std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_END_SERVICE_NACK + 1; - frame_type < FRAME_DATA_SERVICE_DATA_ACK; ++frame_type) { + frame_type < FRAME_DATA_SERVICE_DATA_ACK; + ++frame_type) { malformed_frame_data.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_data.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -347,7 +424,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_ControlFrame) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -364,15 +442,22 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_SingleFrame) { FrameList malformed_packets; std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_SINGLE + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -383,7 +468,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_SingleFrame) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -400,15 +486,22 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_FirstFrame) { FrameList malformed_packets; std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_FIRST + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { - malformed_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id, NULL)); + malformed_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id, + NULL)); } // We count malformed only first time when it occurs after correct message @@ -419,7 +512,8 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_FirstFrame) { EXPECT_EQ(0u, actual_frames.size()); ++it; - // All next data will be one large malformed message which we've already counted + // All next data will be one large malformed message which we've already + // counted for (; it != malformed_packets.end(); ++it) { ProcessPacket(**it); EXPECT_EQ(RESULT_MALFORMED_OCCURS, result_code) @@ -435,71 +529,106 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_FirstFrame) { TEST_F(IncomingDataHandlerTest, MalformedPacket_AdditionalByte) { FrameList mobile_packets; // single packet RPC - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_SINGLE, - kRpc, FRAME_DATA_SINGLE, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kRpc, + FRAME_DATA_SINGLE, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed byte tm_data.insert(tm_data.end(), 1, 0x1); // consecutive packet Audio - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kAudio, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - some_message_id, some_data2)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kAudio, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + some_message_id, + some_data2)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed bytes tm_data.insert(tm_data.end(), 2, 0x2); // single packet Nav - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, - kMobileNav, FRAME_DATA_SINGLE, ++some_session_id, some_data_size, - ++some_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kMobileNav, + FRAME_DATA_SINGLE, + ++some_session_id, + some_data_size, + ++some_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed bytes tm_data.insert(tm_data.end(), 3, 0x3); // consecutive packet Bulk - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kBulk, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - ++some_message_id, some_data2)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kBulk, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + ++some_message_id, + some_data2)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed bytes tm_data.insert(tm_data.end(), 4, 0x4); // single packet RPC - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kRpc, FRAME_DATA_HEART_BEAT, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kRpc, + FRAME_DATA_HEART_BEAT, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed bytes tm_data.insert(tm_data.end(), 5, 0x5); // single packet Audio - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kAudio, FRAME_DATA_HEART_BEAT, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kAudio, + FRAME_DATA_HEART_BEAT, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); // Add malformed bytes tm_data.insert(tm_data.end(), 6, 0x6); // single packet RPC - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_SINGLE, - kRpc, FRAME_DATA_SINGLE, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kRpc, + FRAME_DATA_SINGLE, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -509,11 +638,12 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_AdditionalByte) { EXPECT_EQ(malformed_occurs, 6u); FrameList::iterator it_exp = mobile_packets.begin(); - for (FrameList::const_iterator it = actual_frames.begin(); it != actual_frames.end(); + for (FrameList::const_iterator it = actual_frames.begin(); + it != actual_frames.end(); ++it, ++it_exp) { // TODO(EZamakhov): investigate valgrind warning (unitialized value) - EXPECT_EQ(**it, **it_exp) - << "Element number " << std::distance(mobile_packets.begin(), it_exp); + EXPECT_EQ(**it, **it_exp) << "Element number " + << std::distance(mobile_packets.begin(), it_exp); } } @@ -521,51 +651,83 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_AdditionalByte) { TEST_F(IncomingDataHandlerTest, MalformedPacket_Mix) { FrameList mobile_packets; // single packet RPC - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_1, PROTECTION_OFF, FRAME_TYPE_SINGLE, - kRpc, FRAME_DATA_SINGLE, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_1, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kRpc, + FRAME_DATA_SINGLE, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); // consecutive packet Audio - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kAudio, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - some_message_id, some_data2)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kAudio, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + some_message_id, + some_data2)); AppendPacketToTMData(*mobile_packets.back()); // Malformed packet 1 const uint8_t malformed_version = PROTOCOL_VERSION_MAX; - const ProtocolPacket malformed_packet1( - uid1, malformed_version, PROTECTION_ON, FRAME_TYPE_SINGLE, - kMobileNav, FRAME_DATA_SINGLE, ++some_session_id, some_data_size, - ++some_message_id, some_data); + const ProtocolPacket malformed_packet1(uid1, + malformed_version, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kMobileNav, + FRAME_DATA_SINGLE, + ++some_session_id, + some_data_size, + ++some_message_id, + some_data); AppendPacketToTMData(malformed_packet1); // consecutive packet Bulk - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, - kBulk, FRAME_DATA_LAST_CONSECUTIVE, ++some_session_id, some_data2_size, - ++some_message_id, some_data2)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kBulk, + FRAME_DATA_LAST_CONSECUTIVE, + ++some_session_id, + some_data2_size, + ++some_message_id, + some_data2)); AppendPacketToTMData(*mobile_packets.back()); // Malformed packet 2 const uint8_t malformed_type = FRAME_TYPE_MAX_VALUE; - ProtocolPacket malformed_packet2( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, malformed_type, - kRpc, FRAME_DATA_HEART_BEAT, some_session_id, some_data_size, - protov1_message_id, some_data); + ProtocolPacket malformed_packet2(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + malformed_type, + kRpc, + FRAME_DATA_HEART_BEAT, + some_session_id, + some_data_size, + protov1_message_id, + some_data); AppendPacketToTMData(malformed_packet2); // Audio packet - mobile_packets.push_back( - new ProtocolPacket( - uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kAudio, FRAME_DATA_HEART_BEAT, some_session_id, some_data_size, - protov1_message_id, some_data)); + mobile_packets.push_back(new ProtocolPacket(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kAudio, + FRAME_DATA_HEART_BEAT, + some_session_id, + some_data_size, + protov1_message_id, + some_data)); AppendPacketToTMData(*mobile_packets.back()); ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -573,21 +735,29 @@ TEST_F(IncomingDataHandlerTest, MalformedPacket_Mix) { EXPECT_EQ(malformed_occurs, 2u); EXPECT_EQ(mobile_packets.size(), actual_frames.size()); FrameList::iterator it_exp = mobile_packets.begin(); - for (FrameList::const_iterator it = actual_frames.begin(); it != actual_frames.end(); + for (FrameList::const_iterator it = actual_frames.begin(); + it != actual_frames.end(); ++it, ++it_exp) { // TODO(EZamakhov): investigate valgrind warning (unitialized value) - EXPECT_EQ(**it, **it_exp) - << "Element number " << std::distance(mobile_packets.begin(), it_exp); + EXPECT_EQ(**it, **it_exp) << "Element number " + << std::distance(mobile_packets.begin(), it_exp); } } -TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectAndMalformed_OneMalformedCounted) { +TEST_F(IncomingDataHandlerTest, + OnePortionOfData_CorrectAndMalformed_OneMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -598,12 +768,19 @@ TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectAndMalformed_OneMalforme EXPECT_EQ(1u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, FirstPortionOfData_MalformedAndCorrect_OneMalformedCounted) { +TEST_F(IncomingDataHandlerTest, + FirstPortionOfData_MalformedAndCorrect_OneMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -615,13 +792,20 @@ TEST_F(IncomingDataHandlerTest, FirstPortionOfData_MalformedAndCorrect_OneMalfor EXPECT_EQ(1u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectMalformedCorrect_OneMalformedCounted) { +TEST_F(IncomingDataHandlerTest, + OnePortionOfData_CorrectMalformedCorrect_OneMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -633,15 +817,22 @@ TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectMalformedCorrect_OneMalf EXPECT_EQ(2u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectMalformedCorrectMalformed_TwoMalformedCounted) { +TEST_F(IncomingDataHandlerTest, + OnePortionOfData_CorrectMalformedCorrectMalformed_TwoMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -652,14 +843,21 @@ TEST_F(IncomingDataHandlerTest, OnePortionOfData_CorrectMalformedCorrectMalforme EXPECT_EQ(2u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, OnePortionOfData_MalformedCorrectMalformedCorrect_TwoMalformedCounted) { +TEST_F(IncomingDataHandlerTest, + OnePortionOfData_MalformedCorrectMalformedCorrect_TwoMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -671,13 +869,21 @@ TEST_F(IncomingDataHandlerTest, OnePortionOfData_MalformedCorrectMalformedCorrec EXPECT_EQ(2u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDCorrectMalformed_TwoMalformedCounted) { +TEST_F( + IncomingDataHandlerTest, + TwoPortionsOfData_CorrectMalformedANDCorrectMalformed_TwoMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -690,7 +896,7 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDCorrectMalf // Arrange tm_data.clear(); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -701,13 +907,21 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDCorrectMalf EXPECT_EQ(1u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDMalformedCorrect_OneMalformedCounted) { +TEST_F( + IncomingDataHandlerTest, + TwoPortionsOfData_CorrectMalformedANDMalformedCorrect_OneMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); @@ -719,7 +933,7 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDMalformedCo // Arrange tm_data.clear(); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -731,12 +945,20 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_CorrectMalformedANDMalformedCo EXPECT_EQ(1u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_MalformedCorrectANDMalformedCorrect_TwoMalformedCounted) { +TEST_F( + IncomingDataHandlerTest, + TwoPortionsOfData_MalformedCorrectANDMalformedCorrect_TwoMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -749,7 +971,7 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_MalformedCorrectANDMalformedCo // Arrange tm_data.clear(); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -761,12 +983,20 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_MalformedCorrectANDMalformedCo EXPECT_EQ(1u, actual_frames.size()); } -TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_MalformedCorrectANDCorrectMalformed_TwoMalformedCounted) { +TEST_F( + IncomingDataHandlerTest, + TwoPortionsOfData_MalformedCorrectANDCorrectMalformed_TwoMalformedCounted) { // Arrange - ProtocolPacket correct_hb_packet_(uid1, PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, + ProtocolPacket correct_hb_packet_(uid1, + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, some_message_id); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data AppendPacketToTMData(correct_hb_packet_); // Act @@ -780,7 +1010,7 @@ TEST_F(IncomingDataHandlerTest, TwoPortionsOfData_MalformedCorrectANDCorrectMalf // Arrange tm_data.clear(); AppendPacketToTMData(correct_hb_packet_); - tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data + tm_data.insert(tm_data.end(), 12, 0xFF); // 12 bytes of malformed data // Act ProcessData(uid1, &tm_data[0], tm_data.size()); diff --git a/src/components/protocol_handler/test/protocol_handler_tm_test.cc b/src/components/protocol_handler/test/protocol_handler_tm_test.cc index 1982fc7d48..1a7be866d9 100644 --- a/src/components/protocol_handler/test/protocol_handler_tm_test.cc +++ b/src/components/protocol_handler/test/protocol_handler_tm_test.cc @@ -274,7 +274,8 @@ class ProtocolHandlerImplTest : public ::testing::Test { testing::StrictMock<protocol_handler_test::MockSessionObserver> session_observer_mock; #ifdef ENABLE_SECURITY - testing::NiceMock<security_manager_test::MockSecurityManager> security_manager_mock; + testing::NiceMock<security_manager_test::MockSecurityManager> + security_manager_mock; testing::NiceMock<security_manager_test::MockSSLContext> ssl_context_mock; #endif // ENABLE_SECURITY }; diff --git a/src/components/protocol_handler/test/protocol_header_validator_test.cc b/src/components/protocol_handler/test/protocol_header_validator_test.cc index a229e96e79..40b0f34846 100644 --- a/src/components/protocol_handler/test/protocol_header_validator_test.cc +++ b/src/components/protocol_handler/test/protocol_header_validator_test.cc @@ -38,7 +38,7 @@ #include "protocol_handler/protocol_packet.h" namespace { - const size_t MAXIMUM_FRAME_DATA_V3_SIZE = 131072; +const size_t MAXIMUM_FRAME_DATA_V3_SIZE = 131072; } namespace test { @@ -71,24 +71,33 @@ TEST_F(ProtocolHeaderValidatorTest, MaxPayloadSizeSetGet) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Version) { std::vector<uint8_t> malformed_versions; malformed_versions.push_back(0); - for (uint8_t version = PROTOCOL_VERSION_4 + 1; version <= PROTOCOL_VERSION_MAX; ++version) { + for (uint8_t version = PROTOCOL_VERSION_4 + 1; + version <= PROTOCOL_VERSION_MAX; + ++version) { malformed_versions.push_back(version); } for (size_t i = 0; i < malformed_versions.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - malformed_versions[i], PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + malformed_versions[i], + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed version " << malformed_message_header.version; - } } -// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B (Video), 0x0F (Bulk) +// ServiceType shall be equal 0x0 (Control), 0x07 (RPC), 0x0A (PCM), 0x0B +// (Video), 0x0F (Bulk) TEST_F(ProtocolHeaderValidatorTest, Malformed_ServiceType) { std::vector<uint8_t> malformed_serv_types; - for (uint8_t service_type = kControl + 1; service_type < kRpc; ++service_type) { + for (uint8_t service_type = kControl + 1; service_type < kRpc; + ++service_type) { malformed_serv_types.push_back(service_type); } malformed_serv_types.push_back(0x08); @@ -99,58 +108,89 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_ServiceType) { for (size_t i = 0; i < malformed_serv_types.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, malformed_serv_types[i], - FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + malformed_serv_types[i], + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed service type " << malformed_message_header.serviceType; } } -// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 (Consecutive) +// Frame type shall be 0x00 (Control), 0x01 (Single), 0x02 (First), 0x03 +// (Consecutive) TEST_F(ProtocolHeaderValidatorTest, Malformed_FrameType) { std::vector<uint8_t> malformed_frame_types; for (uint8_t frame_type = FRAME_TYPE_CONSECUTIVE + 1; - frame_type <= FRAME_TYPE_MAX_VALUE; ++frame_type) { + frame_type <= FRAME_TYPE_MAX_VALUE; + ++frame_type) { malformed_frame_types.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_types.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, malformed_frame_types[i], - kControl, FRAME_DATA_HEART_BEAT, some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + malformed_frame_types[i], + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) << "Malformed frame type " << malformed_message_header.frameType; } } -// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data Ack), 0xFF(HB Ack) +// For Control frames Frame info value shall be from 0x00 to 0x06 or 0xFE(Data +// Ack), 0xFF(HB Ack) TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_END_SERVICE_NACK + 1; - frame_type < FRAME_DATA_SERVICE_DATA_ACK; ++frame_type) { + frame_type < FRAME_DATA_SERVICE_DATA_ACK; + ++frame_type) { malformed_frame_data.push_back(frame_type); } for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_CONTROL, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_CONTROL, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed Control frame with data " << malformed_message_header.frameData; + << "Malformed Control frame with data " + << malformed_message_header.frameData; } } // For Single and First frames Frame info value shall be equal 0x00 TEST_F(ProtocolHeaderValidatorTest, Malformed_SingleFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_SINGLE + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed Single frame with data " << malformed_message_header.frameData; + << "Malformed Single frame with data " + << malformed_message_header.frameData; // All malformed messages shall be ignored } } @@ -159,40 +199,68 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_SingleFrame) { TEST_F(ProtocolHeaderValidatorTest, Malformed_FirstFrame) { std::vector<uint8_t> malformed_frame_data; for (uint8_t frame_type = FRAME_DATA_FIRST + 1; - frame_type < FRAME_DATA_MAX_VALUE; ++frame_type) { + frame_type < FRAME_DATA_MAX_VALUE; + ++frame_type) { malformed_frame_data.push_back(frame_type); } malformed_frame_data.push_back(FRAME_DATA_MAX_VALUE); for (size_t i = 0; i < malformed_frame_data.size(); ++i) { const ProtocolPacket::ProtocolHeader malformed_message_header( - PROTOCOL_VERSION_3, PROTECTION_OFF, FRAME_TYPE_SINGLE, kControl, - malformed_frame_data[i], some_session_id, 0u, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_OFF, + FRAME_TYPE_SINGLE, + kControl, + malformed_frame_data[i], + some_session_id, + 0u, + some_message_id); EXPECT_EQ(RESULT_FAIL, header_validator.validate(malformed_message_header)) - << "Malformed First frame with data " << malformed_message_header.frameData; + << "Malformed First frame with data " + << malformed_message_header.frameData; } } TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame_EmptyPayload) { const size_t payload_size = 0u; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); - for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; + for (size_t max_payload_size = 0; + max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; ++max_payload_size) { - header_validator.set_max_payload_size(MAXIMUM_FRAME_DATA_V3_SIZE + max_payload_size); + header_validator.set_max_payload_size(MAXIMUM_FRAME_DATA_V3_SIZE + + max_payload_size); // For Control frames Data Size value could be zero EXPECT_EQ(RESULT_OK, header_validator.validate(control_message_header)); // For Control frames Data Size value could be zero EXPECT_EQ(RESULT_FAIL, header_validator.validate(single_message_header)); - EXPECT_EQ(RESULT_FAIL, header_validator.validate(consecutive_message_header)); + EXPECT_EQ(RESULT_FAIL, + header_validator.validate(consecutive_message_header)); } } @@ -200,14 +268,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_ControlFrame_EmptyPayload) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V2) { const size_t payload_size = MAXIMUM_FRAME_DATA_V2_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_2, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_2, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; @@ -222,14 +307,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V2) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { const size_t payload_size = MAXIMUM_FRAME_DATA_V3_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE; @@ -237,7 +339,8 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { header_validator.set_max_payload_size(max_payload_size); EXPECT_EQ(RESULT_FAIL, header_validator.validate(control_message_header)); EXPECT_EQ(RESULT_FAIL, header_validator.validate(single_message_header)); - EXPECT_EQ(RESULT_FAIL, header_validator.validate(consecutive_message_header)); + EXPECT_EQ(RESULT_FAIL, + header_validator.validate(consecutive_message_header)); } for (size_t max_payload_size = MAXIMUM_FRAME_DATA_V3_SIZE; @@ -253,14 +356,31 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3) { TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3_with_V2_size) { const size_t payload_size = MAXIMUM_FRAME_DATA_V2_SIZE; const ProtocolPacket::ProtocolHeader control_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONTROL, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, payload_size, some_message_id); - const ProtocolPacket::ProtocolHeader single_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_SINGLE, kControl, - FRAME_DATA_SINGLE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONTROL, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + payload_size, + some_message_id); + const ProtocolPacket::ProtocolHeader single_message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_SINGLE, + kControl, + FRAME_DATA_SINGLE, + some_session_id, + payload_size, + some_message_id); const ProtocolPacket::ProtocolHeader consecutive_message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_CONSECUTIVE, kControl, - FRAME_DATA_LAST_CONSECUTIVE, some_session_id, payload_size, some_message_id); + PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_CONSECUTIVE, + kControl, + FRAME_DATA_LAST_CONSECUTIVE, + some_session_id, + payload_size, + some_message_id); for (size_t max_payload_size = 0; max_payload_size < MAXIMUM_FRAME_DATA_V3_SIZE * 2; @@ -275,9 +395,14 @@ TEST_F(ProtocolHeaderValidatorTest, Malformed_Payload_V3_with_V2_size) { // Message ID be equal or greater than 0x01 TEST_F(ProtocolHeaderValidatorTest, Malformed_MessageID) { const uint32_t malformed_message_id = 0x0u; - ProtocolPacket::ProtocolHeader message_header( - PROTOCOL_VERSION_3, PROTECTION_ON, FRAME_TYPE_FIRST, kControl, - FRAME_DATA_HEART_BEAT, some_session_id, 0u, malformed_message_id); + ProtocolPacket::ProtocolHeader message_header(PROTOCOL_VERSION_3, + PROTECTION_ON, + FRAME_TYPE_FIRST, + kControl, + FRAME_DATA_HEART_BEAT, + some_session_id, + 0u, + malformed_message_id); message_header.frameType = FRAME_TYPE_FIRST; message_header.version = PROTOCOL_VERSION_1; diff --git a/src/components/protocol_handler/test/protocol_packet_test.cc b/src/components/protocol_handler/test/protocol_packet_test.cc index d0868c1112..7819c4b5b0 100644 --- a/src/components/protocol_handler/test/protocol_packet_test.cc +++ b/src/components/protocol_handler/test/protocol_packet_test.cc @@ -153,8 +153,7 @@ TEST_F(ProtocolPacketTest, SerializePacketWithWrongServiceType) { TEST_F(ProtocolPacketTest, SetPacketWithDiffFrameType) { uint8_t frame_type; - for (frame_type = FRAME_TYPE_CONTROL + 1; - frame_type <= FRAME_TYPE_MAX_VALUE; + for (frame_type = FRAME_TYPE_CONTROL + 1; frame_type <= FRAME_TYPE_MAX_VALUE; ++frame_type) { RawMessagePtr res = GetRawMessage(PROTOCOL_VERSION_3, frame_type, kControl); EXPECT_EQ(PROTOCOL_VERSION_3, res->protocol_version()); diff --git a/src/components/protocol_handler/test/protocol_payload_test.cc b/src/components/protocol_handler/test/protocol_payload_test.cc index 3b973e1061..e56f8aadff 100644 --- a/src/components/protocol_handler/test/protocol_payload_test.cc +++ b/src/components/protocol_handler/test/protocol_payload_test.cc @@ -49,7 +49,8 @@ void prepare_data(uint8_t* data_for_sending, ProtocolPayloadV2& message) { uint8_t offset = 0; uint32_t function_id = message.header.rpc_function_id; - data_for_sending[offset++] = ((rpc_type_flag << 4) & 0xF0) | (function_id >> 24); + data_for_sending[offset++] = + ((rpc_type_flag << 4) & 0xF0) | (function_id >> 24); data_for_sending[offset++] = function_id >> 16; data_for_sending[offset++] = function_id >> 8; data_for_sending[offset++] = function_id; @@ -67,12 +68,13 @@ void prepare_data(uint8_t* data_for_sending, ProtocolPayloadV2& message) { data_for_sending[offset++] = jsonSize; if (message.json.length() != 0) { - memcpy(data_for_sending + offset, message.json.c_str(), - message.json.size()); + memcpy( + data_for_sending + offset, message.json.c_str(), message.json.size()); } if (message.data.size() != 0) { - uint8_t* current_pointer = data_for_sending + offset + message.json.length(); + uint8_t* current_pointer = + data_for_sending + offset + message.json.length(); u_int32_t binarySize = message.data.size(); for (uint32_t i = 0; i < binarySize; ++i) { current_pointer[i] = message.data[i]; @@ -163,7 +165,7 @@ TEST(ProtocolPayloadTest, ExtractCorrectProtocolWithoutDataWithJSON) { const size_t data_for_sending_size = PROTOCOL_HEADER_V2_SIZE + prot_payload_test.data.size() + prot_payload_test.json.length(); - uint8_t *data_for_sending = new uint8_t[data_for_sending_size]; + uint8_t* data_for_sending = new uint8_t[data_for_sending_size]; prepare_data(data_for_sending, prot_payload_test); BitStream bs(data_for_sending, data_for_sending_size); diff --git a/src/components/qt_hmi/References/Work/bananasnacks/main.cpp b/src/components/qt_hmi/References/Work/bananasnacks/main.cpp index faa3f175be..bb40110e13 100644 --- a/src/components/qt_hmi/References/Work/bananasnacks/main.cpp +++ b/src/components/qt_hmi/References/Work/bananasnacks/main.cpp @@ -2,16 +2,15 @@ #include <QQmlContext> #include "qtquick2applicationviewer.h" -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); +int main(int argc, char* argv[]) { + QGuiApplication app(argc, argv); - QtQuick2ApplicationViewer viewer; + QtQuick2ApplicationViewer viewer; - viewer.addImportPath(QStringLiteral("plugins")); + viewer.addImportPath(QStringLiteral("plugins")); - viewer.setMainQmlFile(QStringLiteral("qml/Bananas/main.qml")); - viewer.showExpanded(); + viewer.setMainQmlFile(QStringLiteral("qml/Bananas/main.qml")); + viewer.showExpanded(); - return app.exec(); + return app.exec(); } diff --git a/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp index 547602d83c..8fcc4a6d38 100644 --- a/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp +++ b/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.cpp @@ -1,7 +1,8 @@ // checksum 0x56a9 version 0x80001 /* This file was generated by the Qt Quick 2 Application wizard of Qt Creator. - QtQuick2ApplicationViewer is a convenience class containing mobile device specific + QtQuick2ApplicationViewer is a convenience class containing mobile device + specific code such as screen orientation handling. Also QML paths and debugging are handled here. It is recommended not to modify this file, since newer versions of Qt Creator @@ -14,57 +15,50 @@ #include <QtCore/QDir> #include <QtQml/QQmlEngine> -class QtQuick2ApplicationViewerPrivate -{ - QString mainQmlFile; - friend class QtQuick2ApplicationViewer; - static QString adjustPath(const QString &path); +class QtQuick2ApplicationViewerPrivate { + QString mainQmlFile; + friend class QtQuick2ApplicationViewer; + static QString adjustPath(const QString& path); }; -QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path) -{ +QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString& path) { #if defined(Q_OS_MAC) - if (!QDir::isAbsolutePath(path)) - return QString::fromLatin1("%1/../Resources/%2") - .arg(QCoreApplication::applicationDirPath(), path); + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("%1/../Resources/%2") + .arg(QCoreApplication::applicationDirPath(), path); #elif defined(Q_OS_UNIX) - const QString pathInInstallDir = - QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path); - if (QFileInfo(pathInInstallDir).exists()) - return pathInInstallDir; + const QString pathInInstallDir = + QString::fromLatin1("%1/../%2") + .arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; #endif - return path; + return path; } -QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent) - : QQuickView(parent) - , d(new QtQuick2ApplicationViewerPrivate()) -{ - connect(engine(), SIGNAL(quit()), SLOT(close())); - setResizeMode(QQuickView::SizeRootObjectToView); +QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow* parent) + : QQuickView(parent), d(new QtQuick2ApplicationViewerPrivate()) { + connect(engine(), SIGNAL(quit()), SLOT(close())); + setResizeMode(QQuickView::SizeRootObjectToView); } -QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer() -{ - delete d; +QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer() { + delete d; } -void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file) -{ - d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file); - setSource(QUrl::fromLocalFile(d->mainQmlFile)); +void QtQuick2ApplicationViewer::setMainQmlFile(const QString& file) { + d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file); + setSource(QUrl::fromLocalFile(d->mainQmlFile)); } -void QtQuick2ApplicationViewer::addImportPath(const QString &path) -{ - engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path)); +void QtQuick2ApplicationViewer::addImportPath(const QString& path) { + engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path)); } -void QtQuick2ApplicationViewer::showExpanded() -{ +void QtQuick2ApplicationViewer::showExpanded() { #if defined(Q_WS_SIMULATOR) - showFullScreen(); + showFullScreen(); #else - show(); + show(); #endif } diff --git a/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h b/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h index bd6c50f54f..42287e8d79 100644 --- a/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h +++ b/src/components/qt_hmi/References/Work/bananasnacks/qtquick2applicationviewer/qtquick2applicationviewer.h @@ -1,7 +1,8 @@ // checksum 0xfde6 version 0x80001 /* This file was generated by the Qt Quick 2 Application wizard of Qt Creator. - QtQuick2ApplicationViewer is a convenience class containing mobile device specific + QtQuick2ApplicationViewer is a convenience class containing mobile device + specific code such as screen orientation handling. Also QML paths and debugging are handled here. It is recommended not to modify this file, since newer versions of Qt Creator @@ -13,21 +14,20 @@ #include <QtQuick/QQuickView> -class QtQuick2ApplicationViewer : public QQuickView -{ - Q_OBJECT +class QtQuick2ApplicationViewer : public QQuickView { + Q_OBJECT -public: - explicit QtQuick2ApplicationViewer(QWindow *parent = 0); - virtual ~QtQuick2ApplicationViewer(); + public: + explicit QtQuick2ApplicationViewer(QWindow* parent = 0); + virtual ~QtQuick2ApplicationViewer(); - void setMainQmlFile(const QString &file); - void addImportPath(const QString &path); + void setMainQmlFile(const QString& file); + void addImportPath(const QString& path); - void showExpanded(); + void showExpanded(); -private: - class QtQuick2ApplicationViewerPrivate *d; + private: + class QtQuick2ApplicationViewerPrivate* d; }; -#endif // QTQUICK2APPLICATIONVIEWER_H +#endif // QTQUICK2APPLICATIONVIEWER_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp index 5e86daa2f3..9c4eed8cc1 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.cpp @@ -6,465 +6,451 @@ #include <QCryptographicHash> #include <QDateTime> -const QString QWsServer::regExpResourceNameStr( QLatin1String("^GET\\s(.*)\\sHTTP/1.1\r\n") ); -const QString QWsServer::regExpHostStr( QLatin1String("\r\nHost:\\s(.+(:\\d+)?)\r\n") ); -const QString QWsServer::regExpKeyStr( QLatin1String("\r\nSec-WebSocket-Key:\\s(.{24})\r\n") ); -const QString QWsServer::regExpKey1Str( QLatin1String("\r\nSec-WebSocket-Key1:\\s(.+)\r\n") ); -const QString QWsServer::regExpKey2Str( QLatin1String("\r\nSec-WebSocket-Key2:\\s(.+)\r\n") ); -const QString QWsServer::regExpKey3Str( QLatin1String("\r\n(.{8})$") ); -const QString QWsServer::regExpVersionStr( QLatin1String("\r\nSec-WebSocket-Version:\\s(\\d+)\r\n") ); -const QString QWsServer::regExpOriginStr( QLatin1String("\r\nSec-WebSocket-Origin:\\s(.+)\r\n") ); -const QString QWsServer::regExpOrigin2Str( QLatin1String("\r\nOrigin:\\s(.+)\r\n") ); -const QString QWsServer::regExpProtocolStr( QLatin1String("\r\nSec-WebSocket-Protocol:\\s(.+)\r\n") ); -const QString QWsServer::regExpExtensionsStr( QLatin1String("\r\nSec-WebSocket-Extensions:\\s(.+)\r\n") ); - -QWsServer::QWsServer(QObject * parent) - : QObject(parent) -{ - tcpServer = new QTcpServer(this); - connect( tcpServer, SIGNAL(newConnection()), this, SLOT(newTcpConnection()) ); - qsrand( QDateTime::currentMSecsSinceEpoch() ); +const QString QWsServer::regExpResourceNameStr( + QLatin1String("^GET\\s(.*)\\sHTTP/1.1\r\n")); +const QString QWsServer::regExpHostStr( + QLatin1String("\r\nHost:\\s(.+(:\\d+)?)\r\n")); +const QString QWsServer::regExpKeyStr( + QLatin1String("\r\nSec-WebSocket-Key:\\s(.{24})\r\n")); +const QString QWsServer::regExpKey1Str( + QLatin1String("\r\nSec-WebSocket-Key1:\\s(.+)\r\n")); +const QString QWsServer::regExpKey2Str( + QLatin1String("\r\nSec-WebSocket-Key2:\\s(.+)\r\n")); +const QString QWsServer::regExpKey3Str(QLatin1String("\r\n(.{8})$")); +const QString QWsServer::regExpVersionStr( + QLatin1String("\r\nSec-WebSocket-Version:\\s(\\d+)\r\n")); +const QString QWsServer::regExpOriginStr( + QLatin1String("\r\nSec-WebSocket-Origin:\\s(.+)\r\n")); +const QString QWsServer::regExpOrigin2Str( + QLatin1String("\r\nOrigin:\\s(.+)\r\n")); +const QString QWsServer::regExpProtocolStr( + QLatin1String("\r\nSec-WebSocket-Protocol:\\s(.+)\r\n")); +const QString QWsServer::regExpExtensionsStr( + QLatin1String("\r\nSec-WebSocket-Extensions:\\s(.+)\r\n")); + +QWsServer::QWsServer(QObject* parent) : QObject(parent) { + tcpServer = new QTcpServer(this); + connect(tcpServer, SIGNAL(newConnection()), this, SLOT(newTcpConnection())); + qsrand(QDateTime::currentMSecsSinceEpoch()); } -QWsServer::~QWsServer() -{ - tcpServer->deleteLater(); +QWsServer::~QWsServer() { + tcpServer->deleteLater(); } -bool QWsServer::listen(const QHostAddress & address, quint16 port) -{ - return tcpServer->listen(address, port); +bool QWsServer::listen(const QHostAddress& address, quint16 port) { + return tcpServer->listen(address, port); } -void QWsServer::close() -{ - tcpServer->close(); +void QWsServer::close() { + tcpServer->close(); } -QAbstractSocket::SocketError QWsServer::serverError() -{ - return tcpServer->serverError(); +QAbstractSocket::SocketError QWsServer::serverError() { + return tcpServer->serverError(); } -QString QWsServer::errorString() -{ - return tcpServer->errorString(); +QString QWsServer::errorString() { + return tcpServer->errorString(); } -void QWsServer::newTcpConnection() -{ - QTcpSocket * tcpSocket = tcpServer->nextPendingConnection(); - connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived()) ); - headerBuffer.insert( tcpSocket, QStringList() ); +void QWsServer::newTcpConnection() { + QTcpSocket* tcpSocket = tcpServer->nextPendingConnection(); + connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived())); + headerBuffer.insert(tcpSocket, QStringList()); } -void QWsServer::closeTcpConnection() -{ - QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() ); - if (tcpSocket == 0) - return; +void QWsServer::closeTcpConnection() { + QTcpSocket* tcpSocket = qobject_cast<QTcpSocket*>(sender()); + if (tcpSocket == 0) + return; - tcpSocket->close(); + tcpSocket->close(); } -void QWsServer::dataReceived() -{ - QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() ); - if (tcpSocket == 0) - return; - - bool allHeadersFetched = false; - - const QLatin1String emptyLine("\r\n"); - - while ( tcpSocket->canReadLine() ) - { - QString line = tcpSocket->readLine(); - - if (line == emptyLine) - { - allHeadersFetched = true; - break; - } - - headerBuffer[ tcpSocket ].append(line); - } - - if (!allHeadersFetched) - return; - - QString request( headerBuffer[ tcpSocket ].join("") ); - - QRegExp regExp; - regExp.setMinimal( true ); - - // Extract mandatory datas - // Version - regExp.setPattern( QWsServer::regExpVersionStr ); - regExp.indexIn(request); - QString versionStr = regExp.cap(1); - EWebsocketVersion version; - if ( ! versionStr.isEmpty() ) - { - version = (EWebsocketVersion)versionStr.toInt(); - } - else if ( tcpSocket->bytesAvailable() >= 8 ) - { - version = WS_V0; - request.append( tcpSocket->read(8) ); - } - else - { - version = WS_VUnknow; - } - - // Resource name - regExp.setPattern( QWsServer::regExpResourceNameStr ); - regExp.indexIn(request); - QString resourceName = regExp.cap(1); - - // Host (address & port) - regExp.setPattern( QWsServer::regExpHostStr ); - regExp.indexIn(request); - QString host = regExp.cap(1); - QStringList hostTmp = host.split(':'); - QString hostAddress = hostTmp[0]; - QString hostPort; - if ( hostTmp.size() > 1 ) - hostPort = hostTmp.last(); // fix for IPv6 - - // Key - QString key, key1, key2, key3; - if ( version >= WS_V4 ) - { - regExp.setPattern( QWsServer::regExpKeyStr ); - regExp.indexIn(request); - key = regExp.cap(1); - } - else - { - regExp.setPattern( QWsServer::regExpKey1Str ); - regExp.indexIn(request); - key1 = regExp.cap(1); - regExp.setPattern( QWsServer::regExpKey2Str ); - regExp.indexIn(request); - key2 = regExp.cap(1); - regExp.setPattern( QWsServer::regExpKey3Str ); - regExp.indexIn(request); - key3 = regExp.cap(1); - } - - //////////////////////////////////////////////////////////////////// - - // If the mandatory fields are not specified, we abord the connection to the Websocket server - if ( version == WS_VUnknow || resourceName.isEmpty() || hostAddress.isEmpty() || ( key.isEmpty() && ( key1.isEmpty() || key2.isEmpty() || key3.isEmpty() ) ) ) - { - // Send bad request response - QString response = QWsServer::composeBadRequestResponse( QList<EWebsocketVersion>() << WS_V6 << WS_V7 << WS_V8 << WS_V13 ); - tcpSocket->write( response.toUtf8() ); - tcpSocket->flush(); - return; - } - - //////////////////////////////////////////////////////////////////// - - // Extract optional datas - - // Origin - regExp.setPattern( QWsServer::regExpOriginStr ); - if ( regExp.indexIn(request) == -1 ) - { - regExp.setPattern( QWsServer::regExpOrigin2Str ); - regExp.indexIn(request); - } - QString origin = regExp.cap(1); - - // Protocol - regExp.setPattern( QWsServer::regExpProtocolStr ); - regExp.indexIn(request); - QString protocol = regExp.cap(1); - - // Extensions - regExp.setPattern( QWsServer::regExpExtensionsStr ); - regExp.indexIn(request); - QString extensions = regExp.cap(1); - - //////////////////////////////////////////////////////////////////// - - // Compose opening handshake response - QString response; - - if ( version >= WS_V6 ) - { - QString accept = computeAcceptV4( key ); - response = QWsServer::composeOpeningHandshakeResponseV6( accept, protocol ); - } - else if ( version >= WS_V4 ) - { - QString accept = computeAcceptV4( key ); - QString nonce = generateNonce(); - response = QWsServer::composeOpeningHandshakeResponseV4( accept, nonce, protocol ); - } - else - { - QString accept = computeAcceptV0( key1, key2, key3 ); - response = QWsServer::composeOpeningHandshakeResponseV0( accept, origin, hostAddress, hostPort, resourceName , protocol ); - } - - // Handshake OK, disconnect readyRead - disconnect( tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived()) ); - - // Send opening handshake response - if ( version == WS_V0 ) - tcpSocket->write( response.toLatin1() ); - else - tcpSocket->write( response.toUtf8() ); - tcpSocket->flush(); - - QWsSocket * wsSocket = new QWsSocket( this, tcpSocket, version ); - wsSocket->setResourceName( resourceName ); - wsSocket->setHost( host ); - wsSocket->setHostAddress( hostAddress ); - wsSocket->setHostPort( hostPort.toInt() ); - wsSocket->setOrigin( origin ); - wsSocket->setProtocol( protocol ); - wsSocket->setExtensions( extensions ); - wsSocket->serverSideSocket = true; - - // ORIGINAL CODE - //int socketDescriptor = tcpSocket->socketDescriptor(); - //incomingConnection( socketDescriptor ); - - // CHANGED CODE FOR LINUX COMPATIBILITY - addPendingConnection( wsSocket ); - emit newConnection(); +void QWsServer::dataReceived() { + QTcpSocket* tcpSocket = qobject_cast<QTcpSocket*>(sender()); + if (tcpSocket == 0) + return; + + bool allHeadersFetched = false; + + const QLatin1String emptyLine("\r\n"); + + while (tcpSocket->canReadLine()) { + QString line = tcpSocket->readLine(); + + if (line == emptyLine) { + allHeadersFetched = true; + break; + } + + headerBuffer[tcpSocket].append(line); + } + + if (!allHeadersFetched) + return; + + QString request(headerBuffer[tcpSocket].join("")); + + QRegExp regExp; + regExp.setMinimal(true); + + // Extract mandatory datas + // Version + regExp.setPattern(QWsServer::regExpVersionStr); + regExp.indexIn(request); + QString versionStr = regExp.cap(1); + EWebsocketVersion version; + if (!versionStr.isEmpty()) { + version = (EWebsocketVersion)versionStr.toInt(); + } else if (tcpSocket->bytesAvailable() >= 8) { + version = WS_V0; + request.append(tcpSocket->read(8)); + } else { + version = WS_VUnknow; + } + + // Resource name + regExp.setPattern(QWsServer::regExpResourceNameStr); + regExp.indexIn(request); + QString resourceName = regExp.cap(1); + + // Host (address & port) + regExp.setPattern(QWsServer::regExpHostStr); + regExp.indexIn(request); + QString host = regExp.cap(1); + QStringList hostTmp = host.split(':'); + QString hostAddress = hostTmp[0]; + QString hostPort; + if (hostTmp.size() > 1) + hostPort = hostTmp.last(); // fix for IPv6 + + // Key + QString key, key1, key2, key3; + if (version >= WS_V4) { + regExp.setPattern(QWsServer::regExpKeyStr); + regExp.indexIn(request); + key = regExp.cap(1); + } else { + regExp.setPattern(QWsServer::regExpKey1Str); + regExp.indexIn(request); + key1 = regExp.cap(1); + regExp.setPattern(QWsServer::regExpKey2Str); + regExp.indexIn(request); + key2 = regExp.cap(1); + regExp.setPattern(QWsServer::regExpKey3Str); + regExp.indexIn(request); + key3 = regExp.cap(1); + } + + //////////////////////////////////////////////////////////////////// + + // If the mandatory fields are not specified, we abord the connection to the + // Websocket server + if (version == WS_VUnknow || resourceName.isEmpty() || + hostAddress.isEmpty() || + (key.isEmpty() && (key1.isEmpty() || key2.isEmpty() || key3.isEmpty()))) { + // Send bad request response + QString response = QWsServer::composeBadRequestResponse( + QList<EWebsocketVersion>() << WS_V6 << WS_V7 << WS_V8 << WS_V13); + tcpSocket->write(response.toUtf8()); + tcpSocket->flush(); + return; + } + + //////////////////////////////////////////////////////////////////// + + // Extract optional datas + + // Origin + regExp.setPattern(QWsServer::regExpOriginStr); + if (regExp.indexIn(request) == -1) { + regExp.setPattern(QWsServer::regExpOrigin2Str); + regExp.indexIn(request); + } + QString origin = regExp.cap(1); + + // Protocol + regExp.setPattern(QWsServer::regExpProtocolStr); + regExp.indexIn(request); + QString protocol = regExp.cap(1); + + // Extensions + regExp.setPattern(QWsServer::regExpExtensionsStr); + regExp.indexIn(request); + QString extensions = regExp.cap(1); + + //////////////////////////////////////////////////////////////////// + + // Compose opening handshake response + QString response; + + if (version >= WS_V6) { + QString accept = computeAcceptV4(key); + response = QWsServer::composeOpeningHandshakeResponseV6(accept, protocol); + } else if (version >= WS_V4) { + QString accept = computeAcceptV4(key); + QString nonce = generateNonce(); + response = + QWsServer::composeOpeningHandshakeResponseV4(accept, nonce, protocol); + } else { + QString accept = computeAcceptV0(key1, key2, key3); + response = QWsServer::composeOpeningHandshakeResponseV0( + accept, origin, hostAddress, hostPort, resourceName, protocol); + } + + // Handshake OK, disconnect readyRead + disconnect(tcpSocket, SIGNAL(readyRead()), this, SLOT(dataReceived())); + + // Send opening handshake response + if (version == WS_V0) + tcpSocket->write(response.toLatin1()); + else + tcpSocket->write(response.toUtf8()); + tcpSocket->flush(); + + QWsSocket* wsSocket = new QWsSocket(this, tcpSocket, version); + wsSocket->setResourceName(resourceName); + wsSocket->setHost(host); + wsSocket->setHostAddress(hostAddress); + wsSocket->setHostPort(hostPort.toInt()); + wsSocket->setOrigin(origin); + wsSocket->setProtocol(protocol); + wsSocket->setExtensions(extensions); + wsSocket->serverSideSocket = true; + + // ORIGINAL CODE + // int socketDescriptor = tcpSocket->socketDescriptor(); + // incomingConnection( socketDescriptor ); + + // CHANGED CODE FOR LINUX COMPATIBILITY + addPendingConnection(wsSocket); + emit newConnection(); } -void QWsServer::incomingConnection( int socketDescriptor ) -{ - QTcpSocket * tcpSocket = new QTcpSocket( tcpServer ); - tcpSocket->setSocketDescriptor( socketDescriptor, QAbstractSocket::ConnectedState ); - QWsSocket * wsSocket = new QWsSocket( this, tcpSocket ); +void QWsServer::incomingConnection(int socketDescriptor) { + QTcpSocket* tcpSocket = new QTcpSocket(tcpServer); + tcpSocket->setSocketDescriptor(socketDescriptor, + QAbstractSocket::ConnectedState); + QWsSocket* wsSocket = new QWsSocket(this, tcpSocket); - addPendingConnection( wsSocket ); - emit newConnection(); + addPendingConnection(wsSocket); + emit newConnection(); } -void QWsServer::addPendingConnection( QWsSocket * socket ) -{ - if ( pendingConnections.size() < maxPendingConnections() ) - pendingConnections.enqueue( socket ); +void QWsServer::addPendingConnection(QWsSocket* socket) { + if (pendingConnections.size() < maxPendingConnections()) + pendingConnections.enqueue(socket); } -QWsSocket * QWsServer::nextPendingConnection() -{ - return pendingConnections.dequeue(); +QWsSocket* QWsServer::nextPendingConnection() { + return pendingConnections.dequeue(); } -bool QWsServer::hasPendingConnections() -{ - if ( pendingConnections.size() > 0 ) - return true; - return false; +bool QWsServer::hasPendingConnections() { + if (pendingConnections.size() > 0) + return true; + return false; } -int QWsServer::maxPendingConnections() -{ - return tcpServer->maxPendingConnections(); +int QWsServer::maxPendingConnections() { + return tcpServer->maxPendingConnections(); } -bool QWsServer::isListening() -{ - return tcpServer->isListening(); +bool QWsServer::isListening() { + return tcpServer->isListening(); } -QNetworkProxy QWsServer::proxy() -{ - return tcpServer->proxy(); +QNetworkProxy QWsServer::proxy() { + return tcpServer->proxy(); } -QHostAddress QWsServer::serverAddress() -{ - return tcpServer->serverAddress(); +QHostAddress QWsServer::serverAddress() { + return tcpServer->serverAddress(); } -quint16 QWsServer::serverPort() -{ - return tcpServer->serverPort(); +quint16 QWsServer::serverPort() { + return tcpServer->serverPort(); } -void QWsServer::setMaxPendingConnections( int numConnections ) -{ - tcpServer->setMaxPendingConnections( numConnections ); +void QWsServer::setMaxPendingConnections(int numConnections) { + tcpServer->setMaxPendingConnections(numConnections); } -void QWsServer::setProxy( const QNetworkProxy & networkProxy ) -{ - tcpServer->setProxy( networkProxy ); +void QWsServer::setProxy(const QNetworkProxy& networkProxy) { + tcpServer->setProxy(networkProxy); } -bool QWsServer::setSocketDescriptor( int socketDescriptor ) -{ - return tcpServer->setSocketDescriptor( socketDescriptor ); +bool QWsServer::setSocketDescriptor(int socketDescriptor) { + return tcpServer->setSocketDescriptor(socketDescriptor); } -int QWsServer::socketDescriptor() -{ - return tcpServer->socketDescriptor(); +int QWsServer::socketDescriptor() { + return tcpServer->socketDescriptor(); } -bool QWsServer::waitForNewConnection( int msec, bool * timedOut ) -{ - return tcpServer->waitForNewConnection( msec, timedOut ); +bool QWsServer::waitForNewConnection(int msec, bool* timedOut) { + return tcpServer->waitForNewConnection(msec, timedOut); } -QString QWsServer::computeAcceptV0( QString key1, QString key2, QString key3 ) -{ - QString numStr1; - QString numStr2; +QString QWsServer::computeAcceptV0(QString key1, QString key2, QString key3) { + QString numStr1; + QString numStr2; - QChar carac; - for ( int i=0 ; i<key1.size() ; i++ ) - { - carac = key1[ i ]; - if ( carac.isDigit() ) - numStr1.append( carac ); - } - for ( int i=0 ; i<key2.size() ; i++ ) - { - carac = key2[ i ]; - if ( carac.isDigit() ) - numStr2.append( carac ); - } + QChar carac; + for (int i = 0; i < key1.size(); i++) { + carac = key1[i]; + if (carac.isDigit()) + numStr1.append(carac); + } + for (int i = 0; i < key2.size(); i++) { + carac = key2[i]; + if (carac.isDigit()) + numStr2.append(carac); + } - quint32 num1 = numStr1.toUInt(); - quint32 num2 = numStr2.toUInt(); + quint32 num1 = numStr1.toUInt(); + quint32 num2 = numStr2.toUInt(); - int numSpaces1 = key1.count( ' ' ); - int numSpaces2 = key2.count( ' ' ); + int numSpaces1 = key1.count(' '); + int numSpaces2 = key2.count(' '); - num1 /= numSpaces1; - num2 /= numSpaces2; + num1 /= numSpaces1; + num2 /= numSpaces2; - QString concat = serializeInt( num1 ) + serializeInt( num2 ) + key3; + QString concat = serializeInt(num1) + serializeInt(num2) + key3; - QByteArray md5 = QCryptographicHash::hash( concat.toLatin1(), QCryptographicHash::Md5 ); + QByteArray md5 = + QCryptographicHash::hash(concat.toLatin1(), QCryptographicHash::Md5); - return QString( md5 ); + return QString(md5); } -QString QWsServer::computeAcceptV4(QString key) -{ - key += QLatin1String("258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); - QByteArray hash = QCryptographicHash::hash ( key.toUtf8(), QCryptographicHash::Sha1 ); - return hash.toBase64(); +QString QWsServer::computeAcceptV4(QString key) { + key += QLatin1String("258EAFA5-E914-47DA-95CA-C5AB0DC85B11"); + QByteArray hash = + QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Sha1); + return hash.toBase64(); } -QString QWsServer::generateNonce() -{ - qsrand( QDateTime::currentDateTime().toTime_t() ); +QString QWsServer::generateNonce() { + qsrand(QDateTime::currentDateTime().toTime_t()); - QByteArray nonce; - int i = 16; + QByteArray nonce; + int i = 16; - while( i-- ) - { - nonce.append( qrand() % 0x100 ); - } + while (i--) { + nonce.append(qrand() % 0x100); + } - return QString( nonce.toBase64() ); + return QString(nonce.toBase64()); } -QByteArray QWsServer::serializeInt( quint32 number, quint8 nbBytes ) -{ - QByteArray ba; - quint8 currentNbBytes = 0; - while (number > 0 && currentNbBytes < nbBytes) - { - char car = static_cast<char>(number & 0xFF); - ba.prepend( car ); - number = number >> 8; - currentNbBytes++; - } - char car = 0x00; - while (currentNbBytes < nbBytes) - { - ba.prepend( car ); - currentNbBytes++; - } - return ba; +QByteArray QWsServer::serializeInt(quint32 number, quint8 nbBytes) { + QByteArray ba; + quint8 currentNbBytes = 0; + while (number > 0 && currentNbBytes < nbBytes) { + char car = static_cast<char>(number & 0xFF); + ba.prepend(car); + number = number >> 8; + currentNbBytes++; + } + char car = 0x00; + while (currentNbBytes < nbBytes) { + ba.prepend(car); + currentNbBytes++; + } + return ba; } -QString QWsServer::composeOpeningHandshakeResponseV0( QString accept, QString origin, QString hostAddress, QString hostPort, QString resourceName, QString protocol ) -{ - QString response; - - response.append( QLatin1String("HTTP/1.1 101 WebSocket Protocol Handshake\r\n") ); - response.append( QLatin1String("Upgrade: Websocket\r\n") ); - response.append( QLatin1String("Connection: Upgrade\r\n") ); - response.append( QLatin1String("Sec-WebSocket-Origin: ") + origin + QLatin1String("\r\n") ); - response.append( QLatin1String("Sec-WebSocket-Location: ws://") + hostAddress); - if (!hostPort.isEmpty()) - response.append(QLatin1String(":") + hostPort); - response.append(resourceName + QLatin1String("\r\n")); - if ( ! protocol.isEmpty() ) - response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") ); - response.append( QLatin1String("\r\n") ); - response.append( accept ); - - return response; +QString QWsServer::composeOpeningHandshakeResponseV0(QString accept, + QString origin, + QString hostAddress, + QString hostPort, + QString resourceName, + QString protocol) { + QString response; + + response.append( + QLatin1String("HTTP/1.1 101 WebSocket Protocol Handshake\r\n")); + response.append(QLatin1String("Upgrade: Websocket\r\n")); + response.append(QLatin1String("Connection: Upgrade\r\n")); + response.append(QLatin1String("Sec-WebSocket-Origin: ") + origin + + QLatin1String("\r\n")); + response.append(QLatin1String("Sec-WebSocket-Location: ws://") + hostAddress); + if (!hostPort.isEmpty()) + response.append(QLatin1String(":") + hostPort); + response.append(resourceName + QLatin1String("\r\n")); + if (!protocol.isEmpty()) + response.append(QLatin1String("Sec-WebSocket-Protocol: ") + protocol + + QLatin1String("\r\n")); + response.append(QLatin1String("\r\n")); + response.append(accept); + + return response; } -QString QWsServer::composeOpeningHandshakeResponseV4( QString accept, QString nonce, QString protocol, QString extensions ) -{ - QString response; - - response.append( QLatin1String("HTTP/1.1 101 Switching Protocols\r\n") ); - response.append( QLatin1String("Upgrade: websocket\r\n") ); - response.append( QLatin1String("Connection: Upgrade\r\n") ); - response.append( QLatin1String("Sec-WebSocket-Accept: ") + accept + QLatin1String("\r\n") ); - response.append( QLatin1String("Sec-WebSocket-Nonce: ") + nonce + QLatin1String("\r\n") ); - if ( ! protocol.isEmpty() ) - response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") ); - if ( ! extensions.isEmpty() ) - response.append( QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n") ); - response.append( QLatin1String("\r\n") ); - - return response; +QString QWsServer::composeOpeningHandshakeResponseV4(QString accept, + QString nonce, + QString protocol, + QString extensions) { + QString response; + + response.append(QLatin1String("HTTP/1.1 101 Switching Protocols\r\n")); + response.append(QLatin1String("Upgrade: websocket\r\n")); + response.append(QLatin1String("Connection: Upgrade\r\n")); + response.append(QLatin1String("Sec-WebSocket-Accept: ") + accept + + QLatin1String("\r\n")); + response.append(QLatin1String("Sec-WebSocket-Nonce: ") + nonce + + QLatin1String("\r\n")); + if (!protocol.isEmpty()) + response.append(QLatin1String("Sec-WebSocket-Protocol: ") + protocol + + QLatin1String("\r\n")); + if (!extensions.isEmpty()) + response.append(QLatin1String("Sec-WebSocket-Extensions: ") + extensions + + QLatin1String("\r\n")); + response.append(QLatin1String("\r\n")); + + return response; } -QString QWsServer::composeOpeningHandshakeResponseV6( QString accept, QString protocol, QString extensions ) -{ - QString response; - - response.append( QLatin1String("HTTP/1.1 101 Switching Protocols\r\n") ); - response.append( QLatin1String("Upgrade: websocket\r\n") ); - response.append( QLatin1String("Connection: Upgrade\r\n") ); - response.append( QLatin1String("Sec-WebSocket-Accept: ") + accept + QLatin1String("\r\n") ); - if ( ! protocol.isEmpty() ) - response.append( QLatin1String("Sec-WebSocket-Protocol: ") + protocol + QLatin1String("\r\n") ); - if ( ! extensions.isEmpty() ) - response.append( QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n") ); - response.append( QLatin1String("\r\n") ); - - return response; +QString QWsServer::composeOpeningHandshakeResponseV6(QString accept, + QString protocol, + QString extensions) { + QString response; + + response.append(QLatin1String("HTTP/1.1 101 Switching Protocols\r\n")); + response.append(QLatin1String("Upgrade: websocket\r\n")); + response.append(QLatin1String("Connection: Upgrade\r\n")); + response.append(QLatin1String("Sec-WebSocket-Accept: ") + accept + + QLatin1String("\r\n")); + if (!protocol.isEmpty()) + response.append(QLatin1String("Sec-WebSocket-Protocol: ") + protocol + + QLatin1String("\r\n")); + if (!extensions.isEmpty()) + response.append(QLatin1String("Sec-WebSocket-Extensions: ") + extensions + + QLatin1String("\r\n")); + response.append(QLatin1String("\r\n")); + + return response; } -QString QWsServer::composeBadRequestResponse( QList<EWebsocketVersion> versions ) -{ - QString response; - - response.append( QLatin1String("HTTP/1.1 400 Bad Request\r\n") ); - if ( ! versions.isEmpty() ) - { - QString versionsStr = QString::number( (int)versions.takeLast() ); - int i = versions.size(); - while ( i-- ) - { - versionsStr.append( QLatin1String(", ") + QString::number( (int)versions.takeLast() ) ); - } - response.append( QLatin1String("Sec-WebSocket-Version: ") + versionsStr + QLatin1String("\r\n") ); - } - - return response; +QString QWsServer::composeBadRequestResponse( + QList<EWebsocketVersion> versions) { + QString response; + + response.append(QLatin1String("HTTP/1.1 400 Bad Request\r\n")); + if (!versions.isEmpty()) { + QString versionsStr = QString::number((int)versions.takeLast()); + int i = versions.size(); + while (i--) { + versionsStr.append(QLatin1String(", ") + + QString::number((int)versions.takeLast())); + } + response.append(QLatin1String("Sec-WebSocket-Version: ") + versionsStr + + QLatin1String("\r\n")); + } + + return response; } diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h index c526c747ab..f37dd4b5b2 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsServer.h @@ -11,77 +11,88 @@ #include "QWsSocket.h" -class QWsServer : public QObject -{ - Q_OBJECT +class QWsServer : public QObject { + Q_OBJECT -public: - // ctor - QWsServer(QObject * parent = 0); - // dtor - virtual ~QWsServer(); + public: + // ctor + QWsServer(QObject* parent = 0); + // dtor + virtual ~QWsServer(); - // public functions - void close(); - QString errorString(); - bool hasPendingConnections(); - bool isListening(); - bool listen(const QHostAddress & address = QHostAddress::Any, quint16 port = 0); - int maxPendingConnections(); - virtual QWsSocket * nextPendingConnection(); - QNetworkProxy proxy(); - QHostAddress serverAddress(); - QAbstractSocket::SocketError serverError(); - quint16 serverPort(); - void setMaxPendingConnections( int numConnections ); - void setProxy( const QNetworkProxy & networkProxy ); - bool setSocketDescriptor( int socketDescriptor ); - int socketDescriptor(); - bool waitForNewConnection( int msec = 0, bool * timedOut = 0 ); + // public functions + void close(); + QString errorString(); + bool hasPendingConnections(); + bool isListening(); + bool listen(const QHostAddress& address = QHostAddress::Any, + quint16 port = 0); + int maxPendingConnections(); + virtual QWsSocket* nextPendingConnection(); + QNetworkProxy proxy(); + QHostAddress serverAddress(); + QAbstractSocket::SocketError serverError(); + quint16 serverPort(); + void setMaxPendingConnections(int numConnections); + void setProxy(const QNetworkProxy& networkProxy); + bool setSocketDescriptor(int socketDescriptor); + int socketDescriptor(); + bool waitForNewConnection(int msec = 0, bool* timedOut = 0); signals: - void newConnection(); + void newConnection(); -protected: - // protected functions - void addPendingConnection( QWsSocket * socket ); - virtual void incomingConnection( int socketDescriptor ); + protected: + // protected functions + void addPendingConnection(QWsSocket* socket); + virtual void incomingConnection(int socketDescriptor); -private slots: - // private slots - void newTcpConnection(); - void closeTcpConnection(); - void dataReceived(); + private slots: + // private slots + void newTcpConnection(); + void closeTcpConnection(); + void dataReceived(); -private: - // private attributes - QTcpServer * tcpServer; - QQueue<QWsSocket*> pendingConnections; - QMap<const QTcpSocket*, QStringList> headerBuffer; + private: + // private attributes + QTcpServer* tcpServer; + QQueue<QWsSocket*> pendingConnections; + QMap<const QTcpSocket*, QStringList> headerBuffer; -public: - // public static functions - static QByteArray serializeInt( quint32 number, quint8 nbBytes = 4 ); - static QString computeAcceptV0( QString key1, QString key2, QString thirdPart ); - static QString computeAcceptV4( QString key ); - static QString generateNonce(); - static QString composeOpeningHandshakeResponseV0( QString accept, QString origin, QString hostAddress, QString hostPort, QString resourceName, QString protocol = "" ); - static QString composeOpeningHandshakeResponseV4( QString accept, QString nonce, QString protocol = "", QString extensions = "" ); - static QString composeOpeningHandshakeResponseV6( QString accept, QString protocol = "", QString extensions = "" ); - static QString composeBadRequestResponse( QList<EWebsocketVersion> versions = QList<EWebsocketVersion>() ); + public: + // public static functions + static QByteArray serializeInt(quint32 number, quint8 nbBytes = 4); + static QString computeAcceptV0(QString key1, QString key2, QString thirdPart); + static QString computeAcceptV4(QString key); + static QString generateNonce(); + static QString composeOpeningHandshakeResponseV0(QString accept, + QString origin, + QString hostAddress, + QString hostPort, + QString resourceName, + QString protocol = ""); + static QString composeOpeningHandshakeResponseV4(QString accept, + QString nonce, + QString protocol = "", + QString extensions = ""); + static QString composeOpeningHandshakeResponseV6(QString accept, + QString protocol = "", + QString extensions = ""); + static QString composeBadRequestResponse( + QList<EWebsocketVersion> versions = QList<EWebsocketVersion>()); - // public static vars - static const QString regExpResourceNameStr; - static const QString regExpHostStr; - static const QString regExpKeyStr; - static const QString regExpKey1Str; - static const QString regExpKey2Str; - static const QString regExpKey3Str; - static const QString regExpVersionStr; - static const QString regExpOriginStr; - static const QString regExpOrigin2Str; - static const QString regExpProtocolStr; - static const QString regExpExtensionsStr; + // public static vars + static const QString regExpResourceNameStr; + static const QString regExpHostStr; + static const QString regExpKeyStr; + static const QString regExpKey1Str; + static const QString regExpKey2Str; + static const QString regExpKey3Str; + static const QString regExpVersionStr; + static const QString regExpOriginStr; + static const QString regExpOrigin2Str; + static const QString regExpProtocolStr; + static const QString regExpExtensionsStr; }; -#endif // QWSSERVER_H +#endif // QWSSERVER_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp index 540b909e09..428f559517 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.cpp @@ -6,787 +6,744 @@ #include "QWsServer.h" int QWsSocket::maxBytesPerFrame = 1400; -const QString QWsSocket::regExpAcceptStr(QLatin1String("Sec-WebSocket-Accept:\\s(.{28})\r\n")); +const QString QWsSocket::regExpAcceptStr( + QLatin1String("Sec-WebSocket-Accept:\\s(.{28})\r\n")); const QString QWsSocket::regExpUpgradeStr(QLatin1String("Upgrade:\\s(.+)\r\n")); -const QString QWsSocket::regExpConnectionStr(QLatin1String("Connection:\\s(.+)\r\n")); - -QWsSocket::QWsSocket( QObject * parent, QTcpSocket * socket, EWebsocketVersion ws_v ) : - QAbstractSocket( QAbstractSocket::UnknownSocketType, parent ), - tcpSocket( socket ? socket : new QTcpSocket(this) ), - _version( ws_v ), - _hostPort( -1 ), - closingHandshakeSent( false ), - closingHandshakeReceived( false ), - readingState( HeaderPending ), - isFinalFragment( false ), - hasMask( false ), - payloadLength( 0 ), - maskingKey( 4, 0 ), - serverSideSocket( false ) -{ - tcpSocket->setParent( this ); - - QAbstractSocket::setSocketState( tcpSocket->state() ); - QAbstractSocket::setPeerAddress( tcpSocket->peerAddress() ); - QAbstractSocket::setPeerPort( tcpSocket->peerPort() ); - - if ( _version == WS_V0 ) - connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV0()) ); - else if ( _version >= WS_V4 ) - connect( tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV4()) ); - connect( tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(error(QAbstractSocket::SocketError)) ); - connect( tcpSocket, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)), this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)) ); - connect( tcpSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(processTcpStateChanged(QAbstractSocket::SocketState)) ); - connect( tcpSocket, SIGNAL(readChannelFinished()), this, SIGNAL(readChannelFinished()) ); - connect( tcpSocket, SIGNAL(hostFound()), this, SIGNAL(hostFound()) ); -} - -QWsSocket::~QWsSocket() -{ - QAbstractSocket::SocketState state = QAbstractSocket::state(); - if ( state != QAbstractSocket::UnconnectedState ) - { - qDebug() << "CloseAway, socket destroyed in server"; - close( CloseGoingAway, QLatin1String("The server destroyed the socket.") ); - tcpSocket->abort(); - QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState ); - QAbstractSocket::stateChanged( QAbstractSocket::UnconnectedState ); - emit QAbstractSocket::disconnected(); - } -} - -void QWsSocket::connectToHost( const QString & hostName, quint16 port, OpenMode mode ) -{ - QWsSocket::connectToHost( QHostAddress(hostName), port, mode ); -} - -void QWsSocket::connectToHost( const QHostAddress &address, quint16 port, OpenMode mode ) -{ - handshakeResponse.clear(); - setPeerAddress( address ); - setPeerPort( port ); - setOpenMode( mode ); - tcpSocket->connectToHost( address, port, mode ); -} - -void QWsSocket::disconnectFromHost() -{ - QWsSocket::close(); -} - -void QWsSocket::abort( QString reason ) -{ - QWsSocket::close( CloseAbnormalDisconnection, reason ); - tcpSocket->abort(); -} - -void QWsSocket::close( ECloseStatusCode closeStatusCode, QString reason ) -{ - if ( QAbstractSocket::state() == QAbstractSocket::UnconnectedState ) - return; - - if ( ! closingHandshakeSent ) - { - switch ( _version ) - { - case WS_V4: - case WS_V5: - case WS_V6: - case WS_V7: - case WS_V8: - case WS_V13: - { - // Compose and send close frame - QByteArray BA; - - // Body - if ( closeStatusCode == NoCloseStatusCode ) - { - // Header - BA.append( QWsSocket::composeHeader( true, OpClose, 0 ) ); - } - else - { - // Header - QByteArray maskingKey; - if ( ! serverSideSocket ) - maskingKey = QWsSocket::generateMaskingKey(); - BA.append( QWsSocket::composeHeader( true, OpClose, reason.size() + 2, maskingKey ) ); - - QByteArray body; - - // Close status code (optional) - body.append( QWsServer::serializeInt( (int)closeStatusCode, 2 ) ); - - // Reason (optional) - if ( reason.size() ) - { - QByteArray reason_ba = reason.toUtf8(); - if ( ! serverSideSocket ) - { - reason_ba = QWsSocket::mask( reason_ba, maskingKey ); - } - body.append( reason_ba ); - } - - BA.append( body ); - } - - // Send closing handshake - tcpSocket->write( BA ); - - break; - } - case WS_V0: - { - QByteArray closeFrame; - closeFrame.append( (char)0xFF ); - closeFrame.append( (char)0x00 ); - tcpSocket->write( closeFrame ); - break; - } - default: - { - break; - } - } - - closingHandshakeSent = true; - } - - if ( QAbstractSocket::state() != QAbstractSocket::ClosingState ) - { - QAbstractSocket::setSocketState( QAbstractSocket::ClosingState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::ClosingState ); - emit QAbstractSocket::aboutToClose(); - } - - if ( closingHandshakeSent && closingHandshakeReceived ) - { - QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState ); - emit stateChanged( QAbstractSocket::UnconnectedState ); - emit disconnected(); - tcpSocket->disconnectFromHost(); - } -} - -qint64 QWsSocket::write( const QString & string ) -{ - if ( _version == WS_V0 ) - { - return QWsSocket::write( string.toUtf8() ); - } - - const QList<QByteArray>& framesList = QWsSocket::composeFrames( string.toUtf8(), false, maxBytesPerFrame ); - return writeFrames( framesList ); -} - -qint64 QWsSocket::write( const QByteArray & byteArray ) -{ - if ( _version == WS_V0 ) - { - QByteArray BA; - BA.append( (char)0x00 ); - BA.append( byteArray ); - BA.append( (char)0xFF ); - return writeFrame( BA ); - } - - const QList<QByteArray>& framesList = QWsSocket::composeFrames( byteArray, true, maxBytesPerFrame ); - - qint64 nbBytesWritten = writeFrames( framesList ); - emit bytesWritten( nbBytesWritten ); - - return nbBytesWritten; -} - -void QWsSocket::processHandshake() -{ - //copy from QWsServer::dataReceived(); - QTcpSocket * tcpSocket = qobject_cast<QTcpSocket*>( sender() ); - if (tcpSocket == 0) - return; - - bool allHeadersFetched = false; - - const QLatin1String emptyLine("\r\n"); - - while ( tcpSocket->canReadLine() ) - { - QString line = tcpSocket->readLine(); - - if (line == emptyLine) - { - allHeadersFetched = true; - break; - } - - handshakeResponse.append(line); - } - - if (!allHeadersFetched) - return; - - QRegExp regExp; - regExp.setMinimal( true ); - - // check accept field - regExp.setPattern(regExpAcceptStr); - regExp.indexIn(handshakeResponse); - QString acceptFromServer = regExp.cap(1); - - // check upgrade field - regExp.setPattern(regExpUpgradeStr); - regExp.indexIn(handshakeResponse); - QString upgrade = regExp.cap(1); - - // check connection field - regExp.setPattern(regExpConnectionStr); - regExp.indexIn(handshakeResponse); - QString connection = regExp.cap(1); - - // check extensions field - regExp.setPattern(QWsServer::regExpExtensionsStr); - regExp.indexIn(handshakeResponse); - QString extensions = regExp.cap(1); - - //TODO: check extensions field - // If the mandatory params are not setted, we abord the connection to the Websocket server - if((acceptFromServer.isEmpty()) || (!upgrade.contains(QLatin1String("websocket"), Qt::CaseInsensitive)) || - (!connection.contains(QLatin1String("Upgrade"), Qt::CaseInsensitive))) - { - // emit error(QAbstractSocket::ConnectionRefusedError); - // return; - } - - //TODO: check HTTP code - - //TODO: check protocol field - - QString accept = QWsServer::computeAcceptV4(key); - if(accept != acceptFromServer) - { - // emit error(QAbstractSocket::ConnectionRefusedError); - // return; - } - - // handshake procedure succeeded - QAbstractSocket::setSocketState( QAbstractSocket::ConnectedState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::ConnectedState ); - emit QAbstractSocket::connected(); -} - -void QWsSocket::processDataV0() -{ - if( state() == QAbstractSocket::ConnectingState ) - { - processHandshake(); - return; - } - - QByteArray BA, buffer; - quint8 type, b = 0x00; - - BA = tcpSocket->read(1); //TODO: refactor like processDataV4 - type = BA[0]; - - if ( ( type & 0x80 ) == 0x00 ) // MSB of type not set - { - if ( type != 0x00 ) - { - // ABORT CONNEXION - tcpSocket->readAll(); - return; - } - - // read data - do - { - BA = tcpSocket->read(1); - b = BA[0]; - if ( b != 0xFF ) - buffer.append( b ); - } while ( b != 0xFF ); - - currentFrame.append( buffer ); - } - else // MSB of type set - { - if ( type != 0xFF ) - { - // ERROR, ABORT CONNEXION - close(); - return; - } - - quint8 length = 0x00; - - bool bIsNotZero = true; - do - { - BA = tcpSocket->read(1); - b = BA[0]; - bIsNotZero = ( b != 0x00 ? true : false ); - if ( bIsNotZero ) // b must be != 0 - { - quint8 b_v = b & 0x7F; - length *= 128; - length += b_v; - } - } while ( ( ( b & 0x80 ) == 0x80 ) && bIsNotZero ); - - BA = tcpSocket->read(length); // discard this bytes - } - - if ( currentFrame.size() > 0 ) - { - emit frameReceived( QString::fromUtf8(currentFrame) ); - currentFrame.clear(); - } - - if ( tcpSocket->bytesAvailable() ) - processDataV0(); -} - -void QWsSocket::processDataV4() -{ - if( state() == QAbstractSocket::ConnectingState ) - { - processHandshake(); - } - else - while (true) - switch ( readingState ) { - case HeaderPending: { - if (tcpSocket->bytesAvailable() < 2) - return; - - // END, RSV1-3, Opcode - char header[2]; - tcpSocket->read(header, 2); // XXX: Handle return value - isFinalFragment = (header[0] & 0x80) != 0; - opcode = static_cast<EOpcode>(header[0] & 0x0F); - - // Mask, PayloadLength - hasMask = (header[1] & 0x80) != 0; - quint8 length = (header[1] & 0x7F); - - switch (length) - { - case 126: - readingState = PayloadLengthPending; - break; - case 127: - readingState = BigPayloadLenghPending; - break; - default: - payloadLength = length; - readingState = MaskPending; - break; - } - }; break; - case PayloadLengthPending: { - if (tcpSocket->bytesAvailable() < 2) - return; - - uchar length[2]; - tcpSocket->read(reinterpret_cast<char *>(length), 2); // XXX: Handle return value - payloadLength = qFromBigEndian<quint16>(reinterpret_cast<const uchar *>(length)); - readingState = MaskPending; - }; break; - case BigPayloadLenghPending: { - if (tcpSocket->bytesAvailable() < 8) - return; - - uchar length[8]; - tcpSocket->read(reinterpret_cast<char *>(length), 8); // XXX: Handle return value - // Most significant bit must be set to 0 as per http://tools.ietf.org/html/rfc6455#section-5.2 - // XXX: Check for that? - payloadLength = qFromBigEndian<quint64>(length) & ~(1LL << 63); - readingState = MaskPending; - }; break; - case MaskPending: { - if (!hasMask) { - readingState = PayloadBodyPending; - break; - } - - if (tcpSocket->bytesAvailable() < 4) - return; - - tcpSocket->read(maskingKey.data(), 4); // XXX: Handle return value - - if ( opcode == OpClose ) - { - readingState = CloseDataPending; - } - else - { - readingState = PayloadBodyPending; - } - }; /* Intentional fall-through */ - case PayloadBodyPending: { - // TODO: Handle large payloads - if (tcpSocket->bytesAvailable() < static_cast<qint32>(payloadLength)) - return; - - if ( opcode == OpClose ) - { - if ( payloadLength >= 2 && tcpSocket->bytesAvailable() >= 2 ) - { - uchar bytes[2]; - tcpSocket->read( reinterpret_cast<char *>(bytes), 2 ); - closeStatusCode = (ECloseStatusCode)qFromBigEndian<quint16>( reinterpret_cast<const uchar *>(bytes) ); - } - else - { - closeStatusCode = NoCloseStatusCode; - } - } - - QByteArray ApplicationData = tcpSocket->read( payloadLength ); - if ( hasMask ) - ApplicationData = QWsSocket::mask( ApplicationData, maskingKey ); - currentFrame.append( ApplicationData ); - - readingState = HeaderPending; - - if ( !isFinalFragment ) - break; - - switch ( opcode ) - { - case OpBinary: - emit frameReceived( currentFrame ); - break; - case OpText: - emit frameReceived( QString::fromUtf8(currentFrame) ); - break; - case OpPing: - write( QWsSocket::composeHeader( true, OpPong, 0 ) ); - break; - case OpPong: - emit pong( pingTimer.elapsed() ); - break; - case OpClose: - closingHandshakeReceived = true; - close( closeStatusCode ); - break; - default: - // DO NOTHING - break; - } - - currentFrame.clear(); - }; break; - case CloseDataPending: - default: - break; - } /* while (true) switch */ -} - -qint64 QWsSocket::writeFrame ( const QByteArray & byteArray ) -{ - return tcpSocket->write( byteArray ); -} - -qint64 QWsSocket::writeFrames ( const QList<QByteArray> & framesList ) -{ - qint64 nbBytesWritten = 0; - for ( int i=0 ; i<framesList.size() ; i++ ) - { - nbBytesWritten += writeFrame( framesList[i] ); - } - return nbBytesWritten; -} - -void QWsSocket::processTcpStateChanged( QAbstractSocket::SocketState tcpSocketState ) -{ - QAbstractSocket::SocketState wsSocketState = QAbstractSocket::state(); - switch ( tcpSocketState ) - { - case QAbstractSocket::HostLookupState: - { - QAbstractSocket::setSocketState( QAbstractSocket::HostLookupState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::HostLookupState ); - break; - } - case QAbstractSocket::ConnectingState: - { - QAbstractSocket::setSocketState( QAbstractSocket::ConnectingState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::ConnectingState ); - break; - } - case QAbstractSocket::ConnectedState: - { - if ( wsSocketState == QAbstractSocket::ConnectingState ) - { - key = QWsServer::generateNonce(); - QString handshake = composeOpeningHandShake( QLatin1String("/"), QLatin1String("example.com"), QString(), QString(), key ); - tcpSocket->write( handshake.toUtf8() ); - } - break; - } - case QAbstractSocket::ClosingState: - { - if ( wsSocketState == QAbstractSocket::ConnectedState ) - { - QWsSocket::close( CloseGoingAway ); - QAbstractSocket::setSocketState( QAbstractSocket::ClosingState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::ClosingState ); - emit QAbstractSocket::aboutToClose(); - } - break; - } - case QAbstractSocket::UnconnectedState: - { - if ( wsSocketState != QAbstractSocket::UnconnectedState ) - { - QAbstractSocket::setSocketError( QAbstractSocket::NetworkError ); - emit QAbstractSocket::error( QAbstractSocket::NetworkError ); - QAbstractSocket::setSocketState( QAbstractSocket::UnconnectedState ); - emit QAbstractSocket::stateChanged( QAbstractSocket::UnconnectedState ); - emit QAbstractSocket::disconnected(); - } - closingHandshakeSent = false; - closingHandshakeReceived = false; - break; - } - default: - break; - } -} - -QByteArray QWsSocket::generateMaskingKey() -{ - QByteArray key; - for ( int i=0 ; i<4 ; i++ ) - { - key.append( qrand() % 0x100 ); - } - return key; -} - -QByteArray QWsSocket::generateMaskingKeyV4( QString key, QString nonce ) -{ - QString concat = key + nonce + QLatin1String("61AC5F19-FBBA-4540-B96F-6561F1AB40A8"); - QByteArray hash = QCryptographicHash::hash ( concat.toUtf8(), QCryptographicHash::Sha1 ); - return hash; -} - -QByteArray QWsSocket::mask( QByteArray & data, QByteArray & maskingKey ) -{ - QByteArray result; - result.reserve( data.size() ); - - for ( int i=0 ; i<data.size() ; i++ ) - { - result[i] = ( data[i] ^ maskingKey[ i % 4 ] ); - } - - return result; -} - -QList<QByteArray> QWsSocket::composeFrames( QByteArray byteArray, bool asBinary, int maxFrameBytes ) -{ - if ( maxFrameBytes == 0 ) - maxFrameBytes = maxBytesPerFrame; - - QList<QByteArray> framesList; - - QByteArray maskingKey; - - int nbFrames = byteArray.size() / maxFrameBytes + 1; - - for ( int i=0 ; i<nbFrames ; i++ ) - { - QByteArray BA; - - // end, size - bool end = false; - quint64 size = maxFrameBytes; - EOpcode opcode = OpContinue; - if ( i == nbFrames-1 ) // for multi-frames - { - end = true; - size = byteArray.size(); - } - if ( i == 0 ) - { - if ( asBinary ) - opcode = OpBinary; - else - opcode = OpText; - } - - // Header - BA.append( QWsSocket::composeHeader( end, opcode, size, maskingKey ) ); - - // Application Data - QByteArray dataForThisFrame = byteArray.left( size ); - byteArray.remove( 0, size ); - - //dataForThisFrame = QWsSocket::mask( dataForThisFrame, maskingKey ); - BA.append( dataForThisFrame ); - - framesList << BA; - } - - return framesList; -} - -QByteArray QWsSocket::composeHeader( bool end, EOpcode opcode, quint64 payloadLength, QByteArray maskingKey ) -{ - QByteArray BA; - quint8 byte; - - // end, RSV1-3, Opcode - byte = 0x00; - // end - if ( end ) - byte = (byte | 0x80); - // Opcode - byte = (byte | opcode); - BA.append( byte ); - - // Mask, PayloadLength - byte = 0x00; - QByteArray BAsize; - // Mask - if ( maskingKey.size() == 4 ) - byte = (byte | 0x80); - // PayloadLength - if ( payloadLength <= 125 ) - { - byte = (byte | payloadLength); - } - // Extended payloadLength - else - { - // 2 bytes - if ( payloadLength <= 0xFFFF ) - { - byte = ( byte | 126 ); - BAsize.append( ( payloadLength >> 1*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 0*8 ) & 0xFF ); - } - // 8 bytes - else if ( payloadLength <= 0x7FFFFFFF ) - { - byte = ( byte | 127 ); - BAsize.append( ( payloadLength >> 7*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 6*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 5*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 4*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 3*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 2*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 1*8 ) & 0xFF ); - BAsize.append( ( payloadLength >> 0*8 ) & 0xFF ); - } - } - BA.append( byte ); - BA.append( BAsize ); - - // Masking - if ( maskingKey.size() == 4 ) - BA.append( maskingKey ); - - return BA; -} - -void QWsSocket::ping() -{ - pingTimer.restart(); - QByteArray pingFrame = QWsSocket::composeHeader( true, OpPing, 0 ); - writeFrame( pingFrame ); -} - -void QWsSocket::setResourceName( QString rn ) -{ - _resourceName = rn; -} - -void QWsSocket::setHost( QString h ) -{ - _host = h; -} - -void QWsSocket::setHostAddress( QString ha ) -{ - _hostAddress = ha; -} - -void QWsSocket::setHostPort( int hp ) -{ - _hostPort = hp; -} - -void QWsSocket::setOrigin( QString o ) -{ - _origin = o; +const QString QWsSocket::regExpConnectionStr( + QLatin1String("Connection:\\s(.+)\r\n")); + +QWsSocket::QWsSocket(QObject* parent, + QTcpSocket* socket, + EWebsocketVersion ws_v) + : QAbstractSocket(QAbstractSocket::UnknownSocketType, parent) + , tcpSocket(socket ? socket : new QTcpSocket(this)) + , _version(ws_v) + , _hostPort(-1) + , closingHandshakeSent(false) + , closingHandshakeReceived(false) + , readingState(HeaderPending) + , isFinalFragment(false) + , hasMask(false) + , payloadLength(0) + , maskingKey(4, 0) + , serverSideSocket(false) { + tcpSocket->setParent(this); + + QAbstractSocket::setSocketState(tcpSocket->state()); + QAbstractSocket::setPeerAddress(tcpSocket->peerAddress()); + QAbstractSocket::setPeerPort(tcpSocket->peerPort()); + + if (_version == WS_V0) + connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV0())); + else if (_version >= WS_V4) + connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(processDataV4())); + connect(tcpSocket, + SIGNAL(error(QAbstractSocket::SocketError)), + this, + SIGNAL(error(QAbstractSocket::SocketError))); + connect(tcpSocket, + SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, + QAuthenticator*)), + this, + SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, + QAuthenticator*))); + connect(tcpSocket, + SIGNAL(stateChanged(QAbstractSocket::SocketState)), + this, + SLOT(processTcpStateChanged(QAbstractSocket::SocketState))); + connect(tcpSocket, + SIGNAL(readChannelFinished()), + this, + SIGNAL(readChannelFinished())); + connect(tcpSocket, SIGNAL(hostFound()), this, SIGNAL(hostFound())); +} + +QWsSocket::~QWsSocket() { + QAbstractSocket::SocketState state = QAbstractSocket::state(); + if (state != QAbstractSocket::UnconnectedState) { + qDebug() << "CloseAway, socket destroyed in server"; + close(CloseGoingAway, QLatin1String("The server destroyed the socket.")); + tcpSocket->abort(); + QAbstractSocket::setSocketState(QAbstractSocket::UnconnectedState); + QAbstractSocket::stateChanged(QAbstractSocket::UnconnectedState); + emit QAbstractSocket::disconnected(); + } +} + +void QWsSocket::connectToHost(const QString& hostName, + quint16 port, + OpenMode mode) { + QWsSocket::connectToHost(QHostAddress(hostName), port, mode); +} + +void QWsSocket::connectToHost(const QHostAddress& address, + quint16 port, + OpenMode mode) { + handshakeResponse.clear(); + setPeerAddress(address); + setPeerPort(port); + setOpenMode(mode); + tcpSocket->connectToHost(address, port, mode); +} + +void QWsSocket::disconnectFromHost() { + QWsSocket::close(); +} + +void QWsSocket::abort(QString reason) { + QWsSocket::close(CloseAbnormalDisconnection, reason); + tcpSocket->abort(); +} + +void QWsSocket::close(ECloseStatusCode closeStatusCode, QString reason) { + if (QAbstractSocket::state() == QAbstractSocket::UnconnectedState) + return; + + if (!closingHandshakeSent) { + switch (_version) { + case WS_V4: + case WS_V5: + case WS_V6: + case WS_V7: + case WS_V8: + case WS_V13: { + // Compose and send close frame + QByteArray BA; + + // Body + if (closeStatusCode == NoCloseStatusCode) { + // Header + BA.append(QWsSocket::composeHeader(true, OpClose, 0)); + } else { + // Header + QByteArray maskingKey; + if (!serverSideSocket) + maskingKey = QWsSocket::generateMaskingKey(); + BA.append(QWsSocket::composeHeader( + true, OpClose, reason.size() + 2, maskingKey)); + + QByteArray body; + + // Close status code (optional) + body.append(QWsServer::serializeInt((int)closeStatusCode, 2)); + + // Reason (optional) + if (reason.size()) { + QByteArray reason_ba = reason.toUtf8(); + if (!serverSideSocket) { + reason_ba = QWsSocket::mask(reason_ba, maskingKey); + } + body.append(reason_ba); + } + + BA.append(body); + } + + // Send closing handshake + tcpSocket->write(BA); + + break; + } + case WS_V0: { + QByteArray closeFrame; + closeFrame.append((char)0xFF); + closeFrame.append((char)0x00); + tcpSocket->write(closeFrame); + break; + } + default: { break; } + } + + closingHandshakeSent = true; + } + + if (QAbstractSocket::state() != QAbstractSocket::ClosingState) { + QAbstractSocket::setSocketState(QAbstractSocket::ClosingState); + emit QAbstractSocket::stateChanged(QAbstractSocket::ClosingState); + emit QAbstractSocket::aboutToClose(); + } + + if (closingHandshakeSent && closingHandshakeReceived) { + QAbstractSocket::setSocketState(QAbstractSocket::UnconnectedState); + emit stateChanged(QAbstractSocket::UnconnectedState); + emit disconnected(); + tcpSocket->disconnectFromHost(); + } +} + +qint64 QWsSocket::write(const QString& string) { + if (_version == WS_V0) { + return QWsSocket::write(string.toUtf8()); + } + + const QList<QByteArray>& framesList = + QWsSocket::composeFrames(string.toUtf8(), false, maxBytesPerFrame); + return writeFrames(framesList); +} + +qint64 QWsSocket::write(const QByteArray& byteArray) { + if (_version == WS_V0) { + QByteArray BA; + BA.append((char)0x00); + BA.append(byteArray); + BA.append((char)0xFF); + return writeFrame(BA); + } + + const QList<QByteArray>& framesList = + QWsSocket::composeFrames(byteArray, true, maxBytesPerFrame); + + qint64 nbBytesWritten = writeFrames(framesList); + emit bytesWritten(nbBytesWritten); + + return nbBytesWritten; +} + +void QWsSocket::processHandshake() { + // copy from QWsServer::dataReceived(); + QTcpSocket* tcpSocket = qobject_cast<QTcpSocket*>(sender()); + if (tcpSocket == 0) + return; + + bool allHeadersFetched = false; + + const QLatin1String emptyLine("\r\n"); + + while (tcpSocket->canReadLine()) { + QString line = tcpSocket->readLine(); + + if (line == emptyLine) { + allHeadersFetched = true; + break; + } + + handshakeResponse.append(line); + } + + if (!allHeadersFetched) + return; + + QRegExp regExp; + regExp.setMinimal(true); + + // check accept field + regExp.setPattern(regExpAcceptStr); + regExp.indexIn(handshakeResponse); + QString acceptFromServer = regExp.cap(1); + + // check upgrade field + regExp.setPattern(regExpUpgradeStr); + regExp.indexIn(handshakeResponse); + QString upgrade = regExp.cap(1); + + // check connection field + regExp.setPattern(regExpConnectionStr); + regExp.indexIn(handshakeResponse); + QString connection = regExp.cap(1); + + // check extensions field + regExp.setPattern(QWsServer::regExpExtensionsStr); + regExp.indexIn(handshakeResponse); + QString extensions = regExp.cap(1); + + // TODO: check extensions field + // If the mandatory params are not setted, we abord the connection to the + // Websocket server + if ((acceptFromServer.isEmpty()) || + (!upgrade.contains(QLatin1String("websocket"), Qt::CaseInsensitive)) || + (!connection.contains(QLatin1String("Upgrade"), Qt::CaseInsensitive))) { + // emit error(QAbstractSocket::ConnectionRefusedError); + // return; + } + + // TODO: check HTTP code + + // TODO: check protocol field + + QString accept = QWsServer::computeAcceptV4(key); + if (accept != acceptFromServer) { + // emit error(QAbstractSocket::ConnectionRefusedError); + // return; + } + + // handshake procedure succeeded + QAbstractSocket::setSocketState(QAbstractSocket::ConnectedState); + emit QAbstractSocket::stateChanged(QAbstractSocket::ConnectedState); + emit QAbstractSocket::connected(); +} + +void QWsSocket::processDataV0() { + if (state() == QAbstractSocket::ConnectingState) { + processHandshake(); + return; + } + + QByteArray BA, buffer; + quint8 type, b = 0x00; + + BA = tcpSocket->read(1); // TODO: refactor like processDataV4 + type = BA[0]; + + if ((type & 0x80) == 0x00) // MSB of type not set + { + if (type != 0x00) { + // ABORT CONNEXION + tcpSocket->readAll(); + return; + } + + // read data + do { + BA = tcpSocket->read(1); + b = BA[0]; + if (b != 0xFF) + buffer.append(b); + } while (b != 0xFF); + + currentFrame.append(buffer); + } else // MSB of type set + { + if (type != 0xFF) { + // ERROR, ABORT CONNEXION + close(); + return; + } + + quint8 length = 0x00; + + bool bIsNotZero = true; + do { + BA = tcpSocket->read(1); + b = BA[0]; + bIsNotZero = (b != 0x00 ? true : false); + if (bIsNotZero) // b must be != 0 + { + quint8 b_v = b & 0x7F; + length *= 128; + length += b_v; + } + } while (((b & 0x80) == 0x80) && bIsNotZero); + + BA = tcpSocket->read(length); // discard this bytes + } + + if (currentFrame.size() > 0) { + emit frameReceived(QString::fromUtf8(currentFrame)); + currentFrame.clear(); + } + + if (tcpSocket->bytesAvailable()) + processDataV0(); +} + +void QWsSocket::processDataV4() { + if (state() == QAbstractSocket::ConnectingState) { + processHandshake(); + } else + while (true) + switch (readingState) { + case HeaderPending: { + if (tcpSocket->bytesAvailable() < 2) + return; + + // END, RSV1-3, Opcode + char header[2]; + tcpSocket->read(header, 2); // XXX: Handle return value + isFinalFragment = (header[0] & 0x80) != 0; + opcode = static_cast<EOpcode>(header[0] & 0x0F); + + // Mask, PayloadLength + hasMask = (header[1] & 0x80) != 0; + quint8 length = (header[1] & 0x7F); + + switch (length) { + case 126: + readingState = PayloadLengthPending; + break; + case 127: + readingState = BigPayloadLenghPending; + break; + default: + payloadLength = length; + readingState = MaskPending; + break; + } + }; break; + case PayloadLengthPending: { + if (tcpSocket->bytesAvailable() < 2) + return; + + uchar length[2]; + tcpSocket->read(reinterpret_cast<char*>(length), + 2); // XXX: Handle return value + payloadLength = + qFromBigEndian<quint16>(reinterpret_cast<const uchar*>(length)); + readingState = MaskPending; + }; break; + case BigPayloadLenghPending: { + if (tcpSocket->bytesAvailable() < 8) + return; + + uchar length[8]; + tcpSocket->read(reinterpret_cast<char*>(length), + 8); // XXX: Handle return value + // Most significant bit must be set to 0 as per + // http://tools.ietf.org/html/rfc6455#section-5.2 + // XXX: Check for that? + payloadLength = qFromBigEndian<quint64>(length) & ~(1LL << 63); + readingState = MaskPending; + }; break; + case MaskPending: { + if (!hasMask) { + readingState = PayloadBodyPending; + break; + } + + if (tcpSocket->bytesAvailable() < 4) + return; + + tcpSocket->read(maskingKey.data(), 4); // XXX: Handle return value + + if (opcode == OpClose) { + readingState = CloseDataPending; + } else { + readingState = PayloadBodyPending; + } + }; /* Intentional fall-through */ + case PayloadBodyPending: { + // TODO: Handle large payloads + if (tcpSocket->bytesAvailable() < static_cast<qint32>(payloadLength)) + return; + + if (opcode == OpClose) { + if (payloadLength >= 2 && tcpSocket->bytesAvailable() >= 2) { + uchar bytes[2]; + tcpSocket->read(reinterpret_cast<char*>(bytes), 2); + closeStatusCode = (ECloseStatusCode)qFromBigEndian<quint16>( + reinterpret_cast<const uchar*>(bytes)); + } else { + closeStatusCode = NoCloseStatusCode; + } + } + + QByteArray ApplicationData = tcpSocket->read(payloadLength); + if (hasMask) + ApplicationData = QWsSocket::mask(ApplicationData, maskingKey); + currentFrame.append(ApplicationData); + + readingState = HeaderPending; + + if (!isFinalFragment) + break; + + switch (opcode) { + case OpBinary: + emit frameReceived(currentFrame); + break; + case OpText: + emit frameReceived(QString::fromUtf8(currentFrame)); + break; + case OpPing: + write(QWsSocket::composeHeader(true, OpPong, 0)); + break; + case OpPong: + emit pong(pingTimer.elapsed()); + break; + case OpClose: + closingHandshakeReceived = true; + close(closeStatusCode); + break; + default: + // DO NOTHING + break; + } + + currentFrame.clear(); + }; break; + case CloseDataPending: + default: + break; + } /* while (true) switch */ +} + +qint64 QWsSocket::writeFrame(const QByteArray& byteArray) { + return tcpSocket->write(byteArray); +} + +qint64 QWsSocket::writeFrames(const QList<QByteArray>& framesList) { + qint64 nbBytesWritten = 0; + for (int i = 0; i < framesList.size(); i++) { + nbBytesWritten += writeFrame(framesList[i]); + } + return nbBytesWritten; +} + +void QWsSocket::processTcpStateChanged( + QAbstractSocket::SocketState tcpSocketState) { + QAbstractSocket::SocketState wsSocketState = QAbstractSocket::state(); + switch (tcpSocketState) { + case QAbstractSocket::HostLookupState: { + QAbstractSocket::setSocketState(QAbstractSocket::HostLookupState); + emit QAbstractSocket::stateChanged(QAbstractSocket::HostLookupState); + break; + } + case QAbstractSocket::ConnectingState: { + QAbstractSocket::setSocketState(QAbstractSocket::ConnectingState); + emit QAbstractSocket::stateChanged(QAbstractSocket::ConnectingState); + break; + } + case QAbstractSocket::ConnectedState: { + if (wsSocketState == QAbstractSocket::ConnectingState) { + key = QWsServer::generateNonce(); + QString handshake = + composeOpeningHandShake(QLatin1String("/"), + QLatin1String("example.com"), + QString(), + QString(), + key); + tcpSocket->write(handshake.toUtf8()); + } + break; + } + case QAbstractSocket::ClosingState: { + if (wsSocketState == QAbstractSocket::ConnectedState) { + QWsSocket::close(CloseGoingAway); + QAbstractSocket::setSocketState(QAbstractSocket::ClosingState); + emit QAbstractSocket::stateChanged(QAbstractSocket::ClosingState); + emit QAbstractSocket::aboutToClose(); + } + break; + } + case QAbstractSocket::UnconnectedState: { + if (wsSocketState != QAbstractSocket::UnconnectedState) { + QAbstractSocket::setSocketError(QAbstractSocket::NetworkError); + emit QAbstractSocket::error(QAbstractSocket::NetworkError); + QAbstractSocket::setSocketState(QAbstractSocket::UnconnectedState); + emit QAbstractSocket::stateChanged(QAbstractSocket::UnconnectedState); + emit QAbstractSocket::disconnected(); + } + closingHandshakeSent = false; + closingHandshakeReceived = false; + break; + } + default: + break; + } +} + +QByteArray QWsSocket::generateMaskingKey() { + QByteArray key; + for (int i = 0; i < 4; i++) { + key.append(qrand() % 0x100); + } + return key; +} + +QByteArray QWsSocket::generateMaskingKeyV4(QString key, QString nonce) { + QString concat = + key + nonce + QLatin1String("61AC5F19-FBBA-4540-B96F-6561F1AB40A8"); + QByteArray hash = + QCryptographicHash::hash(concat.toUtf8(), QCryptographicHash::Sha1); + return hash; +} + +QByteArray QWsSocket::mask(QByteArray& data, QByteArray& maskingKey) { + QByteArray result; + result.reserve(data.size()); + + for (int i = 0; i < data.size(); i++) { + result[i] = (data[i] ^ maskingKey[i % 4]); + } + + return result; +} + +QList<QByteArray> QWsSocket::composeFrames(QByteArray byteArray, + bool asBinary, + int maxFrameBytes) { + if (maxFrameBytes == 0) + maxFrameBytes = maxBytesPerFrame; + + QList<QByteArray> framesList; + + QByteArray maskingKey; + + int nbFrames = byteArray.size() / maxFrameBytes + 1; + + for (int i = 0; i < nbFrames; i++) { + QByteArray BA; + + // end, size + bool end = false; + quint64 size = maxFrameBytes; + EOpcode opcode = OpContinue; + if (i == nbFrames - 1) // for multi-frames + { + end = true; + size = byteArray.size(); + } + if (i == 0) { + if (asBinary) + opcode = OpBinary; + else + opcode = OpText; + } + + // Header + BA.append(QWsSocket::composeHeader(end, opcode, size, maskingKey)); + + // Application Data + QByteArray dataForThisFrame = byteArray.left(size); + byteArray.remove(0, size); + + // dataForThisFrame = QWsSocket::mask( dataForThisFrame, maskingKey ); + BA.append(dataForThisFrame); + + framesList << BA; + } + + return framesList; +} + +QByteArray QWsSocket::composeHeader(bool end, + EOpcode opcode, + quint64 payloadLength, + QByteArray maskingKey) { + QByteArray BA; + quint8 byte; + + // end, RSV1-3, Opcode + byte = 0x00; + // end + if (end) + byte = (byte | 0x80); + // Opcode + byte = (byte | opcode); + BA.append(byte); + + // Mask, PayloadLength + byte = 0x00; + QByteArray BAsize; + // Mask + if (maskingKey.size() == 4) + byte = (byte | 0x80); + // PayloadLength + if (payloadLength <= 125) { + byte = (byte | payloadLength); + } + // Extended payloadLength + else { + // 2 bytes + if (payloadLength <= 0xFFFF) { + byte = (byte | 126); + BAsize.append((payloadLength >> 1 * 8) & 0xFF); + BAsize.append((payloadLength >> 0 * 8) & 0xFF); + } + // 8 bytes + else if (payloadLength <= 0x7FFFFFFF) { + byte = (byte | 127); + BAsize.append((payloadLength >> 7 * 8) & 0xFF); + BAsize.append((payloadLength >> 6 * 8) & 0xFF); + BAsize.append((payloadLength >> 5 * 8) & 0xFF); + BAsize.append((payloadLength >> 4 * 8) & 0xFF); + BAsize.append((payloadLength >> 3 * 8) & 0xFF); + BAsize.append((payloadLength >> 2 * 8) & 0xFF); + BAsize.append((payloadLength >> 1 * 8) & 0xFF); + BAsize.append((payloadLength >> 0 * 8) & 0xFF); + } + } + BA.append(byte); + BA.append(BAsize); + + // Masking + if (maskingKey.size() == 4) + BA.append(maskingKey); + + return BA; +} + +void QWsSocket::ping() { + pingTimer.restart(); + QByteArray pingFrame = QWsSocket::composeHeader(true, OpPing, 0); + writeFrame(pingFrame); +} + +void QWsSocket::setResourceName(QString rn) { + _resourceName = rn; +} + +void QWsSocket::setHost(QString h) { + _host = h; +} + +void QWsSocket::setHostAddress(QString ha) { + _hostAddress = ha; +} + +void QWsSocket::setHostPort(int hp) { + _hostPort = hp; +} + +void QWsSocket::setOrigin(QString o) { + _origin = o; } -void QWsSocket::setProtocol( QString p ) -{ - _protocol = p; +void QWsSocket::setProtocol(QString p) { + _protocol = p; } -void QWsSocket::setExtensions( QString e ) -{ - _extensions = e; +void QWsSocket::setExtensions(QString e) { + _extensions = e; } -EWebsocketVersion QWsSocket::version() -{ - return _version; +EWebsocketVersion QWsSocket::version() { + return _version; } -QString QWsSocket::resourceName() -{ - return _resourceName; +QString QWsSocket::resourceName() { + return _resourceName; } -QString QWsSocket::host() -{ - return _host; +QString QWsSocket::host() { + return _host; } -QString QWsSocket::hostAddress() -{ - return _hostAddress; +QString QWsSocket::hostAddress() { + return _hostAddress; } -int QWsSocket::hostPort() -{ - return _hostPort; +int QWsSocket::hostPort() { + return _hostPort; } -QString QWsSocket::origin() -{ - return _origin; +QString QWsSocket::origin() { + return _origin; } -QString QWsSocket::protocol() -{ - return _protocol; +QString QWsSocket::protocol() { + return _protocol; } -QString QWsSocket::extensions() -{ - return _extensions; +QString QWsSocket::extensions() { + return _extensions; } -QString QWsSocket::composeOpeningHandShake( QString resourceName, QString host, QString origin, QString extensions, QString key ) -{ - QString hs; - hs.append(QLatin1String("GET ") + resourceName + QLatin1String(" HTTP/1.1\r\n")); - hs.append(QLatin1String("Host: ") + host + "\r\n"); - hs.append(QLatin1String("Upgrade: websocket\r\n")); - hs.append(QLatin1String("Connection: Upgrade\r\n")); - hs.append(QLatin1String("Sec-WebSocket-Key: ") + key + QLatin1String("\r\n")); - hs.append(QLatin1String("Origin: ") + origin + QLatin1String("\r\n")); - hs.append(QLatin1String("Sec-WebSocket-Extensions: ") + extensions + QLatin1String("\r\n")); - hs.append(QLatin1String("Sec-WebSocket-Version: 13\r\n")); - hs.append(QLatin1String("\r\n")); - return hs; +QString QWsSocket::composeOpeningHandShake(QString resourceName, + QString host, + QString origin, + QString extensions, + QString key) { + QString hs; + hs.append(QLatin1String("GET ") + resourceName + + QLatin1String(" HTTP/1.1\r\n")); + hs.append(QLatin1String("Host: ") + host + "\r\n"); + hs.append(QLatin1String("Upgrade: websocket\r\n")); + hs.append(QLatin1String("Connection: Upgrade\r\n")); + hs.append(QLatin1String("Sec-WebSocket-Key: ") + key + QLatin1String("\r\n")); + hs.append(QLatin1String("Origin: ") + origin + QLatin1String("\r\n")); + hs.append(QLatin1String("Sec-WebSocket-Extensions: ") + extensions + + QLatin1String("\r\n")); + hs.append(QLatin1String("Sec-WebSocket-Version: 13\r\n")); + hs.append(QLatin1String("\r\n")); + return hs; } diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h index 4bc095aa19..cdd19db38a 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h @@ -5,166 +5,177 @@ #include <QHostAddress> #include <QTime> -enum EWebsocketVersion -{ - WS_VUnknow = -1, - WS_V0 = 0, - WS_V4 = 4, - WS_V5 = 5, - WS_V6 = 6, - WS_V7 = 7, - WS_V8 = 8, - WS_V13 = 13 +enum EWebsocketVersion { + WS_VUnknow = -1, + WS_V0 = 0, + WS_V4 = 4, + WS_V5 = 5, + WS_V6 = 6, + WS_V7 = 7, + WS_V8 = 8, + WS_V13 = 13 }; -class QWsSocket : public QAbstractSocket -{ - Q_OBJECT - - friend class QWsServer; - -public: - enum EOpcode - { - OpContinue = 0x0, - OpText = 0x1, - OpBinary = 0x2, - OpReserved3 = 0x3, - OpReserved4 = 0x4, - OpReserved5 = 0x5, - OpReserved6 = 0x6, - OpReserved7 = 0x7, - OpClose = 0x8, - OpPing = 0x9, - OpPong = 0xA, - OpReservedB = 0xB, - OpReservedV = 0xC, - OpReservedD = 0xD, - OpReservedE = 0xE, - OpReservedF = 0xF - }; - enum ECloseStatusCode - { - NoCloseStatusCode = 0, - CloseNormal = 1000, - CloseGoingAway = 1001, - CloseProtocolError = 1002, - CloseDataTypeNotSupported = 1003, - CloseReserved1004 = 1004, - CloseMissingStatusCode = 1005, - CloseAbnormalDisconnection = 1006, - CloseWrongDataType = 1007, - ClosePolicyViolated = 1008, - CloseTooMuchData = 1009, - CloseMissingExtension = 1010, - CloseBadOperation = 1011, - CloseTLSHandshakeFailed = 1015 - }; - -public: - // ctor - QWsSocket( QObject * parent = 0, QTcpSocket * socket = 0, EWebsocketVersion ws_v = WS_V13 ); - // dtor - virtual ~QWsSocket(); - - // Public methods - EWebsocketVersion version(); - QString resourceName(); - QString host(); - QString hostAddress(); - int hostPort(); - QString origin(); - QString protocol(); - QString extensions(); - - void setResourceName( QString rn ); - void setHost( QString h ); - void setHostAddress( QString ha ); - void setHostPort( int hp ); - void setOrigin( QString o ); - void setProtocol( QString p ); - void setExtensions( QString e ); - - qint64 write( const QString & string ); // write data as text - qint64 write( const QByteArray & byteArray ); // write data as binary - -public slots: - void connectToHost( const QString & hostName, quint16 port, OpenMode mode = ReadWrite ); - void connectToHost( const QHostAddress & address, quint16 port, OpenMode mode = ReadWrite ); - void disconnectFromHost(); - void abort( QString reason = QString() ); - void ping(); +class QWsSocket : public QAbstractSocket { + Q_OBJECT + + friend class QWsServer; + + public: + enum EOpcode { + OpContinue = 0x0, + OpText = 0x1, + OpBinary = 0x2, + OpReserved3 = 0x3, + OpReserved4 = 0x4, + OpReserved5 = 0x5, + OpReserved6 = 0x6, + OpReserved7 = 0x7, + OpClose = 0x8, + OpPing = 0x9, + OpPong = 0xA, + OpReservedB = 0xB, + OpReservedV = 0xC, + OpReservedD = 0xD, + OpReservedE = 0xE, + OpReservedF = 0xF + }; + enum ECloseStatusCode { + NoCloseStatusCode = 0, + CloseNormal = 1000, + CloseGoingAway = 1001, + CloseProtocolError = 1002, + CloseDataTypeNotSupported = 1003, + CloseReserved1004 = 1004, + CloseMissingStatusCode = 1005, + CloseAbnormalDisconnection = 1006, + CloseWrongDataType = 1007, + ClosePolicyViolated = 1008, + CloseTooMuchData = 1009, + CloseMissingExtension = 1010, + CloseBadOperation = 1011, + CloseTLSHandshakeFailed = 1015 + }; + + public: + // ctor + QWsSocket(QObject* parent = 0, + QTcpSocket* socket = 0, + EWebsocketVersion ws_v = WS_V13); + // dtor + virtual ~QWsSocket(); + + // Public methods + EWebsocketVersion version(); + QString resourceName(); + QString host(); + QString hostAddress(); + int hostPort(); + QString origin(); + QString protocol(); + QString extensions(); + + void setResourceName(QString rn); + void setHost(QString h); + void setHostAddress(QString ha); + void setHostPort(int hp); + void setOrigin(QString o); + void setProtocol(QString p); + void setExtensions(QString e); + + qint64 write(const QString& string); // write data as text + qint64 write(const QByteArray& byteArray); // write data as binary + + public slots: + void connectToHost(const QString& hostName, + quint16 port, + OpenMode mode = ReadWrite); + void connectToHost(const QHostAddress& address, + quint16 port, + OpenMode mode = ReadWrite); + void disconnectFromHost(); + void abort(QString reason = QString()); + void ping(); signals: - void frameReceived(QString frame); - void frameReceived(QByteArray frame); - void pong(quint64 elapsedTime); - -protected: - qint64 writeFrames ( const QList<QByteArray> & framesList ); - qint64 writeFrame ( const QByteArray & byteArray ); - -protected slots: - virtual void close( ECloseStatusCode closeStatusCode = NoCloseStatusCode, QString reason = QString() ); - void processDataV0(); - void processDataV4(); - void processHandshake(); - void processTcpStateChanged( QAbstractSocket::SocketState socketState ); - -private: - enum EReadingState - { - HeaderPending, - PayloadLengthPending, - BigPayloadLenghPending, - MaskPending, - PayloadBodyPending, - CloseDataPending - }; - - // private vars - QTcpSocket * tcpSocket; - QByteArray currentFrame; - QTime pingTimer; - - EWebsocketVersion _version; - QString _resourceName; - QString _host; - QString _hostAddress; - int _hostPort; - QString _origin; - QString _protocol; - QString _extensions; - bool serverSideSocket; - - bool closingHandshakeSent; - bool closingHandshakeReceived; - - EReadingState readingState; - EOpcode opcode; - bool isFinalFragment; - bool hasMask; - quint64 payloadLength; - QByteArray maskingKey; - ECloseStatusCode closeStatusCode; - - static const QString regExpAcceptStr; - static const QString regExpUpgradeStr; - static const QString regExpConnectionStr; - QString handshakeResponse; - QString key; - -public: - // Static functions - static QByteArray generateMaskingKey(); - static QByteArray generateMaskingKeyV4( QString key, QString nonce ); - static QByteArray mask( QByteArray & data, QByteArray & maskingKey ); - static QList<QByteArray> composeFrames( QByteArray byteArray, bool asBinary = false, int maxFrameBytes = 0 ); - static QByteArray composeHeader( bool end, EOpcode opcode, quint64 payloadLength, QByteArray maskingKey = QByteArray() ); - static QString composeOpeningHandShake( QString resourceName, QString host, QString origin, QString extensions, QString key ); - - // static vars - static int maxBytesPerFrame; + void frameReceived(QString frame); + void frameReceived(QByteArray frame); + void pong(quint64 elapsedTime); + + protected: + qint64 writeFrames(const QList<QByteArray>& framesList); + qint64 writeFrame(const QByteArray& byteArray); + + protected slots: + virtual void close(ECloseStatusCode closeStatusCode = NoCloseStatusCode, + QString reason = QString()); + void processDataV0(); + void processDataV4(); + void processHandshake(); + void processTcpStateChanged(QAbstractSocket::SocketState socketState); + + private: + enum EReadingState { + HeaderPending, + PayloadLengthPending, + BigPayloadLenghPending, + MaskPending, + PayloadBodyPending, + CloseDataPending + }; + + // private vars + QTcpSocket* tcpSocket; + QByteArray currentFrame; + QTime pingTimer; + + EWebsocketVersion _version; + QString _resourceName; + QString _host; + QString _hostAddress; + int _hostPort; + QString _origin; + QString _protocol; + QString _extensions; + bool serverSideSocket; + + bool closingHandshakeSent; + bool closingHandshakeReceived; + + EReadingState readingState; + EOpcode opcode; + bool isFinalFragment; + bool hasMask; + quint64 payloadLength; + QByteArray maskingKey; + ECloseStatusCode closeStatusCode; + + static const QString regExpAcceptStr; + static const QString regExpUpgradeStr; + static const QString regExpConnectionStr; + QString handshakeResponse; + QString key; + + public: + // Static functions + static QByteArray generateMaskingKey(); + static QByteArray generateMaskingKeyV4(QString key, QString nonce); + static QByteArray mask(QByteArray& data, QByteArray& maskingKey); + static QList<QByteArray> composeFrames(QByteArray byteArray, + bool asBinary = false, + int maxFrameBytes = 0); + static QByteArray composeHeader(bool end, + EOpcode opcode, + quint64 payloadLength, + QByteArray maskingKey = QByteArray()); + static QString composeOpeningHandShake(QString resourceName, + QString host, + QString origin, + QString extensions, + QString key); + + // static vars + static int maxBytesPerFrame; }; -#endif // QWSSOCKET_H +#endif // QWSSOCKET_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp index a89d1efcb4..003b098d47 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.cpp @@ -6,26 +6,25 @@ #include <QQmlEngine> #include <QQmlContext> -QObject* sdlSingleton(QQmlEngine * engine, QJSEngine * js) { - Q_UNUSED(engine) - Q_UNUSED(js) +QObject* sdlSingleton(QQmlEngine* engine, QJSEngine* js) { + Q_UNUSED(engine) + Q_UNUSED(js) - engine->rootContext()->setContextProperty("MediaApps", SmartDeviceLink::getInstance().getMediaApps()); + engine->rootContext()->setContextProperty( + "MediaApps", SmartDeviceLink::getInstance().getMediaApps()); - return (QObject *) &SmartDeviceLink::getInstance(); + return (QObject*)&SmartDeviceLink::getInstance(); } -QObject* mediaAppsSingleton(QQmlEngine * engine, QJSEngine * js) { - Q_UNUSED(engine) - Q_UNUSED(js) +QObject* mediaAppsSingleton(QQmlEngine* engine, QJSEngine* js) { + Q_UNUSED(engine) + Q_UNUSED(js) - return (QObject *) SmartDeviceLink::getInstance().getMediaApps(); + return (QObject*)SmartDeviceLink::getInstance().getMediaApps(); } -void FordSdlCorePlugin::registerTypes(const char *uri) -{ - qmlRegisterSingletonType<SdlAppsListModel>(uri, 1, 0, "MediaApps", mediaAppsSingleton); - qmlRegisterSingletonType<SmartDeviceLink>(uri, 1, 0, "AppLink", sdlSingleton); +void FordSdlCorePlugin::registerTypes(const char* uri) { + qmlRegisterSingletonType<SdlAppsListModel>( + uri, 1, 0, "MediaApps", mediaAppsSingleton); + qmlRegisterSingletonType<SmartDeviceLink>(uri, 1, 0, "AppLink", sdlSingleton); } - - diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h b/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h index 655dcb5178..2c8bf39d28 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/fordsdlcore_plugin.h @@ -3,14 +3,12 @@ #include <QQmlExtensionPlugin> -class FordSdlCorePlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") - -public: - void registerTypes(const char *uri); -}; +class FordSdlCorePlugin : public QQmlExtensionPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") -#endif // FORDSDLCORE_PLUGIN_H + public: + void registerTypes(const char* uri); +}; +#endif // FORDSDLCORE_PLUGIN_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp index f625c16b41..ec4350df77 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.cpp @@ -1,6 +1,3 @@ #include "sdlalert.h" -SdlAlert::SdlAlert(QObject *parent) : - QQuickItem() -{ -} +SdlAlert::SdlAlert(QObject* parent) : QQuickItem() {} diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h b/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h index cb46236db1..9c32718c56 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/sdlalert.h @@ -3,16 +3,14 @@ #include <QQuickItem> -class SdlAlert : public QQuickItem -{ - Q_OBJECT -public: - explicit SdlAlert(QObject *parent = 0); - +class SdlAlert : public QQuickItem { + Q_OBJECT + public: + explicit SdlAlert(QObject* parent = 0); + signals: - -public slots: - + + public slots: }; -#endif // SDLALERT_H +#endif // SDLALERT_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp index 104b31abe0..419908339e 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.cpp @@ -1,6 +1,4 @@ #include "sdlappslistmodel.h" -SdlAppsListModel::SdlAppsListModel(QObject *parent) : - QAbstractListModel(parent) -{ -} +SdlAppsListModel::SdlAppsListModel(QObject* parent) + : QAbstractListModel(parent) {} diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h b/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h index 9b213e666e..b78aeeec01 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/sdlappslistmodel.h @@ -4,44 +4,44 @@ #include <QAbstractListModel> #include <QStringList> -class SdlAppsListModel : public QAbstractListModel -{ - Q_OBJECT -public: - explicit SdlAppsListModel(QObject *parent = 0); - - int rowCount(const QModelIndex &parent) const { return m_data.size(); } - - QVariant data(const QModelIndex &index, int role) const { - return m_data.values().at(index.row()); - } - - virtual QHash<int, QByteArray> roleNames() const { - QHash<int, QByteArray> roles; - roles['t'] = "text"; - return roles; - } - - void append(int id, QString string) { - beginResetModel(); - m_data.clear(); - m_data[id] = string; - endResetModel(); - } - - void clear() { - beginResetModel(); - m_data.clear(); - endResetModel(); - } - +class SdlAppsListModel : public QAbstractListModel { + Q_OBJECT + public: + explicit SdlAppsListModel(QObject* parent = 0); + + int rowCount(const QModelIndex& parent) const { + return m_data.size(); + } + + QVariant data(const QModelIndex& index, int role) const { + return m_data.values().at(index.row()); + } + + virtual QHash<int, QByteArray> roleNames() const { + QHash<int, QByteArray> roles; + roles['t'] = "text"; + return roles; + } + + void append(int id, QString string) { + beginResetModel(); + m_data.clear(); + m_data[id] = string; + endResetModel(); + } + + void clear() { + beginResetModel(); + m_data.clear(); + endResetModel(); + } + signals: - -public slots: -private: - QHash<int, QString> m_data; - + public slots: + + private: + QHash<int, QString> m_data; }; -#endif // SDLAPPSLISTMODEL_H +#endif // SDLAPPSLISTMODEL_H diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp b/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp index 57cb8ac507..5ee8c455e9 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp +++ b/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.cpp @@ -5,259 +5,382 @@ #include <QJsonObject> #include <unistd.h> -SmartDeviceLink::SmartDeviceLink(QQuickItem *parent): - QObject(parent) -{ - connect(&m_ws_basic, SIGNAL(connected()), this, SLOT(basic_connected())); - connect(&m_ws_basic, SIGNAL(frameReceived(QString)), this, SLOT(basic_receive(QString))); - connect(&m_ws_basic, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(&m_ws_buttons, SIGNAL(connected()), this, SLOT(buttons_connected())); - connect(&m_ws_buttons, SIGNAL(frameReceived(QString)), this, SLOT(buttons_receive(QString))); - connect(&m_ws_buttons, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(&m_ws_tts, SIGNAL(connected()), this, SLOT(tts_connected())); - connect(&m_ws_tts, SIGNAL(frameReceived(QString)), this, SLOT(tts_receive(QString))); - connect(&m_ws_tts, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(&m_ws_vehicle, SIGNAL(connected()), this, SLOT(vehicle_connected())); - connect(&m_ws_vehicle, SIGNAL(frameReceived(QString)), this, SLOT(vehicle_receive(QString))); - connect(&m_ws_vehicle, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(&m_ws_ui, SIGNAL(connected()), this, SLOT(ui_connected())); - connect(&m_ws_ui, SIGNAL(frameReceived(QString)), this, SLOT(ui_receive(QString))); - connect(&m_ws_ui, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(&m_ws_vr, SIGNAL(connected()), this, SLOT(vr_connected())); - connect(&m_ws_vr, SIGNAL(frameReceived(QString)), this, SLOT(vr_receive(QString))); - connect(&m_ws_vr, SIGNAL(disconnected()), this, SLOT(disconnected())); - - connect(this, SIGNAL(newAppAvailable(int, QString)), this, SLOT(registerApp(int,QString))); - - m_ws_buttons.connectToHost( QLatin1String("127.0.0.1"), 8087 ); - m_ws_tts.connectToHost( QLatin1String("127.0.0.1"), 8087 ); - m_ws_vr.connectToHost( QLatin1String("127.0.0.1"), 8087 ); - m_ws_basic.connectToHost( QLatin1String("127.0.0.1"), 8087 ); - m_ws_vehicle.connectToHost( QLatin1String("127.0.0.1"), 8087 ); - m_ws_ui.connectToHost( QLatin1String("127.0.0.1"), 8087 ); +SmartDeviceLink::SmartDeviceLink(QQuickItem* parent) : QObject(parent) { + connect(&m_ws_basic, SIGNAL(connected()), this, SLOT(basic_connected())); + connect(&m_ws_basic, + SIGNAL(frameReceived(QString)), + this, + SLOT(basic_receive(QString))); + connect(&m_ws_basic, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(&m_ws_buttons, SIGNAL(connected()), this, SLOT(buttons_connected())); + connect(&m_ws_buttons, + SIGNAL(frameReceived(QString)), + this, + SLOT(buttons_receive(QString))); + connect(&m_ws_buttons, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(&m_ws_tts, SIGNAL(connected()), this, SLOT(tts_connected())); + connect(&m_ws_tts, + SIGNAL(frameReceived(QString)), + this, + SLOT(tts_receive(QString))); + connect(&m_ws_tts, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(&m_ws_vehicle, SIGNAL(connected()), this, SLOT(vehicle_connected())); + connect(&m_ws_vehicle, + SIGNAL(frameReceived(QString)), + this, + SLOT(vehicle_receive(QString))); + connect(&m_ws_vehicle, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(&m_ws_ui, SIGNAL(connected()), this, SLOT(ui_connected())); + connect(&m_ws_ui, + SIGNAL(frameReceived(QString)), + this, + SLOT(ui_receive(QString))); + connect(&m_ws_ui, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(&m_ws_vr, SIGNAL(connected()), this, SLOT(vr_connected())); + connect(&m_ws_vr, + SIGNAL(frameReceived(QString)), + this, + SLOT(vr_receive(QString))); + connect(&m_ws_vr, SIGNAL(disconnected()), this, SLOT(disconnected())); + + connect(this, + SIGNAL(newAppAvailable(int, QString)), + this, + SLOT(registerApp(int, QString))); + + m_ws_buttons.connectToHost(QLatin1String("127.0.0.1"), 8087); + m_ws_tts.connectToHost(QLatin1String("127.0.0.1"), 8087); + m_ws_vr.connectToHost(QLatin1String("127.0.0.1"), 8087); + m_ws_basic.connectToHost(QLatin1String("127.0.0.1"), 8087); + m_ws_vehicle.connectToHost(QLatin1String("127.0.0.1"), 8087); + m_ws_ui.connectToHost(QLatin1String("127.0.0.1"), 8087); } -SmartDeviceLink::~SmartDeviceLink() -{ - qDebug() << "SmartDeviceLink destroyed"; +SmartDeviceLink::~SmartDeviceLink() { + qDebug() << "SmartDeviceLink destroyed"; } void SmartDeviceLink::basic_connected() { - basic_send("{\"jsonrpc\":\"2.0\",\"id\":600,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"BasicCommunicationClient\"}}"); + basic_send( + "{\"jsonrpc\":\"2.0\",\"id\":600,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"BasicCommunicationClient\"}}"); } void SmartDeviceLink::buttons_connected() { - buttons_send("{\"jsonrpc\":\"2.0\",\"id\":200,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"Buttons\"}}"); + buttons_send( + "{\"jsonrpc\":\"2.0\",\"id\":200,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"Buttons\"}}"); } void SmartDeviceLink::tts_connected() { - tts_send("{\"jsonrpc\":\"2.0\",\"id\":300,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"TTS\"}}"); + tts_send( + "{\"jsonrpc\":\"2.0\",\"id\":300,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"TTS\"}}"); } void SmartDeviceLink::vehicle_connected() { - vehicle_send("{\"jsonrpc\":\"2.0\",\"id\":700,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"VehicleInfo\"}}"); + vehicle_send( + "{\"jsonrpc\":\"2.0\",\"id\":700,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"VehicleInfo\"}}"); } void SmartDeviceLink::ui_connected() { - ui_send("{\"jsonrpc\":\"2.0\",\"id\":400,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"UI\"}}"); + ui_send( + "{\"jsonrpc\":\"2.0\",\"id\":400,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"UI\"}}"); } void SmartDeviceLink::vr_connected() { - vr_send("{\"jsonrpc\":\"2.0\",\"id\":500,\"method\":\"MB.registerComponent\",\"params\":{\"componentName\":\"VR\"}}"); + vr_send( + "{\"jsonrpc\":\"2.0\",\"id\":500,\"method\":\"MB.registerComponent\"," + "\"params\":{\"componentName\":\"VR\"}}"); } void SmartDeviceLink::basic_send(QString message) { - qDebug() << "Sending (basic):" << message; - m_ws_basic.write(message.append('\n')); + qDebug() << "Sending (basic):" << message; + m_ws_basic.write(message.append('\n')); } void SmartDeviceLink::buttons_send(QString message) { - qDebug() << "Sending (buttons):" << message; - m_ws_buttons.write(message.append('\n')); + qDebug() << "Sending (buttons):" << message; + m_ws_buttons.write(message.append('\n')); } void SmartDeviceLink::tts_send(QString message) { - qDebug() << "Sending (tts):" << message; - m_ws_tts.write(message.append('\n')); + qDebug() << "Sending (tts):" << message; + m_ws_tts.write(message.append('\n')); } void SmartDeviceLink::vehicle_send(QString message) { - qDebug() << "Sending (vehicle):" << message; - m_ws_vehicle.write(message.append('\n')); + qDebug() << "Sending (vehicle):" << message; + m_ws_vehicle.write(message.append('\n')); } void SmartDeviceLink::ui_send(QString message) { - qDebug() << "Sending (ui):" << message; - m_ws_ui.write(message.append('\n')); + qDebug() << "Sending (ui):" << message; + m_ws_ui.write(message.append('\n')); } void SmartDeviceLink::vr_send(QString message) { - qDebug() << "Sending (vr):" << message; - m_ws_vr.write(message.append('\n')); + qDebug() << "Sending (vr):" << message; + m_ws_vr.write(message.append('\n')); } void SmartDeviceLink::basic_receive(QString message) { - qDebug() << "Receiving(basic):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - int result = root.value("result").toDouble(); - QString method = root.value("method").toString(); - - if (id == 600) { - char *reg, *unreg, *update; - - asprintf(®, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnAppRegistered\"}}", result+1); - basic_send(reg); - free(reg); - - asprintf(&unreg, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnAppUnregistered\"}}", result+2); - basic_send(unreg); - free(unreg); - - asprintf(&update, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"BasicCommunication.OnDeviceListUpdated\"}} ", result+3); - basic_send(update); - free(update); - } - else if (method.compare("BasicCommunication.OnAppRegistered") == 0) { - QJsonObject params = root.value("params").toObject(); - QJsonObject application = params.value("application").toObject(); - QString appName = application.value("appName").toString(); - int appId = application.value("appId").toDouble(); - - char * update; - asprintf(&update, "{\"jsonrpc\":\"2.0\",\"id\":3000,\"method\":\"BasicCommunication.ActivateApp\",\"params\":{\"appName\":\"%s\",\"appId\":%i}}", appName.toLocal8Bit().data(), appId); - basic_send(update); - free(update); - emit newAppAvailable(appId, appName); - } - else if (method.compare("BasicCommunication.OnAppUnregistered") == 0) { - m_media_apps.clear(); - } + qDebug() << "Receiving(basic):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + int result = root.value("result").toDouble(); + QString method = root.value("method").toString(); + + if (id == 600) { + char* reg, *unreg, *update; + + asprintf(®, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\"," + "\"params\":{\"propertyName\":\"BasicCommunication." + "OnAppRegistered\"}}", + result + 1); + basic_send(reg); + free(reg); + + asprintf(&unreg, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\"," + "\"params\":{\"propertyName\":\"BasicCommunication." + "OnAppUnregistered\"}}", + result + 2); + basic_send(unreg); + free(unreg); + + asprintf(&update, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\"," + "\"params\":{\"propertyName\":\"BasicCommunication." + "OnDeviceListUpdated\"}} ", + result + 3); + basic_send(update); + free(update); + } else if (method.compare("BasicCommunication.OnAppRegistered") == 0) { + QJsonObject params = root.value("params").toObject(); + QJsonObject application = params.value("application").toObject(); + QString appName = application.value("appName").toString(); + int appId = application.value("appId").toDouble(); + + char* update; + asprintf(&update, + "{\"jsonrpc\":\"2.0\",\"id\":3000,\"method\":\"BasicCommunication." + "ActivateApp\",\"params\":{\"appName\":\"%s\",\"appId\":%i}}", + appName.toLocal8Bit().data(), + appId); + basic_send(update); + free(update); + emit newAppAvailable(appId, appName); + } else if (method.compare("BasicCommunication.OnAppUnregistered") == 0) { + m_media_apps.clear(); + } } void SmartDeviceLink::buttons_receive(QString message) { - qDebug() << "Receiving(buttons):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - QString method = root.value("method").toString(); - - if (method.compare("Buttons.GetCapabilities") == 0) { - buttons_send("{\"jsonrpc\":\"2.0\",\"id\":19,\"result\":{\"capabilities\":[{\"name\":\"PRESET_0\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_1\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_2\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_3\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_4\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_5\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_6\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_7\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_8\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"PRESET_9\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"OK\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"SEEKLEFT\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"SEEKRIGHT\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"TUNEUP\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":\"TUNEDOWN\",\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true}],\"presetBankCapabilities\":{\"onScreenPresetsAvailable\":true},\"method\":\"Buttons.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}"); - } + qDebug() << "Receiving(buttons):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + QString method = root.value("method").toString(); + + if (method.compare("Buttons.GetCapabilities") == 0) { + buttons_send( + "{\"jsonrpc\":\"2.0\",\"id\":19,\"result\":{\"capabilities\":[{" + "\"name\":\"PRESET_0\",\"shortPressAvailable\":true," + "\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":" + "\"PRESET_1\",\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_2\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_3\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_4\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_5\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_6\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_7\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_8\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"PRESET_9\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"OK\",\"shortPressAvailable\":" + "true,\"longPressAvailable\":true,\"upDownAvailable\":true},{\"name\":" + "\"SEEKLEFT\",\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"SEEKRIGHT\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"TUNEUP\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true},{\"name\":\"TUNEDOWN\"," + "\"shortPressAvailable\":true,\"longPressAvailable\":true," + "\"upDownAvailable\":true}],\"presetBankCapabilities\":{" + "\"onScreenPresetsAvailable\":true},\"method\":\"Buttons." + "GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}"); + } } void SmartDeviceLink::tts_receive(QString message) { - qDebug() << "Receiving(tts):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - QString method = root.value("method").toString(); - - if (method.compare("TTS.GetCapabilities") == 0) { - tts_send("{\"jsonrpc\":\"2.0\",\"id\":18,\"result\":{\"capabilities\":[\"TEXT\"],\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetCapabilitiesResponse\"}}"); - } - else if (method.compare("TTS.GetLanguage") == 0) { - tts_send("{\"jsonrpc\":\"2.0\",\"id\":26,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetLanguageResponse\",\"language\":\"EN-US\"}}"); - } - else if (method.compare("TTS.GetSupportedLanguages") == 0) { - tts_send("{\"jsonrpc\":\"2.0\",\"id\":22,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"TTS.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); - } - + qDebug() << "Receiving(tts):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + QString method = root.value("method").toString(); + + if (method.compare("TTS.GetCapabilities") == 0) { + tts_send( + "{\"jsonrpc\":\"2.0\",\"id\":18,\"result\":{\"capabilities\":[\"TEXT\"]" + ",\"resultCode\":\"SUCCESS\",\"method\":\"TTS." + "GetCapabilitiesResponse\"}}"); + } else if (method.compare("TTS.GetLanguage") == 0) { + tts_send( + "{\"jsonrpc\":\"2.0\",\"id\":26,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"TTS.GetLanguageResponse\",\"language\":\"EN-US\"}}"); + } else if (method.compare("TTS.GetSupportedLanguages") == 0) { + tts_send( + "{\"jsonrpc\":\"2.0\",\"id\":22,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"TTS.GetSupportedLanguagesResponse\",\"languages\":[\"EN-" + "US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-" + "TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-" + "AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); + } } void SmartDeviceLink::vehicle_receive(QString message) { - qDebug() << "Receiving(vehicle):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - QString method = root.value("method").toString(); - - if (method.compare("VehicleInfo.GetVehicleType") == 0) { - vehicle_send("{\"jsonrpc\":\"2.0\",\"id\":20,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VehicleInfo.GetVehicleTypeResponse\",\"vehicleType\":{\"make\":\"Ford\",\"model\":\"Fiesta\",\"modelYear\":\"2013\",\"trim\":\"SE\"}}}"); - } + qDebug() << "Receiving(vehicle):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + QString method = root.value("method").toString(); + + if (method.compare("VehicleInfo.GetVehicleType") == 0) { + vehicle_send( + "{\"jsonrpc\":\"2.0\",\"id\":20,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"VehicleInfo.GetVehicleTypeResponse\",\"vehicleType\":{" + "\"make\":\"Ford\",\"model\":\"Fiesta\",\"modelYear\":\"2013\"," + "\"trim\":\"SE\"}}}"); + } } void SmartDeviceLink::ui_receive(QString message) { - qDebug() << "Receiving(ui):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - int result = root.value("result").toDouble(); - QString method = root.value("method").toString(); - - if (id == 400) { - char *onchoise; - asprintf(&onchoise, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\",\"params\":{\"propertyName\":\"VR.OnChoise\"}}", result + 1); - ui_send(onchoise); - free(onchoise); - - ui_send("{\"jsonrpc\":\"2.0\",\"method\":\"UI.OnReady\"}"); - } - else if (method.compare("UI.GetCapabilities") == 0) { - ui_send("{\"jsonrpc\":\"2.0\",\"id\":16,\"result\":{\"displayCapabilities\":{\"displayType\":\"GEN2_8_DMA\",\"textFields\":[{\"name\":\"mainField1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mainField2\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"statusBar\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mediaClock\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mediaTrack\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"alertText1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"alertText2\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1}],\"mediaClockFormats\":[\"CLOCK1\",\"CLOCK2\",\"CLOCKTEXT1\",\"CLOCKTEXT2\",\"CLOCKTEXT3\"]},\"hmiZoneCapabilities\":[\"FRONT\",\"BACK\"],\"softButtonCapabilities\":[{\"shortPressAvailable\":true,\"longPressAvailable\":true,\"upDownAvailable\":true,\"imageSupported\":true}],\"method\":\"UI.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}"); - } - else if (method.compare("UI.GetSupportedLanguages") == 0) { - ui_send("{\"jsonrpc\":\"2.0\",\"id\":21,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); - } - else if (method.compare("UI.GetLanguage") == 0) { - ui_send("{\"jsonrpc\":\"2.0\",\"id\":24,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.GetLanguageResponse\",\"hmiDisplayLanguage\":\"EN-US\"}}"); - } - else if (method.compare("UI.Show") == 0) { - QJsonObject params = root.value("params").toObject(); - setShow1(params.value("mainField1").toString()); - setShow2(params.value("mainField2").toString()); - char* response; - asprintf(&response, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.ShowResponse\"}}", id); - ui_send(response); - free(response); - } - else if (method.compare("UI.Alert") == 0) { - QJsonObject params = root.value("params").toObject(); - QString message(params.value("AlertText1").toString()); - message.append("\n").append(params.value("AlertText2").toString()); - char * response; - asprintf(&response, "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"UI.AlertResponse\"}}", id); - ui_send(response); - free(response); - emit alert(message); - } - + qDebug() << "Receiving(ui):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + int result = root.value("result").toDouble(); + QString method = root.value("method").toString(); + + if (id == 400) { + char* onchoise; + asprintf(&onchoise, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"method\":\"MB.subscribeTo\"," + "\"params\":{\"propertyName\":\"VR.OnChoise\"}}", + result + 1); + ui_send(onchoise); + free(onchoise); + + ui_send("{\"jsonrpc\":\"2.0\",\"method\":\"UI.OnReady\"}"); + } else if (method.compare("UI.GetCapabilities") == 0) { + ui_send( + "{\"jsonrpc\":\"2.0\",\"id\":16,\"result\":{\"displayCapabilities\":{" + "\"displayType\":\"GEN2_8_DMA\",\"textFields\":[{\"name\":" + "\"mainField1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{" + "\"name\":\"mainField2\",\"characterSet\":\"TYPE2SET\",\"width\":1," + "\"rows\":1},{\"name\":\"statusBar\",\"characterSet\":\"TYPE2SET\"," + "\"width\":1,\"rows\":1},{\"name\":\"mediaClock\",\"characterSet\":" + "\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":\"mediaTrack\"," + "\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{\"name\":" + "\"alertText1\",\"characterSet\":\"TYPE2SET\",\"width\":1,\"rows\":1},{" + "\"name\":\"alertText2\",\"characterSet\":\"TYPE2SET\",\"width\":1," + "\"rows\":1}],\"mediaClockFormats\":[\"CLOCK1\",\"CLOCK2\"," + "\"CLOCKTEXT1\",\"CLOCKTEXT2\",\"CLOCKTEXT3\"]}," + "\"hmiZoneCapabilities\":[\"FRONT\",\"BACK\"]," + "\"softButtonCapabilities\":[{\"shortPressAvailable\":true," + "\"longPressAvailable\":true,\"upDownAvailable\":true," + "\"imageSupported\":true}],\"method\":\"UI.GetCapabilitiesResponse\"," + "\"resultCode\":\"SUCCESS\"}}"); + } else if (method.compare("UI.GetSupportedLanguages") == 0) { + ui_send( + "{\"jsonrpc\":\"2.0\",\"id\":21,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"UI.GetSupportedLanguagesResponse\",\"languages\":[\"EN-" + "US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-" + "TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-" + "AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); + } else if (method.compare("UI.GetLanguage") == 0) { + ui_send( + "{\"jsonrpc\":\"2.0\",\"id\":24,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"UI.GetLanguageResponse\",\"hmiDisplayLanguage\":\"EN-" + "US\"}}"); + } else if (method.compare("UI.Show") == 0) { + QJsonObject params = root.value("params").toObject(); + setShow1(params.value("mainField1").toString()); + setShow2(params.value("mainField2").toString()); + char* response; + asprintf(&response, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":" + "\"SUCCESS\",\"method\":\"UI.ShowResponse\"}}", + id); + ui_send(response); + free(response); + } else if (method.compare("UI.Alert") == 0) { + QJsonObject params = root.value("params").toObject(); + QString message(params.value("AlertText1").toString()); + message.append("\n").append(params.value("AlertText2").toString()); + char* response; + asprintf(&response, + "{\"jsonrpc\":\"2.0\",\"id\":%i,\"result\":{\"resultCode\":" + "\"SUCCESS\",\"method\":\"UI.AlertResponse\"}}", + id); + ui_send(response); + free(response); + emit alert(message); + } } void SmartDeviceLink::vr_receive(QString message) { - qDebug() << "Receiving(vr):" << message; - QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); - int id = root.value("id").toDouble(); - QString method = root.value("method").toString(); - - if (method.compare("VR.GetCapabilities") == 0) { - vr_send("{\"jsonrpc\":\"2.0\",\"id\":17,\"result\":{\"capabilities\":[\"TEXT\"],\"method\":\"VR.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}}"); - } - else if (method.compare("VR.GetSupportedLanguages") == 0) { - vr_send("{\"jsonrpc\":\"2.0\",\"id\":23,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VR.GetSupportedLanguagesResponse\",\"languages\":[\"EN-US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); - } - else if (method.compare("VR.GetLanguage") == 0) { - vr_send("{\"jsonrpc\":\"2.0\",\"id\":25,\"result\":{\"resultCode\":\"SUCCESS\",\"method\":\"VR.GetLanguageResponse\",\"language\":\"EN-US\"}}"); - } + qDebug() << "Receiving(vr):" << message; + QJsonObject root = QJsonDocument::fromJson(message.toLocal8Bit()).object(); + int id = root.value("id").toDouble(); + QString method = root.value("method").toString(); + + if (method.compare("VR.GetCapabilities") == 0) { + vr_send( + "{\"jsonrpc\":\"2.0\",\"id\":17,\"result\":{\"capabilities\":[\"TEXT\"]" + ",\"method\":\"VR.GetCapabilitiesResponse\",\"resultCode\":\"SUCCESS\"}" + "}"); + } else if (method.compare("VR.GetSupportedLanguages") == 0) { + vr_send( + "{\"jsonrpc\":\"2.0\",\"id\":23,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"VR.GetSupportedLanguagesResponse\",\"languages\":[\"EN-" + "US\",\"ES-MX\",\"FR-CA\",\"DE-EU\",\"ES-EU\",\"EN-EU\",\"RU-RU\",\"TR-" + "TR\",\"PL-EU\",\"FR-EU\",\"IT-EU\",\"SV-EU\",\"PT-EU\",\"NL-EU\",\"EN-" + "AU\",\"ZH-CN\",\"ZH-TW\",\"JA-JP\",\"AR\",\"KO-KR\"]}}"); + } else if (method.compare("VR.GetLanguage") == 0) { + vr_send( + "{\"jsonrpc\":\"2.0\",\"id\":25,\"result\":{\"resultCode\":\"SUCCESS\"," + "\"method\":\"VR.GetLanguageResponse\",\"language\":\"EN-US\"}}"); + } } void SmartDeviceLink::registerApp(int appId, QString appName) { - qDebug() << "New app registered:" << appName; - m_media_apps.append(appId, appName); + qDebug() << "New app registered:" << appName; + m_media_apps.append(appId, appName); } void SmartDeviceLink::setShow1(QString show) { - m_show1 = show; - emit show1Changed(show); + m_show1 = show; + emit show1Changed(show); } void SmartDeviceLink::setShow2(QString show) { - m_show2 = show; - emit show2Changed(show); + m_show2 = show; + emit show2Changed(show); } void SmartDeviceLink::disconnected() { - qDebug() << "Websocket disconnected"; + qDebug() << "Websocket disconnected"; } diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h b/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h index f2e7f1b2b4..18ad605f40 100644 --- a/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h +++ b/src/components/qt_hmi/References/Work/fordsdlcore/smartdevicelink.h @@ -6,70 +6,75 @@ #include "QtWebsocket/QWsSocket.h" #include "sdlappslistmodel.h" -class SmartDeviceLink : public QObject -{ - Q_OBJECT - Q_PROPERTY(QString show1 READ getShow1 NOTIFY show1Changed) - Q_PROPERTY(QString show2 READ getShow2 NOTIFY show2Changed) +class SmartDeviceLink : public QObject { + Q_OBJECT + Q_PROPERTY(QString show1 READ getShow1 NOTIFY show1Changed) + Q_PROPERTY(QString show2 READ getShow2 NOTIFY show2Changed) -public: - SmartDeviceLink(QQuickItem *parent = 0); - ~SmartDeviceLink(); + public: + SmartDeviceLink(QQuickItem* parent = 0); + ~SmartDeviceLink(); - static SmartDeviceLink& getInstance() { - static SmartDeviceLink instance; - return instance; - } + static SmartDeviceLink& getInstance() { + static SmartDeviceLink instance; + return instance; + } - SdlAppsListModel* getMediaApps() { return &m_media_apps; } - QString getShow1() { return m_show1; } - QString getShow2() { return m_show2; } + SdlAppsListModel* getMediaApps() { + return &m_media_apps; + } + QString getShow1() { + return m_show1; + } + QString getShow2() { + return m_show2; + } -private: - QWsSocket m_ws_basic; - QWsSocket m_ws_tts; - QWsSocket m_ws_buttons; - QWsSocket m_ws_vehicle; - QWsSocket m_ws_ui; - QWsSocket m_ws_vr; + private: + QWsSocket m_ws_basic; + QWsSocket m_ws_tts; + QWsSocket m_ws_buttons; + QWsSocket m_ws_vehicle; + QWsSocket m_ws_ui; + QWsSocket m_ws_vr; - SdlAppsListModel m_media_apps; + SdlAppsListModel m_media_apps; - QString m_show1; - QString m_show2; + QString m_show1; + QString m_show2; - void basic_send(QString message); - void tts_send(QString message); - void buttons_send(QString message); - void vehicle_send(QString message); - void ui_send(QString message); - void vr_send(QString message); - void setShow1(QString); - void setShow2(QString); + void basic_send(QString message); + void tts_send(QString message); + void buttons_send(QString message); + void vehicle_send(QString message); + void ui_send(QString message); + void vr_send(QString message); + void setShow1(QString); + void setShow2(QString); -public slots: - void basic_connected(); - void tts_connected(); - void buttons_connected(); - void vehicle_connected(); - void ui_connected(); - void vr_connected(); + public slots: + void basic_connected(); + void tts_connected(); + void buttons_connected(); + void vehicle_connected(); + void ui_connected(); + void vr_connected(); - void basic_receive(QString); - void tts_receive(QString); - void buttons_receive(QString); - void vehicle_receive(QString); - void ui_receive(QString); - void vr_receive(QString); - void registerApp(int, QString); + void basic_receive(QString); + void tts_receive(QString); + void buttons_receive(QString); + void vehicle_receive(QString); + void ui_receive(QString); + void vr_receive(QString); + void registerApp(int, QString); - void disconnected(); + void disconnected(); signals: - void show1Changed(QString); - void show2Changed(QString); - void newAppAvailable(int, QString); - void alert(QString message); + void show1Changed(QString); + void show2Changed(QString); + void newAppAvailable(int, QString); + void alert(QString message); }; -#endif // SMARTDEVICELINK_H +#endif // SMARTDEVICELINK_H diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc index d026f4bbb5..60f07783a9 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.cc @@ -36,11 +36,11 @@ #include "interfaces/QT_HMI_API.h" #include <QtDBus/QDBusConnection> -DBusController::DBusController(QObject *parent) - : QObject(parent), - message(NULL) {} +DBusController::DBusController(QObject* parent) + : QObject(parent), message(NULL) {} -void DBusController::addMessage(const QDBusMessage& message, fillRoutine fill, +void DBusController::addMessage(const QDBusMessage& message, + fillRoutine fill, int async_uid) { delayedReply reply; reply.message = message; @@ -54,11 +54,11 @@ void DBusController::sendReply(QVariant asyncObject, QVariant data) { if (it != replies_.end()) { QDBusMessage msg = it->second.message.createReply(); if (!it->second.fill(msg, data.toMap())) { - QDBusConnection::sessionBus() - .send(it->second.message.createErrorReply(QDBusError::InternalError, - QString::number(hmi_apis::Common_Result::INVALID_DATA))); + QDBusConnection::sessionBus().send(it->second.message.createErrorReply( + QDBusError::InternalError, + QString::number(hmi_apis::Common_Result::INVALID_DATA))); } else { - QDBusConnection::sessionBus().send(msg); + QDBusConnection::sessionBus().send(msg); } replies_.erase(it); } @@ -69,15 +69,17 @@ void DBusController::sendReply(QVariant data) { return; QDBusMessage msg = message->createReply(); if (!fill(msg, data.toMap())) { - QDBusConnection::sessionBus() - .send(message->createErrorReply(QDBusError::InternalError, - QString::number(hmi_apis::Common_Result::INVALID_DATA))); + QDBusConnection::sessionBus().send(message->createErrorReply( + QDBusError::InternalError, + QString::number(hmi_apis::Common_Result::INVALID_DATA))); } else { QDBusConnection::sessionBus().send(msg); } } -void DBusController::sendError(QVariant asyncObject, QVariant code, QVariant message) { +void DBusController::sendError(QVariant asyncObject, + QVariant code, + QVariant message) { int uid = asyncObject.toMap()["__async_uid"].toInt(); std::map<int, delayedReply>::iterator it = replies_.find(uid); if (it != replies_.end()) { diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h index ecda598670..937bab5f90 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_controller.h @@ -41,7 +41,7 @@ typedef bool (*fillRoutine)(QDBusMessage&, const QVariantMap&); -class DBusController: public QObject { +class DBusController : public QObject { struct delayedReply { QDBusMessage message; fillRoutine fill; @@ -49,12 +49,14 @@ class DBusController: public QObject { Q_OBJECT public: - explicit DBusController(QObject *parent = 0); + explicit DBusController(QObject* parent = 0); void addMessage(const QDBusMessage& message, fillRoutine fill, int async_uid); Q_INVOKABLE void sendReply(QVariant asyncObject, QVariant data); Q_INVOKABLE void sendReply(QVariant data); Q_INVOKABLE void sendError(QVariant asyncObject, QVariant code); - Q_INVOKABLE void sendError(QVariant asyncObject, QVariant code, QVariant message); + Q_INVOKABLE void sendError(QVariant asyncObject, + QVariant code, + QVariant message); const QDBusMessage* message; fillRoutine fill; diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc index 0f41a28e73..5cc4dadb1e 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.cc @@ -48,18 +48,18 @@ #include <QtDBus/QDBusConnection> #if QT_4 -# include <QtDeclarative/QDeclarativeContext> -# include <QtDeclarative/QDeclarativeListReference> -# include <QtDeclarative/QDeclarativeEngine> +#include <QtDeclarative/QDeclarativeContext> +#include <QtDeclarative/QDeclarativeListReference> +#include <QtDeclarative/QDeclarativeEngine> #elif QT_5 -# include <QtQml/QQmlContext> -# include <QtQml/QQmlListReference> -# include <QtQml/QQmlEngine> +#include <QtQml/QQmlContext> +#include <QtQml/QQmlListReference> +#include <QtQml/QQmlEngine> #endif // QT_VERSION -log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr( - log4cxx::Logger::getLogger("DBusPlugin")); +log4cxx::LoggerPtr logger_ = + log4cxx::LoggerPtr(log4cxx::Logger::getLogger("DBusPlugin")); -void DbusPlugin::registerTypes(const char *uri) { +void DbusPlugin::registerTypes(const char* uri) { log4cxx::PropertyConfigurator::configure("log4cxx.properties"); // @uri sdl.core.api @@ -87,9 +87,9 @@ void DbusPlugin::registerTypes(const char *uri) { HmiProxy::api_adaptors_.SetDBusController(dbusController_); } -void DbusPlugin::initializeEngine(Engine *engine, const char *uri) { - engine->rootContext()->setContextProperty("DBus", dbusController_); - engine->rootContext()->setContextProperty("RequestToSDL", requestToSDL_); +void DbusPlugin::initializeEngine(Engine* engine, const char* uri) { + engine->rootContext()->setContextProperty("DBus", dbusController_); + engine->rootContext()->setContextProperty("RequestToSDL", requestToSDL_); } #if QT_4 diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h index ef2a925956..2b5bba6235 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/dbus_plugin.h @@ -38,11 +38,11 @@ #include "qt_version.h" #if QT_4 -# include <QtDeclarative/QDeclarativeExtensionPlugin> +#include <QtDeclarative/QDeclarativeExtensionPlugin> typedef QDeclarativeExtensionPlugin ExtensionPlugin; typedef QDeclarativeEngine Engine; #elif QT_5 -# include <QtQml/QQmlExtensionPlugin> +#include <QtQml/QQmlExtensionPlugin> typedef QQmlExtensionPlugin ExtensionPlugin; typedef QQmlEngine Engine; #endif // QT_VERSION @@ -58,13 +58,12 @@ class DbusPlugin : public ExtensionPlugin, public QDBusContext { Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") #endif // QT_5 - DBusController *dbusController_; - RequestToSDL *requestToSDL_; + DBusController* dbusController_; + RequestToSDL* requestToSDL_; public: - void registerTypes(const char *uri); - void initializeEngine(Engine *engine, const char *uri); + void registerTypes(const char* uri); + void initializeEngine(Engine* engine, const char* uri); }; #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_DBUS_PLUGIN_H_ - diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc b/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc index 8b6cfd57d4..e196e5c5de 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.cc @@ -37,8 +37,7 @@ ApiAdaptors HmiProxy::api_adaptors_; -HmiProxy::HmiProxy(Item *parent) - : Item(parent) {} +HmiProxy::HmiProxy(Item* parent) : Item(parent) {} void HmiProxy::componentComplete() { Item::componentComplete(); diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h index 886d523157..d7277d017b 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/hmi_proxy.h @@ -39,10 +39,10 @@ #include "qml_dbus.h" #if QT_4 -# include <QtDeclarative/QDeclarativeItem> +#include <QtDeclarative/QDeclarativeItem> typedef QDeclarativeItem Item; #elif QT_5 -# include <QtQuick/QQuickItem> +#include <QtQuick/QQuickItem> typedef QQuickItem Item; #endif // QT_VERSION @@ -51,7 +51,7 @@ class HmiProxy : public Item { Q_DISABLE_COPY(HmiProxy) public: - explicit HmiProxy(Item *parent = 0); + explicit HmiProxy(Item* parent = 0); static ApiAdaptors api_adaptors_; protected: @@ -61,4 +61,3 @@ class HmiProxy : public Item { QML_DECLARE_TYPE(HmiProxy) #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_HMI_PROXY_H_ - diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h index 5224da7f55..b127cea1a8 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/metatype.h @@ -35,25 +35,25 @@ #include <QMetaType> -template<typename T> +template <typename T> QMetaType::Type metatype(); -template<> +template <> inline QMetaType::Type metatype<int>() { return QMetaType::Int; } -template<> +template <> inline QMetaType::Type metatype<QString>() { return QMetaType::QString; } -template<> +template <> inline QMetaType::Type metatype<bool>() { return QMetaType::Bool; } -template<> +template <> inline QMetaType::Type metatype<double>() { return QMetaType::Double; } diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h index b9360c3eb4..ea6f68bb31 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/optional_argument.h @@ -38,38 +38,34 @@ #include "qt_version.h" #include <QtDBus/QDBusArgument> -template<class T> +template <class T> struct OptionalArgument { T val; bool presence; - explicit OptionalArgument(const T& value) - : val(value), - presence(true) {} - OptionalArgument() - : presence(false) {} + explicit OptionalArgument(const T& value) : val(value), presence(true) {} + OptionalArgument() : presence(false) {} }; -template<class T> -inline -QDBusArgument& operator << (QDBusArgument& arg, const OptionalArgument<T>& o) { +template <class T> +inline QDBusArgument& operator<<(QDBusArgument& arg, + const OptionalArgument<T>& o) { arg.beginStructure(); arg << o.presence << o.val; arg.endStructure(); return arg; } -template<class T> -inline -const QDBusArgument& operator >> (const QDBusArgument& arg, OptionalArgument<T>& o) { +template <class T> +inline const QDBusArgument& operator>>(const QDBusArgument& arg, + OptionalArgument<T>& o) { arg.beginStructure(); arg >> o.presence >> o.val; arg.endStructure(); return arg; } -template<class T> -inline -bool VariantToValue(const QVariant& variant, OptionalArgument<T>& o) { +template <class T> +inline bool VariantToValue(const QVariant& variant, OptionalArgument<T>& o) { if (variant.isNull()) { o.presence = false; return true; @@ -80,7 +76,7 @@ bool VariantToValue(const QVariant& variant, OptionalArgument<T>& o) { #if QT_4 Q_DECLARE_METATYPE(QList<int>) -#endif // QT_4 +#endif // QT_4 Q_DECLARE_METATYPE(OptionalArgument<int>) Q_DECLARE_METATYPE(OptionalArgument<QString>) diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h index eb9b93929f..fa9692f9d9 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/qml_dbus_common.h @@ -70,8 +70,7 @@ enum ErrorCode { inline void RaiseDbusError(QObject* adaptor, int code, const QString& message) { QDBusContext* context = dynamic_cast<QDBusContext*>(adaptor->parent()); if (context) { - context->sendErrorReply(QString::number(static_cast<int>(code)), - message); + context->sendErrorReply(QString::number(static_cast<int>(code)), message); } } @@ -79,31 +78,39 @@ inline void RaiseDbusError(QObject* adaptor, int code) { RaiseDbusError(adaptor, code, ""); } -template<typename T> +template <typename T> inline void PutArgToMap(QVariantMap& map, const char* name, const T& v) { map.insert(name, QVariant::fromValue(v)); } inline bool GetArgFromMap(const QVariantMap& map, const char* name, int& v) { QVariantMap::const_iterator it = map.find(name); - if (map.end() == it) return false; - if (it->type() != QVariant::Int) return false; + if (map.end() == it) + return false; + if (it->type() != QVariant::Int) + return false; v = it->toInt(); return true; } -inline bool GetArgFromMap(const QVariantMap& map, const char* name, QString& v) { +inline bool GetArgFromMap(const QVariantMap& map, + const char* name, + QString& v) { QVariantMap::const_iterator it = map.find(name); - if (map.end() == it) return false; - if (it->type() != QVariant::String) return false; + if (map.end() == it) + return false; + if (it->type() != QVariant::String) + return false; v = it->toString(); return true; } inline bool GetArgFromMap(const QVariantMap& map, const char* name, bool& v) { QVariantMap::const_iterator it = map.find(name); - if (map.end() == it) return false; - if (it->type() != QVariant::Bool) return false; + if (map.end() == it) + return false; + if (it->type() != QVariant::Bool) + return false; v = it->toBool(); return true; } @@ -111,78 +118,87 @@ inline bool GetArgFromMap(const QVariantMap& map, const char* name, bool& v) { inline bool isNumber(QVariant v) { QVariant::Type t = v.type(); return (t == QVariant::Double) || (t == QVariant::Int) || - (t == QVariant::UInt) || (t == QVariant::LongLong) || + (t == QVariant::UInt) || (t == QVariant::LongLong) || (t == QVariant::ULongLong); } inline bool GetArgFromMap(const QVariantMap& map, const char* name, double& v) { QVariantMap::const_iterator it = map.find(name); - if (map.end() == it) return false; - if (!isNumber(*it)) return false; + if (map.end() == it) + return false; + if (!isNumber(*it)) + return false; v = it->toDouble(); return true; } inline bool VariantToValue(const QVariant& variant, int& v) { - if (variant.type() != QVariant::Int) return false; - v = variant.toInt(); - return true; + if (variant.type() != QVariant::Int) + return false; + v = variant.toInt(); + return true; } inline bool VariantToValue(const QVariant& variant, QString& v) { - if (variant.type() != QVariant::String) return false; - v = variant.toString(); - return true; + if (variant.type() != QVariant::String) + return false; + v = variant.toString(); + return true; } inline bool VariantToValue(const QVariant& variant, bool& v) { - if (variant.type() != QVariant::Bool) return false; - v = variant.toBool(); - return true; + if (variant.type() != QVariant::Bool) + return false; + v = variant.toBool(); + return true; } inline bool VariantToValue(const QVariant& variant, double& v) { - if (variant.type() != QVariant::Double) return false; - v = variant.toDouble(); - return true; + if (variant.type() != QVariant::Double) + return false; + v = variant.toDouble(); + return true; } inline bool VariantToValue(const QVariant& variant, QStringList& v) { - if (variant.type() != QVariant::List) return false; + if (variant.type() != QVariant::List) + return false; QList<QVariant> list = variant.toList(); for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) { - if (i->type() != QVariant::String) return false; + if (i->type() != QVariant::String) + return false; v.append(i->toString()); } return true; } -template<typename T> +template <typename T> bool VariantToValue(const QVariant& variant, QList<T>& v) { - if (variant.type() != QVariant::List) return false; - QList<T> spare; - QList<QVariant> list = variant.toList(); - for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) { - QVariant::Type type = i->type(); -// Although this function is declared as returning QVariant::Type(obsolete), -// the return value should be interpreted as QMetaType::Type. -// (http://qt-project.org/doc/qt-5.0/qtcore/qvariant.html#type) - QMetaType::Type type_casted = static_cast<QMetaType::Type>(type); - if (type_casted != metatype<T>()) { - return false; - } - spare.append(i->value<T>()); + if (variant.type() != QVariant::List) + return false; + QList<T> spare; + QList<QVariant> list = variant.toList(); + for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) { + QVariant::Type type = i->type(); + // Although this function is declared as returning QVariant::Type(obsolete), + // the return value should be interpreted as QMetaType::Type. + // (http://qt-project.org/doc/qt-5.0/qtcore/qvariant.html#type) + QMetaType::Type type_casted = static_cast<QMetaType::Type>(type); + if (type_casted != metatype<T>()) { + return false; } - v.swap(spare); - return true; + spare.append(i->value<T>()); + } + v.swap(spare); + return true; } -template<typename T> +template <typename T> inline QVariant ValueToVariant(const T& v) { - return QVariant::fromValue(v); + return QVariant::fromValue(v); } -template<typename T> +template <typename T> inline QVariant ValueToVariant(const QList<T>& v) { QList<QVariant> list; for (typename QList<T>::const_iterator i = v.begin(); i != v.end(); ++i) @@ -190,7 +206,7 @@ inline QVariant ValueToVariant(const QList<T>& v) { return QVariant::fromValue(list); } -template<typename T> +template <typename T> inline void PutArgToMap(QVariantMap& map, const char* name, const QList<T>& v) { QList<QVariant> list; for (typename QList<T>::const_iterator i = v.begin(); i != v.end(); ++i) @@ -198,31 +214,38 @@ inline void PutArgToMap(QVariantMap& map, const char* name, const QList<T>& v) { map.insert(name, QVariant::fromValue(list)); } -template<typename T> -inline bool GetArgFromMap(const QVariantMap& map, const char* name, QList<T>& v) { +template <typename T> +inline bool GetArgFromMap(const QVariantMap& map, + const char* name, + QList<T>& v) { QVariantMap::const_iterator it = map.find(name); - if (map.end() == it) return false; + if (map.end() == it) + return false; const QVariant& variant = *it; - if (variant.type() != QVariant::List) return false; + if (variant.type() != QVariant::List) + return false; QList<QVariant> list = variant.toList(); for (QList<QVariant>::const_iterator i = list.begin(); i != list.end(); ++i) { T t; bool ok = VariantToValue(*i, t); - if (!ok) return false; + if (!ok) + return false; v.append(t); } return true; } -template<typename T> -inline void PutArgToMap(QVariantMap& map, const char* name, +template <typename T> +inline void PutArgToMap(QVariantMap& map, + const char* name, const OptionalArgument<T>& v) { if (v.presence) map.insert(name, ValueToVariant(v.val)); } -template<typename T> -inline bool GetArgFromMap(const QVariantMap& map, const char* name, +template <typename T> +inline bool GetArgFromMap(const QVariantMap& map, + const char* name, OptionalArgument<T>& v) { QVariantMap::const_iterator it = map.find(name); if (map.end() == it || !it->isValid()) { diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h b/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h index 4eff83bd5b..c41eea7403 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/qt_version.h @@ -37,11 +37,12 @@ #include <qglobal.h> -#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) +#define QT_4 \ + ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) -#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) +#define QT_5 \ + ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_DBUS_ADAPTER_QT_VERSION_H_ - diff --git a/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc b/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc index b60f5226c4..ec049b9533 100644 --- a/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc +++ b/src/components/qt_hmi/qml_plugins/dbus_adapter/stream_qvariant.cc @@ -35,33 +35,33 @@ std::basic_ostream<char>& operator<<(std::basic_ostream<char>& os, const QVariant& value) { switch (value.type()) { - case QVariant::Map: { - os << "{ "; - QVariantMap structure = value.toMap(); - QMapIterator<QString, QVariant> i(structure); - while (i.hasNext()) { - i.next(); - os << i.key() << ":" << i.value(); - if (i.hasNext()) { - os << ", "; + case QVariant::Map: { + os << "{ "; + QVariantMap structure = value.toMap(); + QMapIterator<QString, QVariant> i(structure); + while (i.hasNext()) { + i.next(); + os << i.key() << ":" << i.value(); + if (i.hasNext()) { + os << ", "; + } } - } - os << " }"; - } break; - case QVariant::List: { - os << "[ "; - QVariantList array = value.toList(); - QListIterator<QVariant> i(array); - while (i.hasNext()) { - os << i.next(); - if (i.hasNext()) { - os << ", "; + os << " }"; + } break; + case QVariant::List: { + os << "[ "; + QVariantList array = value.toList(); + QListIterator<QVariant> i(array); + while (i.hasNext()) { + os << i.next(); + if (i.hasNext()) { + os << ", "; + } } - } - os << " ]"; - } break; - default: - os << value.toString().toLatin1().data(); + os << " ]"; + } break; + default: + os << value.toString().toLatin1().data(); } return os; diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc b/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc index bcde90930f..899fc5b615 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.cc @@ -34,6 +34,6 @@ #include "attributed_mouse_event.h" -Item *AttributedMouseEvent::item() const { - return item_; +Item* AttributedMouseEvent::item() const { + return item_; } diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h b/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h index 2d2babc29f..0486397058 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/attributed_mouse_event.h @@ -38,10 +38,10 @@ #include <QtCore/QObject> #if QT_4 -# include <QtDeclarative/QDeclarativeItem> +#include <QtDeclarative/QDeclarativeItem> typedef QDeclarativeItem Item; #elif QT_5 -# include <QtQuick/QQuickItem> +#include <QtQuick/QQuickItem> typedef QQuickItem Item; #endif // QT_VERSION @@ -50,12 +50,12 @@ class AttributedMouseEvent : public QObject { Q_PROPERTY(Item* item READ item) public: - explicit AttributedMouseEvent(Item *item) : item_(item) {} + explicit AttributedMouseEvent(Item* item) : item_(item) {} - Item *item() const; + Item* item() const; private: - Item *item_; + Item* item_; Q_DISABLE_COPY(AttributedMouseEvent) }; diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc b/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc index bf63c12cb1..62a090a509 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.cc @@ -35,16 +35,16 @@ #include "hmi_hwbuttons.h" #if QT_4 -# include <QtDeclarative/qdeclarative.h> -# include <QtGui/QGraphicsColorizeEffect> +#include <QtDeclarative/qdeclarative.h> +#include <QtGui/QGraphicsColorizeEffect> #elif QT_5 -# include <QtQml> +#include <QtQml> #endif // QT_VERSION #include "masked_container.h" #include "attributed_mouse_event.h" -void HmiHWButtons::registerTypes(const char *uri) { +void HmiHWButtons::registerTypes(const char* uri) { // @uri com.ford.hmi_framework qmlRegisterType<MaskedContainer>(uri, 1, 0, "MaskedContainer"); qmlRegisterType<AttributedMouseEvent>(); diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h b/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h index cf8f0b5f4b..0cf71807c4 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/hmi_hwbuttons.h @@ -38,10 +38,10 @@ #include "qt_version.h" #if QT_4 -# include <QtDeclarative/QDeclarativeExtensionPlugin> +#include <QtDeclarative/QDeclarativeExtensionPlugin> typedef QDeclarativeExtensionPlugin ExtensionPlugin; #elif QT_5 -# include <QtQml/QQmlExtensionPlugin> +#include <QtQml/QQmlExtensionPlugin> typedef QQmlExtensionPlugin ExtensionPlugin; #endif // QT_VERSION @@ -52,8 +52,7 @@ class HmiHWButtons : public ExtensionPlugin { #endif // QT_5 public: - void registerTypes(const char *uri); + void registerTypes(const char* uri); }; #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_HMI_HWBUTTONS_H_ - diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc b/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc index 0d144ff84c..f80e80907e 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.cc @@ -35,74 +35,73 @@ #include "masked_container.h" #if QT_4 -# include <QtCore/QPointF> -# include <QtGui/QGraphicsSceneMouseEvent> -# define IMAGE "QDeclarativeImage" +#include <QtCore/QPointF> +#include <QtGui/QGraphicsSceneMouseEvent> +#define IMAGE "QDeclarativeImage" #elif QT_5 -# include <QtGui/QImage> -# include <QtCore/QEvent> -# define IMAGE "QQuickImage" +#include <QtGui/QImage> +#include <QtCore/QEvent> +#define IMAGE "QQuickImage" #endif // QT_VERSION -MaskedContainer::MaskedContainer(Item *parent) - : Item(parent), - mask_(NULL) { +MaskedContainer::MaskedContainer(Item* parent) : Item(parent), mask_(NULL) { setAcceptedMouseButtons(Qt::LeftButton); } void MaskedContainer::componentComplete() { - Item::componentComplete(); - - for (QObjectList::ConstIterator it = children().begin(); - it != children().end(); ++it) { - Item *item = qobject_cast<Item*>(*it); - if (item && item->inherits(IMAGE) && item->isVisible()) { - images_.push_back(item); - } + Item::componentComplete(); + + for (QObjectList::ConstIterator it = children().begin(); + it != children().end(); + ++it) { + Item* item = qobject_cast<Item*>(*it); + if (item && item->inherits(IMAGE) && item->isVisible()) { + images_.push_back(item); } + } - int height = this->height(); - int width =this->width(); - - for (size_t i = 0; i < images_.size(); ++i) { - Item *item = images_[i]; - int itemWidth = item->width(); - int itemHeight = item->height(); - int itemX = item->x(); - int itemY = item->y(); - if (height < itemHeight + itemY) - height = itemHeight + itemY; - if (width < itemWidth + itemX) - width = itemWidth + itemX; - } + int height = this->height(); + int width = this->width(); + + for (size_t i = 0; i < images_.size(); ++i) { + Item* item = images_[i]; + int itemWidth = item->width(); + int itemHeight = item->height(); + int itemX = item->x(); + int itemY = item->y(); + if (height < itemHeight + itemY) + height = itemHeight + itemY; + if (width < itemWidth + itemX) + width = itemWidth + itemX; + } - setHeight(height); - setWidth(width); - - mask_ = new int[height * width]; - std::fill(mask_, mask_ + height * width, -1); - - for (size_t i = 0; i < images_.size(); ++i) { - Item *item = images_[i]; - int itemWidth = item->width(); - int itemHeight = item->height(); - int itemX = item->x(); - int itemY = item->y(); - - QUrl url = item->property("source").toUrl(); - QImage img(url.path()); - const QRgb* bits = reinterpret_cast<const QRgb*>(img.constBits()); - for (int x = 0; x < itemWidth; ++x) { - for (int y = 0; y < itemHeight; ++y) { - if (qAlpha(bits[y * itemWidth + x]) > 128) { - mask_[(itemY + y) * width + (x + itemX)] = i; - } - } + setHeight(height); + setWidth(width); + + mask_ = new int[height * width]; + std::fill(mask_, mask_ + height * width, -1); + + for (size_t i = 0; i < images_.size(); ++i) { + Item* item = images_[i]; + int itemWidth = item->width(); + int itemHeight = item->height(); + int itemX = item->x(); + int itemY = item->y(); + + QUrl url = item->property("source").toUrl(); + QImage img(url.path()); + const QRgb* bits = reinterpret_cast<const QRgb*>(img.constBits()); + for (int x = 0; x < itemWidth; ++x) { + for (int y = 0; y < itemHeight; ++y) { + if (qAlpha(bits[y * itemWidth + x]) > 128) { + mask_[(itemY + y) * width + (x + itemX)] = i; } + } } + } } -void MaskedContainer::mousePressEvent(MouseEvent *mouse) { +void MaskedContainer::mousePressEvent(MouseEvent* mouse) { #if QT_4 qreal x = mouse->pos().x(); qreal y = mouse->pos().y(); @@ -126,7 +125,7 @@ void MaskedContainer::mousePressEvent(MouseEvent *mouse) { } } -void MaskedContainer::mouseReleaseEvent(MouseEvent *mouse) { +void MaskedContainer::mouseReleaseEvent(MouseEvent* mouse) { #if QT_4 qreal x = mouse->pos().x(); qreal y = mouse->pos().y(); @@ -152,4 +151,3 @@ void MaskedContainer::mouseReleaseEvent(MouseEvent *mouse) { MaskedContainer::~MaskedContainer() { delete[] mask_; } - diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h b/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h index 0048bdda2a..ae5303a693 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/masked_container.h @@ -41,11 +41,11 @@ #include "qt_version.h" #if QT_4 -# include <QtDeclarative/QDeclarativeItem> +#include <QtDeclarative/QDeclarativeItem> typedef QDeclarativeItem Item; typedef QGraphicsSceneMouseEvent MouseEvent; #elif QT_5 -# include <QtQuick/QQuickItem> +#include <QtQuick/QQuickItem> typedef QQuickItem Item; typedef QMouseEvent MouseEvent; #endif @@ -57,21 +57,21 @@ class MaskedContainer : public Item { Q_DISABLE_COPY(MaskedContainer) public: - explicit MaskedContainer(Item *parent = 0); + explicit MaskedContainer(Item* parent = 0); ~MaskedContainer(); - signals: - void pressed(AttributedMouseEvent *attr); - void released(AttributedMouseEvent *attr); +signals: + void pressed(AttributedMouseEvent* attr); + void released(AttributedMouseEvent* attr); protected: virtual void componentComplete(); - virtual void mousePressEvent(MouseEvent *event); - virtual void mouseReleaseEvent(MouseEvent *event); + virtual void mousePressEvent(MouseEvent* event); + virtual void mouseReleaseEvent(MouseEvent* event); private: std::vector<Item*> images_; - int *mask_; + int* mask_; #if QT_4 int indexOfMask(qreal x, qreal y) const { diff --git a/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h b/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h index fb2751504d..a700a87919 100644 --- a/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h +++ b/src/components/qt_hmi/qml_plugins/hw_buttons/qt_version.h @@ -37,11 +37,12 @@ #include <qglobal.h> -#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) +#define QT_4 \ + ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) -#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) +#define QT_5 \ + ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_HW_BUTTONS_QT_VERSION_H_ - diff --git a/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc b/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc index da863e2e26..8b7efe23d7 100644 --- a/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc +++ b/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.cc @@ -37,58 +37,58 @@ #include <log4cxx/log4cxx.h> #include <log4cxx/propertyconfigurator.h> -log4cxx::LoggerPtr logger_ = log4cxx::LoggerPtr( - log4cxx::Logger::getLogger("Log4cxxPlugin")); +log4cxx::LoggerPtr logger_ = + log4cxx::LoggerPtr(log4cxx::Logger::getLogger("Log4cxxPlugin")); #if QT_4 -void smartLogger(QtMsgType type, const char *msg) { +void smartLogger(QtMsgType type, const char* msg) { log4cxx::spi::LocationInfo location("", "", -1); switch (type) { - case QtDebugMsg: - (*logger_).debug(msg, location); - break; - case QtWarningMsg: - (*logger_).warn(msg, location); - break; - case QtCriticalMsg: - (*logger_).error(msg, location); - break; - case QtFatalMsg: - (*logger_).fatal(msg, location); - break; - default: - (*logger_).info(msg, location); - break; + case QtDebugMsg: + (*logger_).debug(msg, location); + break; + case QtWarningMsg: + (*logger_).warn(msg, location); + break; + case QtCriticalMsg: + (*logger_).error(msg, location); + break; + case QtFatalMsg: + (*logger_).fatal(msg, location); + break; + default: + (*logger_).info(msg, location); + break; } } #elif QT_5 -void smartLogger(QtMsgType type, const QMessageLogContext &context, - const QString &msg) { - log4cxx::spi::LocationInfo location(context.file, - context.function ? context.function : "", - context.line); +void smartLogger(QtMsgType type, + const QMessageLogContext& context, + const QString& msg) { + log4cxx::spi::LocationInfo location( + context.file, context.function ? context.function : "", context.line); switch (type) { - case QtDebugMsg: - (*logger_).debug(msg.toStdString(), location); - break; - case QtWarningMsg: - (*logger_).warn(msg.toStdString(), location); - break; - case QtCriticalMsg: - (*logger_).error(msg.toStdString(), location); - break; - case QtFatalMsg: - (*logger_).fatal(msg.toStdString(), location); - break; - default: - (*logger_).info(msg.toStdString(), location); - break; + case QtDebugMsg: + (*logger_).debug(msg.toStdString(), location); + break; + case QtWarningMsg: + (*logger_).warn(msg.toStdString(), location); + break; + case QtCriticalMsg: + (*logger_).error(msg.toStdString(), location); + break; + case QtFatalMsg: + (*logger_).fatal(msg.toStdString(), location); + break; + default: + (*logger_).info(msg.toStdString(), location); + break; } } #endif // QT_VERSION -void Log4cxxPlugin::registerTypes(const char *uri) { +void Log4cxxPlugin::registerTypes(const char* uri) { log4cxx::PropertyConfigurator::configure("log4cxx.properties"); #if QT_4 diff --git a/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h b/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h index fc82352f0c..e8d1ff3347 100644 --- a/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h +++ b/src/components/qt_hmi/qml_plugins/log4cxx/log4cxx_plugin.h @@ -37,19 +37,21 @@ #include <qglobal.h> -#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) +#define QT_4 \ + ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) -#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) +#define QT_5 \ + ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) #if QT_4 -# include <QtDeclarative/qdeclarative.h> -# include <QtDeclarative/QDeclarativeExtensionPlugin> +#include <QtDeclarative/qdeclarative.h> +#include <QtDeclarative/QDeclarativeExtensionPlugin> typedef QDeclarativeExtensionPlugin ExtensionPlugin; #elif QT_5 -# include <QtQml/qqml.h> -# include <QtQml/QQmlExtensionPlugin> +#include <QtQml/qqml.h> +#include <QtQml/QQmlExtensionPlugin> typedef QQmlExtensionPlugin ExtensionPlugin; #endif // QT_VERSION @@ -58,7 +60,7 @@ class Logger : public QObject { Q_DISABLE_COPY(Logger) public: - explicit Logger(QObject *parent = 0) : QObject(parent) {} + explicit Logger(QObject* parent = 0) : QObject(parent) {} }; class Log4cxxPlugin : public ExtensionPlugin { @@ -68,10 +70,9 @@ class Log4cxxPlugin : public ExtensionPlugin { #endif // QT_5 public: - void registerTypes(const char *uri); + void registerTypes(const char* uri); }; QML_DECLARE_TYPE(Logger) #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_LOG4CXX_LOG4CXX_PLUGIN_H_ - diff --git a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc index f51db76b99..46b057dcca 100644 --- a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc +++ b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.cc @@ -41,10 +41,11 @@ void NamedPipeNotifier::run() { int fd = ::open(name_.toLocal8Bit().constData(), O_RDONLY); - if (-1 == fd) { // if open() fails + if (-1 == fd) { // if open() fails if ((errno != ENOENT) // we can only manage lack of pipe - || (-1 == ::mkfifo(name_.toLocal8Bit().constData(), 0666)) - || (-1 == (fd = ::open(name_.toLocal8Bit().constData(), O_RDONLY)))) { + || + (-1 == ::mkfifo(name_.toLocal8Bit().constData(), 0666)) || + (-1 == (fd = ::open(name_.toLocal8Bit().constData(), O_RDONLY)))) { emit openFailed(); return; } @@ -52,7 +53,7 @@ void NamedPipeNotifier::run() { ::fd_set readfds; FD_ZERO(&readfds); FD_SET(fd, &readfds); -// this select() is supposed to block till pipe is empty + // this select() is supposed to block till pipe is empty if (::select(fd + 1, &readfds, 0, 0, 0) > 0) { emit readyRead(); } diff --git a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h index 993bb3cb31..cdca06466f 100644 --- a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h +++ b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier.h @@ -45,7 +45,9 @@ class NamedPipeNotifier : public QThread { public: explicit NamedPipeNotifier(QObject* parent = 0) : QThread(parent) {} - const QString& name() const { return name_; } + const QString& name() const { + return name_; + } void set_name(const QString& name) { if (name_ != name) { name_ = name; @@ -56,7 +58,7 @@ class NamedPipeNotifier : public QThread { protected: virtual void run(); - signals: +signals: void nameChanged(); void readyRead(); void openFailed(); diff --git a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc index 8aa2b4cf76..dacb11ad93 100644 --- a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc +++ b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.cc @@ -35,16 +35,16 @@ #include "named_pipe_notifier_plugin.h" #if QT_4 -# include <QtDeclarative/qdeclarative.h> +#include <QtDeclarative/qdeclarative.h> #elif QT_5 -# include <QtQml/qqml.h> +#include <QtQml/qqml.h> #endif // QT_VERSION #include "named_pipe_notifier.h" void NamedPipeNotifierPlugin::registerTypes(const char* uri) { - // @uri com.ford.sdl.hmi.named_pipe_notifier - qmlRegisterType<NamedPipeNotifier>(uri, 1, 0, "NamedPipeNotifier"); + // @uri com.ford.sdl.hmi.named_pipe_notifier + qmlRegisterType<NamedPipeNotifier>(uri, 1, 0, "NamedPipeNotifier"); } #if QT_4 diff --git a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h index 6c64d531ac..426df483a2 100644 --- a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h +++ b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/named_pipe_notifier_plugin.h @@ -38,10 +38,10 @@ #include "qt_version.h" #if QT_4 -# include <QtDeclarative/QDeclarativeExtensionPlugin> +#include <QtDeclarative/QDeclarativeExtensionPlugin> typedef QDeclarativeExtensionPlugin ExtensionPlugin; #elif QT_5 -# include <QtQml/QQmlExtensionPlugin> +#include <QtQml/QQmlExtensionPlugin> typedef QQmlExtensionPlugin ExtensionPlugin; #endif // QT_5 diff --git a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h index 91533346c0..0e2456d732 100644 --- a/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h +++ b/src/components/qt_hmi/qml_plugins/named_pipe_notifier/qt_version.h @@ -37,11 +37,12 @@ #include <qglobal.h> -#define QT_4 ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) +#define QT_4 \ + ((QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))) -#define QT_5 ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ - (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) +#define QT_5 \ + ((QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) && \ + (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))) #endif // SRC_COMPONENTS_QT_HMI_QML_PLUGINS_NAMED_PIPE_NOTIFIER_QT_VERSION_H_ - diff --git a/src/components/resumption/src/last_state.cc b/src/components/resumption/src/last_state.cc index 07bcc0d2a5..c1b8534bfc 100644 --- a/src/components/resumption/src/last_state.cc +++ b/src/components/resumption/src/last_state.cc @@ -40,8 +40,8 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "Resumption") LastState::LastState(const std::string& app_storage_folder, const std::string& app_info_storage) - : app_storage_folder_(app_storage_folder), - app_info_storage_(app_info_storage) { + : app_storage_folder_(app_storage_folder) + , app_info_storage_(app_info_storage) { LoadFromFileSystem(); LOG4CXX_AUTO_TRACE(logger_); } @@ -54,14 +54,12 @@ LastState::~LastState() { void LastState::SaveToFileSystem() { LOG4CXX_AUTO_TRACE(logger_); const std::string& str = dictionary.toStyledString(); - const std::vector<uint8_t> char_vector_pdata( - str.begin(), str.end()); + const std::vector<uint8_t> char_vector_pdata(str.begin(), str.end()); DCHECK(file_system::CreateDirectoryRecursively(app_storage_folder_)); - LOG4CXX_INFO(logger_, "LastState::SaveToFileSystem " - << app_info_storage_ << str); + LOG4CXX_INFO(logger_, + "LastState::SaveToFileSystem " << app_info_storage_ << str); DCHECK(file_system::Write(app_info_storage_, char_vector_pdata)); - } void LastState::LoadFromFileSystem() { @@ -69,12 +67,11 @@ void LastState::LoadFromFileSystem() { bool result = file_system::ReadFile(app_info_storage_, buffer); Json::Reader m_reader; if (result && m_reader.parse(buffer, dictionary)) { - LOG4CXX_INFO(logger_, "Valid last state was found." - << dictionary.toStyledString()); + LOG4CXX_INFO(logger_, + "Valid last state was found." << dictionary.toStyledString()); return; } LOG4CXX_WARN(logger_, "No valid last state was found."); } - -} // resumption +} // resumption diff --git a/src/components/rpc_base/include/rpc_base/gtest_support.h b/src/components/rpc_base/include/rpc_base/gtest_support.h index daea5d3884..04ad1219b5 100644 --- a/src/components/rpc_base/include/rpc_base/gtest_support.h +++ b/src/components/rpc_base/include/rpc_base/gtest_support.h @@ -39,9 +39,9 @@ // A predicate-formatter for asserting that intergen generated // object is valid -template<typename T> +template <typename T> ::testing::AssertionResult AssertRpcObjValid(const char* obj_expr, - const T& obj) { + const T& obj) { if (obj.is_valid()) return ::testing::AssertionSuccess(); @@ -49,8 +49,8 @@ template<typename T> obj.ReportErrors(&report); return ::testing::AssertionFailure() - << obj_expr << " failed validation. Violations are:\n" - << rpc::PrettyFormat(report); + << obj_expr << " failed validation. Violations are:\n" + << rpc::PrettyFormat(report); } #define ASSERT_RPCTYPE_VALID(object) \ diff --git a/src/components/rpc_base/include/rpc_base/rpc_base.h b/src/components/rpc_base/include/rpc_base/rpc_base.h index da0a7f2388..883c2ec4bf 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base.h @@ -52,47 +52,58 @@ class ValidationReport; namespace policy_table_interface_base { - enum PolicyTableType { - INVALID_PT_TYPE = -1, - PT_PRELOADED, - PT_UPDATE, - PT_SNAPSHOT - }; - const std::string ommited_validation_info = "should be ommited in "; - const std::string required_validation_info = "is required in "; - - std::string PolicyTableTypeToString(const PolicyTableType pt_type); - +enum PolicyTableType { + INVALID_PT_TYPE = -1, + PT_PRELOADED, + PT_UPDATE, + PT_SNAPSHOT +}; +const std::string ommited_validation_info = "should be ommited in "; +const std::string required_validation_info = "is required in "; +std::string PolicyTableTypeToString(const PolicyTableType pt_type); } -template<typename T> class Range; +template <typename T> +class Range; class PrimitiveType; class CompositeType; class Boolean; -template<typename T, T minval, T maxval> class Integer; -template<int64_t minnum, int64_t maxnum, - int64_t minden = 1, int64_t maxden = 1> class Float; -template<size_t minlen, size_t maxlen> class String; -template<typename T> class Enum; -template<typename T, size_t minsize, size_t maxsize> class Array; -template<typename T, size_t minsize, size_t maxsize> class Map; -template<typename T> class Nullable; -template<typename T> class Optional; -template<typename T> class Stringifyable; - -template<typename T> +template <typename T, T minval, T maxval> +class Integer; +template <int64_t minnum, + int64_t maxnum, + int64_t minden = 1, + int64_t maxden = 1> +class Float; +template <size_t minlen, size_t maxlen> +class String; +template <typename T> +class Enum; +template <typename T, size_t minsize, size_t maxsize> +class Array; +template <typename T, size_t minsize, size_t maxsize> +class Map; +template <typename T> +class Nullable; +template <typename T> +class Optional; +template <typename T> +class Stringifyable; + +template <typename T> class Range { - public: - // Methods - Range(const T min, const T max); - T min() const; - T max() const; - template<typename U> - bool Includes(U val) const; - private: - T min_; - T max_; + public: + // Methods + Range(const T min, const T max); + T min() const; + T max() const; + template <typename U> + bool Includes(U val) const; + + private: + T min_; + T max_; }; /* @@ -100,316 +111,326 @@ class Range { * tell whether descendant object was initialized */ class PrimitiveType { - public: - bool is_initialized() const; - bool is_valid() const; - void ReportErrors(ValidationReport* report) const; - policy_table_interface_base::PolicyTableType GetPolicyTableType() const; - virtual void SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type); - - protected: - enum ValueState { - kUninitialized, - kInvalid, - kValid - }; - explicit PrimitiveType(ValueState value_state); - static ValueState InitHelper(bool is_next); - static ValueState InitHelper(const Json::Value* value, - bool (Json::Value::*type_check)() const); - - protected: - ValueState value_state_; - policy_table_interface_base::PolicyTableType policy_table_type_; + public: + bool is_initialized() const; + bool is_valid() const; + void ReportErrors(ValidationReport* report) const; + policy_table_interface_base::PolicyTableType GetPolicyTableType() const; + virtual void SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type); + + protected: + enum ValueState { kUninitialized, kInvalid, kValid }; + explicit PrimitiveType(ValueState value_state); + static ValueState InitHelper(bool is_next); + static ValueState InitHelper(const Json::Value* value, + bool (Json::Value::*type_check)() const); + + protected: + ValueState value_state_; + policy_table_interface_base::PolicyTableType policy_table_type_; }; /* * Base class for all composite types (arrays and all user-defined types) */ class CompositeType { - public: - void mark_initialized(); - void ReportErrors(ValidationReport* report) const; - policy_table_interface_base::PolicyTableType GetPolicyTableType() const; - virtual void SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type); - - protected: - enum InitializationState { - kUninitialized, - kInitialized, - kInvalidInitialized - }; - explicit CompositeType(InitializationState init_state); - virtual ~CompositeType(){} - static InitializationState InitHelper(bool is_next); - static InitializationState InitHelper(const Json::Value* value, - bool (Json::Value::*type_check)() const); - protected: - mutable InitializationState initialization_state__; - policy_table_interface_base::PolicyTableType policy_table_type_; - + public: + void mark_initialized(); + void ReportErrors(ValidationReport* report) const; + policy_table_interface_base::PolicyTableType GetPolicyTableType() const; + virtual void SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type); + + protected: + enum InitializationState { + kUninitialized, + kInitialized, + kInvalidInitialized + }; + explicit CompositeType(InitializationState init_state); + virtual ~CompositeType() {} + static InitializationState InitHelper(bool is_next); + static InitializationState InitHelper(const Json::Value* value, + bool (Json::Value::*type_check)() + const); + + protected: + mutable InitializationState initialization_state__; + policy_table_interface_base::PolicyTableType policy_table_type_; }; /* * Class that holds primitive boolean value. It is always valid. */ class Boolean : public PrimitiveType { - public: - // Types - typedef bool ValueType; - public: - // Methods - Boolean(); - explicit Boolean(bool value); - explicit Boolean(const Json::Value* value); - explicit Boolean(dbus::MessageReader* reader); - Boolean(const Json::Value* value, bool def_value); - Boolean& operator=(bool new_val); - operator bool() const; - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - private: - // Fields - ValueType value_; + public: + // Types + typedef bool ValueType; + + public: + // Methods + Boolean(); + explicit Boolean(bool value); + explicit Boolean(const Json::Value* value); + explicit Boolean(dbus::MessageReader* reader); + Boolean(const Json::Value* value, bool def_value); + Boolean& operator=(bool new_val); + operator bool() const; + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + private: + // Fields + ValueType value_; }; -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> class Integer : public PrimitiveType { - public: - // Types - typedef T IntType; - public: - // Methods - Integer(); - explicit Integer(IntType value); - Integer(const Integer& value); - explicit Integer(const Json::Value* value); - explicit Integer(dbus::MessageReader* reader); - Integer(const Json::Value* value, IntType def_value); - Integer& operator=(IntType new_val); - Integer& operator=(const Integer& new_val); - Integer& operator++(); - Integer& operator+=(int value); - operator IntType() const; - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - private: - IntType value_; - static const Range<T> range_; + public: + // Types + typedef T IntType; + + public: + // Methods + Integer(); + explicit Integer(IntType value); + Integer(const Integer& value); + explicit Integer(const Json::Value* value); + explicit Integer(dbus::MessageReader* reader); + Integer(const Json::Value* value, IntType def_value); + Integer& operator=(IntType new_val); + Integer& operator=(const Integer& new_val); + Integer& operator++(); + Integer& operator+=(int value); + operator IntType() const; + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + private: + IntType value_; + static const Range<T> range_; }; -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> class Float : public PrimitiveType { - public: - // Methods - Float(); - explicit Float(double value); - explicit Float(const Json::Value* value); - explicit Float(dbus::MessageReader* reader); - Float(const Json::Value* value, double def_value); - Float& operator=(double new_val); - operator double() const; - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - private: - double value_; - static const Range<double> range_; + public: + // Methods + Float(); + explicit Float(double value); + explicit Float(const Json::Value* value); + explicit Float(dbus::MessageReader* reader); + Float(const Json::Value* value, double def_value); + Float& operator=(double new_val); + operator double() const; + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + private: + double value_; + static const Range<double> range_; }; -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> class String : public PrimitiveType { - public: - // Methods - String(); - explicit String(const std::string& value); - explicit String(const char* value); - explicit String(const Json::Value* value); - explicit String(dbus::MessageReader* reader); - String(const Json::Value* value, const std::string& def_value); - bool operator<(const String& new_val) const; - String& operator=(const std::string& new_val); - String& operator=(const String& new_val); - bool operator==(const String& rhs) const; - operator const std::string& () const; - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - private: - std::string value_; - static const Range<size_t> length_range_; + public: + // Methods + String(); + explicit String(const std::string& value); + explicit String(const char* value); + explicit String(const Json::Value* value); + explicit String(dbus::MessageReader* reader); + String(const Json::Value* value, const std::string& def_value); + bool operator<(const String& new_val) const; + String& operator=(const std::string& new_val); + String& operator=(const String& new_val); + bool operator==(const String& rhs) const; + operator const std::string&() const; + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + private: + std::string value_; + static const Range<size_t> length_range_; }; -template<typename T> +template <typename T> class Enum : public PrimitiveType { - public: - // Types - typedef T EnumType; - public: - // Methods - Enum(); - explicit Enum(EnumType value); - explicit Enum(const Json::Value* value); - explicit Enum(dbus::MessageReader* reader); - Enum(const Json::Value* value, EnumType def_value); - Enum& operator=(const EnumType& new_val); - operator EnumType() const; - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - private: - // Fields - EnumType value_; + public: + // Types + typedef T EnumType; + + public: + // Methods + Enum(); + explicit Enum(EnumType value); + explicit Enum(const Json::Value* value); + explicit Enum(dbus::MessageReader* reader); + Enum(const Json::Value* value, EnumType def_value); + Enum& operator=(const EnumType& new_val); + operator EnumType() const; + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + private: + // Fields + EnumType value_; }; -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> class Array : public std::vector<T>, public CompositeType { - public: - // Types - typedef std::vector<T> ArrayType; - public: - // Methods - Array(); - // Need const and non-const versions to beat all-type accepting constructor - explicit Array(Json::Value* value); - explicit Array(const Json::Value* value); - explicit Array(dbus::MessageReader* reader); - template<typename U> - explicit Array(const U& value); - template<typename U> - Array& operator=(const U& that); - using ArrayType::push_back; - template<typename U> - void push_back(const U& value); - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - bool is_valid() const; - bool is_initialized() const; - void ReportErrors(ValidationReport* report) const; - virtual void SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type); + public: + // Types + typedef std::vector<T> ArrayType; + + public: + // Methods + Array(); + // Need const and non-const versions to beat all-type accepting constructor + explicit Array(Json::Value* value); + explicit Array(const Json::Value* value); + explicit Array(dbus::MessageReader* reader); + template <typename U> + explicit Array(const U& value); + template <typename U> + Array& operator=(const U& that); + using ArrayType::push_back; + template <typename U> + void push_back(const U& value); + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + bool is_valid() const; + bool is_initialized() const; + void ReportErrors(ValidationReport* report) const; + virtual void SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type); }; -template<typename T, size_t minsize, size_t maxsize> -class Map : public std::map<std::string, T>, public CompositeType { - public: - // Types - typedef Map<T, minsize, maxsize> Frankenbase; - typedef std::map<std::string, T> MapType; - public: - // Methods - Map(); - // Need const and non-const versions to beat all-type accepting constructor - explicit Map(Json::Value* value); - explicit Map(const Json::Value* value); - explicit Map(dbus::MessageReader* reader); - template<typename U> - explicit Map(const U& value); - template<typename U> - Map& operator=(const U& that); - using MapType::insert; - template<typename U> - void insert(const std::pair<std::string, U>& value); - Json::Value ToJsonValue() const; - void ToDbusWriter(dbus::MessageWriter* writer) const; - - bool is_valid() const; - bool is_initialized() const; - void ReportErrors(ValidationReport* report) const; - virtual void SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type); +template <typename T, size_t minsize, size_t maxsize> +class Map : public std::map<std::string, T>, public CompositeType { + public: + // Types + typedef Map<T, minsize, maxsize> Frankenbase; + typedef std::map<std::string, T> MapType; + + public: + // Methods + Map(); + // Need const and non-const versions to beat all-type accepting constructor + explicit Map(Json::Value* value); + explicit Map(const Json::Value* value); + explicit Map(dbus::MessageReader* reader); + template <typename U> + explicit Map(const U& value); + template <typename U> + Map& operator=(const U& that); + using MapType::insert; + template <typename U> + void insert(const std::pair<std::string, U>& value); + Json::Value ToJsonValue() const; + void ToDbusWriter(dbus::MessageWriter* writer) const; + + bool is_valid() const; + bool is_initialized() const; + void ReportErrors(ValidationReport* report) const; + virtual void SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type); }; -template<typename T> +template <typename T> class Nullable : public T { - public: - // Methods - Nullable(); - explicit Nullable(dbus::MessageReader* reader); - // Need const and non-const versions to beat all-type accepting constructor - explicit Nullable(Json::Value* value); - explicit Nullable(const Json::Value* value); - template<typename U> - explicit Nullable(const U& value); - template<typename U> - Nullable(const Json::Value* value, const U& def_value); - template<typename U> - Nullable& operator=(const U& new_val); - Json::Value ToJsonValue() const; - - bool is_valid() const; - bool is_initialized() const; - bool is_null() const; - void set_to_null(); - void ReportErrors(ValidationReport* report) const; - private: - bool marked_null_; + public: + // Methods + Nullable(); + explicit Nullable(dbus::MessageReader* reader); + // Need const and non-const versions to beat all-type accepting constructor + explicit Nullable(Json::Value* value); + explicit Nullable(const Json::Value* value); + template <typename U> + explicit Nullable(const U& value); + template <typename U> + Nullable(const Json::Value* value, const U& def_value); + template <typename U> + Nullable& operator=(const U& new_val); + Json::Value ToJsonValue() const; + + bool is_valid() const; + bool is_initialized() const; + bool is_null() const; + void set_to_null(); + void ReportErrors(ValidationReport* report) const; + + private: + bool marked_null_; }; -template<typename T> +template <typename T> class Stringifyable : public T { - public: - // Methods - Stringifyable(); - explicit Stringifyable(dbus::MessageReader* reader); - // Need const and non-const versions to beat all-type accepting constructor - explicit Stringifyable(Json::Value* value); - explicit Stringifyable(const Json::Value* value); - template<typename U> - explicit Stringifyable(const U& value); - template<typename U> - Stringifyable(const Json::Value* value, const U& def_value); - template<typename U> - Stringifyable& operator=(const U& new_val); - Json::Value ToJsonValue() const; - - bool is_valid() const; - bool is_initialized() const; - bool is_string() const; - std::string get_string() const; - void set_to_string(const std::string& input); - void ReportErrors(ValidationReport* report) const; - private: - std::string predefined_string_; + public: + // Methods + Stringifyable(); + explicit Stringifyable(dbus::MessageReader* reader); + // Need const and non-const versions to beat all-type accepting constructor + explicit Stringifyable(Json::Value* value); + explicit Stringifyable(const Json::Value* value); + template <typename U> + explicit Stringifyable(const U& value); + template <typename U> + Stringifyable(const Json::Value* value, const U& def_value); + template <typename U> + Stringifyable& operator=(const U& new_val); + Json::Value ToJsonValue() const; + + bool is_valid() const; + bool is_initialized() const; + bool is_string() const; + std::string get_string() const; + void set_to_string(const std::string& input); + void ReportErrors(ValidationReport* report) const; + + private: + std::string predefined_string_; }; -template<typename T> +template <typename T> class Optional { - public: - // Methods - Optional(); - explicit Optional(dbus::MessageReader* reader); - template<typename U> - explicit Optional(const U& value); - template<typename U> - Optional(const Json::Value* value, const U& def_value); - Json::Value ToJsonValue() const; - - void ToDbusWriter(dbus::MessageWriter* writer) const; - - // Pointer semantics - T& operator*(); - const T& operator*() const; - T* operator->(); - const T* operator->() const; - - void assign_if_valid(const Optional<T>& value); - // For pointer-like 'if (optional_value)' tests - // Better than operator bool because bool can be implicitly - // casted to integral types - operator const void* () const; - - bool is_valid() const; - bool is_initialized() const; - void ReportErrors(ValidationReport* report) const; - policy_table_interface_base::PolicyTableType GetPolicyTableType() const; - virtual void SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type); - - protected: - policy_table_interface_base::PolicyTableType policy_table_type_; - private: - T value_; + public: + // Methods + Optional(); + explicit Optional(dbus::MessageReader* reader); + template <typename U> + explicit Optional(const U& value); + template <typename U> + Optional(const Json::Value* value, const U& def_value); + Json::Value ToJsonValue() const; + + void ToDbusWriter(dbus::MessageWriter* writer) const; + + // Pointer semantics + T& operator*(); + const T& operator*() const; + T* operator->(); + const T* operator->() const; + + void assign_if_valid(const Optional<T>& value); + // For pointer-like 'if (optional_value)' tests + // Better than operator bool because bool can be implicitly + // casted to integral types + operator const void*() const; + + bool is_valid() const; + bool is_initialized() const; + void ReportErrors(ValidationReport* report) const; + policy_table_interface_base::PolicyTableType GetPolicyTableType() const; + virtual void SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type); + + protected: + policy_table_interface_base::PolicyTableType policy_table_type_; + + private: + T value_; }; } // namespace rpc diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h index 5f9c45a060..2b968dd034 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base_dbus_inl.h @@ -45,28 +45,32 @@ inline PrimitiveType::ValueState PrimitiveType::InitHelper(bool is_next) { } // static -inline CompositeType::InitializationState CompositeType::InitHelper(bool is_next) { +inline CompositeType::InitializationState CompositeType::InitHelper( + bool is_next) { return is_next ? kInitialized : kUninitialized; } namespace impl { - // Helper functions to statically map int types to appropriate // MessageReader functions // Non-specialized versions doesn't have implementation // Tells if next element of reader is of type T -template<typename T> inline bool NextIs(const dbus::MessageReader& reader); +template <typename T> +inline bool NextIs(const dbus::MessageReader& reader); // Takes next element of type T from reader -template<typename T> inline T Take(dbus::MessageReader* reader); +template <typename T> +inline T Take(dbus::MessageReader* reader); -template<> inline bool NextIs<int8_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<int8_t>(const dbus::MessageReader& reader) { return reader.NextIsByte(); } -template<> inline int8_t Take<int8_t>(dbus::MessageReader* reader) { +template <> +inline int8_t Take<int8_t>(dbus::MessageReader* reader) { return static_cast<int8_t>(reader->TakeByte()); } @@ -74,11 +78,13 @@ inline void Put(int8_t val, dbus::MessageWriter* writer) { writer->PutByte(static_cast<uint8_t>(val)); } -template<> inline bool NextIs<uint8_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<uint8_t>(const dbus::MessageReader& reader) { return reader.NextIsByte(); } -template<> inline uint8_t Take<uint8_t>(dbus::MessageReader* reader) { +template <> +inline uint8_t Take<uint8_t>(dbus::MessageReader* reader) { return reader->TakeByte(); } @@ -86,11 +92,13 @@ inline void Put(uint8_t val, dbus::MessageWriter* writer) { writer->PutByte(val); } -template<> inline bool NextIs<int16_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<int16_t>(const dbus::MessageReader& reader) { return reader.NextIsInt16(); } -template<> inline int16_t Take<int16_t>(dbus::MessageReader* reader) { +template <> +inline int16_t Take<int16_t>(dbus::MessageReader* reader) { return reader->TakeInt16(); } @@ -98,11 +106,13 @@ inline void Put(int16_t val, dbus::MessageWriter* writer) { writer->PutInt16(val); } -template<> inline bool NextIs<uint16_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<uint16_t>(const dbus::MessageReader& reader) { return reader.NextIsUint16(); } -template<> inline uint16_t Take<uint16_t>(dbus::MessageReader* reader) { +template <> +inline uint16_t Take<uint16_t>(dbus::MessageReader* reader) { return reader->TakeUint16(); } @@ -110,11 +120,13 @@ inline void Put(uint16_t val, dbus::MessageWriter* writer) { writer->PutUint16(val); } -template<> inline bool NextIs<int32_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<int32_t>(const dbus::MessageReader& reader) { return reader.NextIsInt32(); } -template<> inline int32_t Take<int32_t>(dbus::MessageReader* reader) { +template <> +inline int32_t Take<int32_t>(dbus::MessageReader* reader) { return reader->TakeInt32(); } @@ -122,11 +134,13 @@ inline void Put(int32_t val, dbus::MessageWriter* writer) { writer->PutInt32(val); } -template<> inline bool NextIs<uint32_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<uint32_t>(const dbus::MessageReader& reader) { return reader.NextIsUint32(); } -template<> inline uint32_t Take<uint32_t>(dbus::MessageReader* reader) { +template <> +inline uint32_t Take<uint32_t>(dbus::MessageReader* reader) { return reader->TakeUint32(); } @@ -134,11 +148,13 @@ inline void Put(uint32_t val, dbus::MessageWriter* writer) { writer->PutUint32(val); } -template<> inline bool NextIs<int64_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<int64_t>(const dbus::MessageReader& reader) { return reader.NextIsInt64(); } -template<> inline int64_t Take<int64_t>(dbus::MessageReader* reader) { +template <> +inline int64_t Take<int64_t>(dbus::MessageReader* reader) { return reader->TakeInt64(); } @@ -146,11 +162,13 @@ inline void Put(int64_t val, dbus::MessageWriter* writer) { writer->PutInt64(val); } -template<> inline bool NextIs<uint64_t>(const dbus::MessageReader& reader) { +template <> +inline bool NextIs<uint64_t>(const dbus::MessageReader& reader) { return reader.NextIsUint64(); } -template<> inline uint64_t Take<uint64_t>(dbus::MessageReader* reader) { +template <> +inline uint64_t Take<uint64_t>(dbus::MessageReader* reader) { return reader->TakeUint64(); } @@ -158,7 +176,8 @@ inline void Put(uint64_t val, dbus::MessageWriter* writer) { writer->PutUint64(val); } -template<> inline std::string Take<std::string>(dbus::MessageReader* reader) { +template <> +inline std::string Take<std::string>(dbus::MessageReader* reader) { return reader->TakeString(); } @@ -167,66 +186,103 @@ inline void Put(const std::string val, dbus::MessageWriter* writer) { } // Type to DBus type id mappers -template<typename T> char DbusTypeCode(); -template<> inline char DbusTypeCode<bool>() { return DBUS_TYPE_BOOLEAN; } +template <typename T> +char DbusTypeCode(); +template <> +inline char DbusTypeCode<bool>() { + return DBUS_TYPE_BOOLEAN; +} // There is no dbus type for signed byte, map to unsigned -template<> inline char DbusTypeCode<int8_t>() { return DBUS_TYPE_BYTE; } -template<> inline char DbusTypeCode<uint8_t>() { return DBUS_TYPE_BYTE; } -template<> inline char DbusTypeCode<int16_t>() { return DBUS_TYPE_INT16; } -template<> inline char DbusTypeCode<uint16_t>() { return DBUS_TYPE_UINT16; } -template<> inline char DbusTypeCode<int32_t>() { return DBUS_TYPE_INT32; } -template<> inline char DbusTypeCode<uint32_t>() { return DBUS_TYPE_UINT32; } -template<> inline char DbusTypeCode<int64_t>() { return DBUS_TYPE_INT64; } -template<> inline char DbusTypeCode<uint64_t>() { return DBUS_TYPE_UINT64; } -template<> inline char DbusTypeCode<double>() { return DBUS_TYPE_DOUBLE; } -template<> inline char DbusTypeCode<std::string>() { return DBUS_TYPE_STRING; } -template<> inline char DbusTypeCode<const std::string>() { return DBUS_TYPE_STRING; } +template <> +inline char DbusTypeCode<int8_t>() { + return DBUS_TYPE_BYTE; +} +template <> +inline char DbusTypeCode<uint8_t>() { + return DBUS_TYPE_BYTE; +} +template <> +inline char DbusTypeCode<int16_t>() { + return DBUS_TYPE_INT16; +} +template <> +inline char DbusTypeCode<uint16_t>() { + return DBUS_TYPE_UINT16; +} +template <> +inline char DbusTypeCode<int32_t>() { + return DBUS_TYPE_INT32; +} +template <> +inline char DbusTypeCode<uint32_t>() { + return DBUS_TYPE_UINT32; +} +template <> +inline char DbusTypeCode<int64_t>() { + return DBUS_TYPE_INT64; +} +template <> +inline char DbusTypeCode<uint64_t>() { + return DBUS_TYPE_UINT64; +} +template <> +inline char DbusTypeCode<double>() { + return DBUS_TYPE_DOUBLE; +} +template <> +inline char DbusTypeCode<std::string>() { + return DBUS_TYPE_STRING; +} +template <> +inline char DbusTypeCode<const std::string>() { + return DBUS_TYPE_STRING; +} // Non-specialized template supposes there is static // void GetDbusSignature(std::string*) method in T -template<typename T> +template <typename T> struct DbusSignatureHelper { static void DbusSignature(std::string* signature) { T::GetDbusSignature(signature); } }; -template<> +template <> struct DbusSignatureHelper<Boolean> { static void DbusSignature(std::string* signature) { (*signature) += rpc::impl::DbusTypeCode<bool>(); } }; -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> struct DbusSignatureHelper<Integer<T, minval, maxval> > { static void DbusSignature(std::string* signature) { (*signature) += rpc::impl::DbusTypeCode<T>(); } }; -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> struct DbusSignatureHelper<Float<minnum, maxnum, minden, maxden> > { static void DbusSignature(std::string* signature) { (*signature) += rpc::impl::DbusTypeCode<double>(); } }; -template<typename T> +template <typename T> struct DbusSignatureHelper<Enum<T> > { static void DbusSignature(std::string* signature) { (*signature) += rpc::impl::DbusTypeCode<int32_t>(); } }; -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> struct DbusSignatureHelper<String<minlen, maxlen> > { static void DbusSignature(std::string* signature) { (*signature) += rpc::impl::DbusTypeCode<std::string>(); } }; -template<typename K, typename V> +template <typename K, typename V> struct DbusSignatureHelper<std::pair<K, V> > { static void DbusSignature(std::string* signature) { (*signature) += DBUS_DICT_ENTRY_BEGIN_CHAR; @@ -236,7 +292,7 @@ struct DbusSignatureHelper<std::pair<K, V> > { } }; -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> struct DbusSignatureHelper<Array<T, minsize, maxsize> > { static void DbusSignature(std::string* signature) { (*signature) += DBUS_TYPE_ARRAY; @@ -244,16 +300,16 @@ struct DbusSignatureHelper<Array<T, minsize, maxsize> > { } }; -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> struct DbusSignatureHelper<Map<T, minsize, maxsize> > { static void DbusSignature(std::string* signature) { (*signature) += DBUS_TYPE_ARRAY; - rpc::impl::DbusSignatureHelper< - typename Map<T, minsize, maxsize>::value_type>::DbusSignature(signature); + rpc::impl::DbusSignatureHelper<typename Map<T, minsize, maxsize>:: + value_type>::DbusSignature(signature); } }; -template<typename T> +template <typename T> struct DbusSignatureHelper<Optional<T> > { static void DbusSignature(std::string* signature) { (*signature) += DBUS_STRUCT_BEGIN_CHAR; @@ -263,7 +319,7 @@ struct DbusSignatureHelper<Optional<T> > { } }; -template<typename T> +template <typename T> struct DbusSignatureHelper<Nullable<T> > { static void DbusSignature(std::string* signature) { (*signature) += DBUS_STRUCT_BEGIN_CHAR; @@ -274,7 +330,7 @@ struct DbusSignatureHelper<Nullable<T> > { }; // Helper Optional type initialization functipon -template<typename T> +template <typename T> T TakeOptional(dbus::MessageReader* reader) { dbus::MessageReader struct_reader = reader->TakeStructReader(); bool available = struct_reader.TakeBool(); @@ -283,7 +339,7 @@ T TakeOptional(dbus::MessageReader* reader) { } // Helper Nullable type initialization functipon -template<typename T> +template <typename T> bool TakeNullable(dbus::MessageReader* reader) { dbus::MessageReader struct_reader = reader->TakeStructReader(); bool is_null = struct_reader.TakeBool(); @@ -292,69 +348,67 @@ bool TakeNullable(dbus::MessageReader* reader) { } // namespace impl - // Helper function that outputs dbus signature for type T -template<typename T> +template <typename T> void DbusSignature(std::string* signature) { impl::DbusSignatureHelper<T>::DbusSignature(signature); } // Type constructors inline Boolean::Boolean(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsBool())), - value_(reader->TakeBool()) { -} + : PrimitiveType(InitHelper(reader->NextIsBool())) + , value_(reader->TakeBool()) {} -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> inline Integer<T, minval, maxval>::Integer(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(impl::NextIs<IntType>(*reader))), - value_(impl::Take<IntType>(reader)) { + : PrimitiveType(InitHelper(impl::NextIs<IntType>(*reader))) + , value_(impl::Take<IntType>(reader)) { if (is_valid()) { value_state_ = range_.Includes(value_) ? kValid : kInvalid; } } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> inline Float<minnum, maxnum, minden, maxden>::Float(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsDouble())), - value_(reader->TakeDouble()) { + : PrimitiveType(InitHelper(reader->NextIsDouble())) + , value_(reader->TakeDouble()) { if (is_valid()) { value_state_ = range_.Includes(value_) ? kValid : kInvalid; } } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> inline String<minlen, maxlen>::String(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsString())), - value_(reader->TakeString()) { + : PrimitiveType(InitHelper(reader->NextIsString())) + , value_(reader->TakeString()) { if (is_valid()) { value_state_ = length_range_.Includes(value_.length()) ? kValid : kInvalid; } } -template<typename T> +template <typename T> inline Enum<T>::Enum(dbus::MessageReader* reader) - : PrimitiveType(InitHelper(reader->NextIsInt32())), - value_(EnumType(reader->TakeInt32())) { + : PrimitiveType(InitHelper(reader->NextIsInt32())) + , value_(EnumType(reader->TakeInt32())) { if (is_valid()) { value_state_ = IsValidEnum(value_) ? kValid : kInvalid; } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> inline Array<T, minsize, maxsize>::Array(dbus::MessageReader* reader) : CompositeType(InitHelper(reader->NextIsArray())) { dbus::MessageReader array_reader = reader->TakeArrayReader(); if (array_reader.has_failed()) { push_back(T()); } else { - while(array_reader.HasNext()) { + while (array_reader.HasNext()) { push_back(T(&array_reader)); } } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> inline Map<T, minsize, maxsize>::Map(dbus::MessageReader* reader) : CompositeType(InitHelper(reader->NextIsStruct())) { // Map key-value pairs are serialized into array @@ -362,7 +416,7 @@ inline Map<T, minsize, maxsize>::Map(dbus::MessageReader* reader) if (array_reader.has_failed()) { this->insert(typename MapType::value_type("", T())); } else { - while(array_reader.HasNext()) { + while (array_reader.HasNext()) { dbus::MessageReader dictvalue_reader = array_reader.TakeDictEntryReader(); typename MapType::key_type key = impl::Take<typename MapType::key_type>(&dictvalue_reader); @@ -371,64 +425,62 @@ inline Map<T, minsize, maxsize>::Map(dbus::MessageReader* reader) } } -template<typename T> +template <typename T> inline Nullable<T>::Nullable(dbus::MessageReader* reader) - : T(reader), - marked_null_(impl::TakeNullable<T>(reader)){ -} + : T(reader), marked_null_(impl::TakeNullable<T>(reader)) {} -template<typename T> +template <typename T> inline Optional<T>::Optional(dbus::MessageReader* reader) - : value_(impl::TakeOptional<T>(reader)){ -} + : value_(impl::TakeOptional<T>(reader)) {} // MessageWriter serializers inline void Boolean::ToDbusWriter(dbus::MessageWriter* writer) const { writer->PutBool(value_); } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> inline void Integer<T, minval, maxval>::ToDbusWriter( dbus::MessageWriter* writer) const { impl::Put(value_, writer); } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> inline void Float<minnum, maxnum, minden, maxden>::ToDbusWriter( dbus::MessageWriter* writer) const { writer->PutDouble(value_); } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> inline void String<minlen, maxlen>::ToDbusWriter( dbus::MessageWriter* writer) const { writer->PutString(value_); } -template<typename T> +template <typename T> inline void Enum<T>::ToDbusWriter(dbus::MessageWriter* writer) const { writer->PutInt32(static_cast<int32_t>(value_)); } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> inline void Array<T, minsize, maxsize>::ToDbusWriter( dbus::MessageWriter* writer) const { std::string array_signature; DbusSignature<typename ArrayType::value_type>(&array_signature); - dbus::MessageWriter array_writer(writer, dbus::kArray, - array_signature.c_str()); - for (typename ArrayType::const_iterator i = this->begin(); i != this->end(); ++i) { + dbus::MessageWriter array_writer( + writer, dbus::kArray, array_signature.c_str()); + for (typename ArrayType::const_iterator i = this->begin(); i != this->end(); + ++i) { i->ToDbusWriter(&array_writer); } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> inline void Map<T, minsize, maxsize>::ToDbusWriter( dbus::MessageWriter* writer) const { std::string array_signature; DbusSignature<typename MapType::value_type>(&array_signature); - dbus::MessageWriter array_writer(writer, dbus::kArray, - array_signature.c_str()); + dbus::MessageWriter array_writer( + writer, dbus::kArray, array_signature.c_str()); for (typename MapType::const_iterator i = this->begin(); i != this->end(); ++i) { dbus::MessageWriter dictentry_writer(&array_writer, dbus::kDictEntry, NULL); @@ -437,7 +489,7 @@ inline void Map<T, minsize, maxsize>::ToDbusWriter( } } -template<typename T> +template <typename T> inline void Optional<T>::ToDbusWriter(dbus::MessageWriter* writer) const { dbus::MessageWriter struct_writer(writer, dbus::kStruct, NULL); struct_writer.PutBool(value_.is_initialized()); @@ -446,4 +498,4 @@ inline void Optional<T>::ToDbusWriter(dbus::MessageWriter* writer) const { } // namespace rpc -#endif // RPC_BASE_DBUS_INL_H_ +#endif // RPC_BASE_DBUS_INL_H_ diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h index eb374188c3..a9ff484eb0 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base_inl.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base_inl.h @@ -47,9 +47,7 @@ namespace rpc { */ template <typename T> Range<T>::Range(T min, T max) - : min_(min), - max_(max) { -} + : min_(min), max_(max) {} template <typename T> T Range<T>::min() const { @@ -67,14 +65,12 @@ bool Range<T>::Includes(U val) const { return min() <= val && val <= max(); } - /* * PrimitiveType base class */ inline PrimitiveType::PrimitiveType(ValueState value_state) - : value_state_(value_state), - policy_table_type_(policy_table_interface_base::PT_PRELOADED) { -} + : value_state_(value_state) + , policy_table_type_(policy_table_interface_base::PT_PRELOADED) {} inline bool PrimitiveType::is_initialized() const { return value_state_ != kUninitialized; @@ -113,9 +109,8 @@ inline void CompositeType::mark_initialized() { } inline CompositeType::CompositeType(InitializationState init_state) - : initialization_state__(init_state), - policy_table_type_(policy_table_interface_base::PT_PRELOADED) { -} + : initialization_state__(init_state) + , policy_table_type_(policy_table_interface_base::PT_PRELOADED) {} inline void CompositeType::ReportErrors(ValidationReport* report) const { switch (initialization_state__) { @@ -140,14 +135,9 @@ inline void CompositeType::ReportErrors(ValidationReport* report) const { /* * Boolean class */ -inline Boolean::Boolean() - : PrimitiveType(kUninitialized), - value_(false) { -} +inline Boolean::Boolean() : PrimitiveType(kUninitialized), value_(false) {} -inline Boolean::Boolean(bool value) - : PrimitiveType(kValid), value_(value) { -} +inline Boolean::Boolean(bool value) : PrimitiveType(kValid), value_(value) {} inline Boolean& Boolean::operator=(bool new_val) { value_ = new_val; @@ -162,51 +152,50 @@ inline Boolean::operator bool() const { /* * Integer class */ -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> const Range<T> Integer<T, minval, maxval>::range_(minval, maxval); -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::Integer() - : PrimitiveType(kUninitialized), - value_(range_.min()) { -} + : PrimitiveType(kUninitialized), value_(range_.min()) {} -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::Integer(IntType value) - : PrimitiveType(range_.Includes(value) ? kValid : kInvalid), - value_(value) { -} + : PrimitiveType(range_.Includes(value) ? kValid : kInvalid) + , value_(value) {} -template<typename T, T minval, T maxval> -Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(IntType new_val) { +template <typename T, T minval, T maxval> +Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=( + IntType new_val) { value_ = new_val; value_state_ = range_.Includes(value_) ? kValid : kInvalid; return *this; } -template<typename T, T minval, T maxval> -Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=(const Integer& new_val) { +template <typename T, T minval, T maxval> +Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator=( + const Integer& new_val) { this->value_ = new_val.value_; if (new_val.is_initialized()) { - this->value_state_= range_.Includes(new_val.value_) ? kValid : kInvalid; + this->value_state_ = range_.Includes(new_val.value_) ? kValid : kInvalid; } return *this; } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator++() { ++value_; return *this; } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>& Integer<T, minval, maxval>::operator+=(int value) { value_ += value; return *this; } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::operator IntType() const { return value_; } @@ -214,32 +203,28 @@ Integer<T, minval, maxval>::operator IntType() const { /* * Float class */ -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> const Range<double> Float<minnum, maxnum, minden, maxden>::range_( - (double(minnum)/minden), (double(maxnum)/maxden)); + (double(minnum) / minden), (double(maxnum) / maxden)); - -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Float<minnum, maxnum, minden, maxden>::Float() - : PrimitiveType(kUninitialized), - value_(range_.min()) { -} + : PrimitiveType(kUninitialized), value_(range_.min()) {} -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Float<minnum, maxnum, minden, maxden>::Float(double value) - : PrimitiveType(range_.Includes(value) ? kValid : kInvalid), - value_(value) { -} + : PrimitiveType(range_.Includes(value) ? kValid : kInvalid) + , value_(value) {} -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> -Float<minnum, maxnum, minden, maxden>& -Float<minnum, maxnum, minden, maxden>::operator=(double new_val) { +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +Float<minnum, maxnum, minden, maxden>& Float<minnum, maxnum, minden, maxden>:: +operator=(double new_val) { value_ = new_val; value_state_ = range_.Includes(new_val) ? kValid : kInvalid; return *this; } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Float<minnum, maxnum, minden, maxden>::operator double() const { return value_; } @@ -247,42 +232,41 @@ Float<minnum, maxnum, minden, maxden>::operator double() const { /* * String class */ -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> const Range<size_t> String<minlen, maxlen>::length_range_(minlen, maxlen); -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> String<minlen, maxlen>::String() - : PrimitiveType(kUninitialized) { -} + : PrimitiveType(kUninitialized) {} -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> String<minlen, maxlen>::String(const std::string& value) - : PrimitiveType(length_range_.Includes(value.length()) ? kValid : kInvalid), - value_(value) { -} + : PrimitiveType(length_range_.Includes(value.length()) ? kValid : kInvalid) + , value_(value) {} -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> String<minlen, maxlen>::String(const char* value) - : PrimitiveType(kUninitialized), - value_(value) { + : PrimitiveType(kUninitialized), value_(value) { value_state_ = length_range_.Includes(value_.length()) ? kValid : kInvalid; } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> bool String<minlen, maxlen>::operator<(const String& new_val) const { return value_ < new_val.value_; } -template<size_t minlen, size_t maxlen> -String<minlen, maxlen>& String<minlen, maxlen>::operator=(const std::string& new_val) { +template <size_t minlen, size_t maxlen> +String<minlen, maxlen>& String<minlen, maxlen>::operator=( + const std::string& new_val) { value_ = new_val; value_state_ = length_range_.Includes(new_val.length()) ? kValid : kInvalid; return *this; } -template<size_t minlen, size_t maxlen> -String<minlen, maxlen>& String<minlen, maxlen>::operator=(const String& new_val) { - if(*this == new_val) { +template <size_t minlen, size_t maxlen> +String<minlen, maxlen>& String<minlen, maxlen>::operator=( + const String& new_val) { + if (*this == new_val) { return *this; } value_.assign(new_val.value_); @@ -290,12 +274,12 @@ String<minlen, maxlen>& String<minlen, maxlen>::operator=(const String& new_val) return *this; } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> bool String<minlen, maxlen>::operator==(const String& rhs) const { return value_ == rhs.value_; } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> String<minlen, maxlen>::operator const std::string&() const { return value_; } @@ -303,26 +287,22 @@ String<minlen, maxlen>::operator const std::string&() const { /* * Enum class */ -template<typename T> +template <typename T> Enum<T>::Enum() - : PrimitiveType(kUninitialized), - value_(EnumType()) { -} + : PrimitiveType(kUninitialized), value_(EnumType()) {} -template<typename T> +template <typename T> Enum<T>::Enum(EnumType value) - : PrimitiveType(IsValidEnum(value) ? kValid : kInvalid), - value_(value) { -} + : PrimitiveType(IsValidEnum(value) ? kValid : kInvalid), value_(value) {} -template<typename T> +template <typename T> Enum<T>& Enum<T>::operator=(const EnumType& new_val) { value_ = new_val; value_state_ = IsValidEnum(value_) ? kValid : kInvalid; return *this; } -template<typename T> +template <typename T> Enum<T>::operator EnumType() const { return value_; } @@ -330,33 +310,30 @@ Enum<T>::operator EnumType() const { /* * Array class */ -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Array<T, minsize, maxsize>::Array() - : CompositeType(kUninitialized) { -} + : CompositeType(kUninitialized) {} -template<typename T, size_t minsize, size_t maxsize> -template<typename U> +template <typename T, size_t minsize, size_t maxsize> +template <typename U> Array<T, minsize, maxsize>::Array(const U& value) - : ArrayType(value.begin(), value.end()), - CompositeType(kUninitialized) { -} + : ArrayType(value.begin(), value.end()), CompositeType(kUninitialized) {} -template<typename T, size_t minsize, size_t maxsize> -template<typename U> -Array<T, minsize, maxsize>& -Array<T, minsize, maxsize>::operator=(const U& that) { +template <typename T, size_t minsize, size_t maxsize> +template <typename U> +Array<T, minsize, maxsize>& Array<T, minsize, maxsize>::operator=( + const U& that) { this->assign(that.begin(), that.end()); return *this; } -template<typename T, size_t minsize, size_t maxsize> -template<typename U> +template <typename T, size_t minsize, size_t maxsize> +template <typename U> void Array<T, minsize, maxsize>::push_back(const U& value) { ArrayType::push_back(T(value)); } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> bool Array<T, minsize, maxsize>::is_valid() const { // Empty array might be valid only if marked initialized if (this->empty() && (initialization_state__ != kInitialized)) { @@ -367,8 +344,8 @@ bool Array<T, minsize, maxsize>::is_valid() const { return false; } // All array elements must be valid - for (typename ArrayType::const_iterator i = this->begin(); - i != this->end(); ++i) { + for (typename ArrayType::const_iterator i = this->begin(); i != this->end(); + ++i) { if (!i->is_valid()) { return false; } @@ -376,7 +353,7 @@ bool Array<T, minsize, maxsize>::is_valid() const { return true; } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> bool Array<T, minsize, maxsize>::is_initialized() const { // Array that is not empty is initialized for sure if (!this->empty()) { @@ -389,7 +366,7 @@ bool Array<T, minsize, maxsize>::is_initialized() const { return false; } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> void Array<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const { if (this->empty()) { CompositeType::ReportErrors(report); @@ -401,54 +378,50 @@ void Array<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const { } } for (size_t i = 0; i != this->size(); ++i) { - const T& elem = this->operator [](i); + const T& elem = this->operator[](i); if (!elem.is_valid()) { char elem_idx[32] = {}; snprintf(elem_idx, 32, "[%zu]", i); - ValidationReport& elem_report = - report->ReportSubobject(elem_idx); + ValidationReport& elem_report = report->ReportSubobject(elem_idx); elem.ReportErrors(&elem_report); } } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> void Array<T, minsize, maxsize>::SetPolicyTableType( rpc::policy_table_interface_base::PolicyTableType pt_type) { - - for (typename ArrayType::iterator it = this->begin(); - it != this->end(); ++it) { - it->SetPolicyTableType(pt_type); + for (typename ArrayType::iterator it = this->begin(); it != this->end(); + ++it) { + it->SetPolicyTableType(pt_type); } } /* * Map class */ -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Map<T, minsize, maxsize>::Map() - : CompositeType(kUninitialized) { -} + : CompositeType(kUninitialized) {} -template<typename T, size_t minsize, size_t maxsize> -template<typename U> +template <typename T, size_t minsize, size_t maxsize> +template <typename U> Map<T, minsize, maxsize>::Map(const U& value) : CompositeType(kUninitialized) { for (typename U::const_iterator i = value.begin(), e = value.end(); i != e; - ++i) { + ++i) { // Explicitly convert that value to T because all rpc_types have explicit // constructors insert(typename MapType::value_type(i->first, T(i->second))); } } -template<typename T, size_t minsize, size_t maxsize> -template<typename U> -Map<T, minsize, maxsize>& -Map<T, minsize, maxsize>::operator=(const U& that) { +template <typename T, size_t minsize, size_t maxsize> +template <typename U> +Map<T, minsize, maxsize>& Map<T, minsize, maxsize>::operator=(const U& that) { this->clear(); for (typename U::const_iterator i = that.begin(), e = that.end(); i != e; - ++i) { + ++i) { // Explicitly convert that value to T because all rpc_types have explicit // constructors insert(typename MapType::value_type(i->first, T(i->second))); @@ -456,13 +429,13 @@ Map<T, minsize, maxsize>::operator=(const U& that) { return *this; } -template<typename T, size_t minsize, size_t maxsize> -template<typename U> +template <typename T, size_t minsize, size_t maxsize> +template <typename U> void Map<T, minsize, maxsize>::insert(const std::pair<std::string, U>& value) { MapType::insert(typename MapType::value_type(value.first, T(value.second))); } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> bool Map<T, minsize, maxsize>::is_valid() const { // Empty map might be valid only if marked initialized if (this->empty() && (initialization_state__ != kInitialized)) { @@ -473,8 +446,7 @@ bool Map<T, minsize, maxsize>::is_valid() const { return false; } // All map elements must be valid - for (typename Map::const_iterator i = this->begin(); - i != this->end(); ++i) { + for (typename Map::const_iterator i = this->begin(); i != this->end(); ++i) { if (!i->second.is_valid()) { return false; } @@ -482,7 +454,7 @@ bool Map<T, minsize, maxsize>::is_valid() const { return true; } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> bool Map<T, minsize, maxsize>::is_initialized() const { // Map that is not empty is initialized for sure if (!this->empty()) { @@ -495,7 +467,7 @@ bool Map<T, minsize, maxsize>::is_initialized() const { return false; } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> void Map<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const { if (this->empty()) { CompositeType::ReportErrors(report); @@ -506,8 +478,7 @@ void Map<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const { // No error } } - for (typename Map::const_iterator i = this->begin(); - i != this->end(); ++i) { + for (typename Map::const_iterator i = this->begin(); i != this->end(); ++i) { if (!i->second.is_valid()) { std::string elem_name = "[\"" + i->first + "\"]"; ValidationReport& elem_report = report->ReportSubobject(elem_name); @@ -516,11 +487,10 @@ void Map<T, minsize, maxsize>::ReportErrors(ValidationReport* report) const { } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> void Map<T, minsize, maxsize>::SetPolicyTableType( rpc::policy_table_interface_base::PolicyTableType pt_type) { - for (typename Map::iterator it = this->begin(); - it != this->end(); ++it) { + for (typename Map::iterator it = this->begin(); it != this->end(); ++it) { it->second.SetPolicyTableType(pt_type); } } @@ -528,46 +498,43 @@ void Map<T, minsize, maxsize>::SetPolicyTableType( /* * Nullable class */ -template<typename T> +template <typename T> Nullable<T>::Nullable() - : marked_null_(false) { -} + : marked_null_(false) {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Nullable<T>::Nullable(const U& value) - : T(value), - marked_null_(false) { -} + : T(value), marked_null_(false) {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Nullable<T>& Nullable<T>::operator=(const U& new_val) { this->T::operator=(new_val); return *this; } -template<typename T> +template <typename T> bool Nullable<T>::is_valid() const { return is_null() || T::is_valid(); } -template<typename T> +template <typename T> bool Nullable<T>::is_initialized() const { return is_null() || T::is_initialized(); } -template<typename T> +template <typename T> bool Nullable<T>::is_null() const { return marked_null_; } -template<typename T> +template <typename T> void Nullable<T>::set_to_null() { marked_null_ = true; } -template<typename T> +template <typename T> void Nullable<T>::ReportErrors(ValidationReport* report) const { if (marked_null_) { // No error @@ -579,59 +546,57 @@ void Nullable<T>::ReportErrors(ValidationReport* report) const { /* * Optional class */ -template<typename T> -Optional<T>::Optional() { -} +template <typename T> +Optional<T>::Optional() {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Optional<T>::Optional(const U& value) - : value_(value) { -} + : value_(value) {} -template<typename T> +template <typename T> T& Optional<T>::operator*() { return value_; } -template<typename T> +template <typename T> const T& Optional<T>::operator*() const { return value_; } -template<typename T> +template <typename T> T* Optional<T>::operator->() { return &value_; } -template<typename T> +template <typename T> const T* Optional<T>::operator->() const { return &value_; } -template<typename T> +template <typename T> void Optional<T>::assign_if_valid(const Optional<T>& value) { if (value.is_initialized()) { value_ = value.value_; } } -template<typename T> +template <typename T> Optional<T>::operator const void*() const { return is_initialized() ? &value_ : NULL; } -template<typename T> +template <typename T> bool Optional<T>::is_valid() const { return !value_.is_initialized() || value_.is_valid(); } -template<typename T> +template <typename T> bool Optional<T>::is_initialized() const { return value_.is_initialized(); } -template<typename T> +template <typename T> void Optional<T>::ReportErrors(ValidationReport* report) const { if (!is_initialized()) { // No error @@ -639,13 +604,15 @@ void Optional<T>::ReportErrors(ValidationReport* report) const { value_.ReportErrors(report); } } -template<typename T> -inline rpc::policy_table_interface_base::PolicyTableType Optional<T>::GetPolicyTableType() const { +template <typename T> +inline rpc::policy_table_interface_base::PolicyTableType +Optional<T>::GetPolicyTableType() const { return policy_table_type_; } -template<typename T> -void rpc::Optional<T>::SetPolicyTableType(rpc::policy_table_interface_base::PolicyTableType pt_type) { +template <typename T> +void rpc::Optional<T>::SetPolicyTableType( + rpc::policy_table_interface_base::PolicyTableType pt_type) { policy_table_type_ = pt_type; value_.SetPolicyTableType(pt_type); } @@ -653,51 +620,48 @@ void rpc::Optional<T>::SetPolicyTableType(rpc::policy_table_interface_base::Poli /* * Stringifyable class */ -template<typename T> +template <typename T> Stringifyable<T>::Stringifyable() - : predefined_string_("") { -} + : predefined_string_("") {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Stringifyable<T>::Stringifyable(const U& value) - : T(value), - predefined_string_("") { -} + : T(value), predefined_string_("") {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Stringifyable<T>& Stringifyable<T>::operator=(const U& new_val) { this->T::operator=(new_val); return *this; } -template<typename T> +template <typename T> bool Stringifyable<T>::is_valid() const { return is_string() || T::is_valid(); } -template<typename T> +template <typename T> bool Stringifyable<T>::is_initialized() const { return is_string() || T::is_initialized(); } -template<typename T> +template <typename T> bool Stringifyable<T>::is_string() const { return !predefined_string_.empty(); } -template<typename T> +template <typename T> std::string Stringifyable<T>::get_string() const { return predefined_string_; } -template<typename T> +template <typename T> void Stringifyable<T>::set_to_string(const std::string& input) { predefined_string_ = input; } -template<typename T> +template <typename T> void Stringifyable<T>::ReportErrors(ValidationReport* report) const { if (is_string()) { // No error @@ -708,6 +672,4 @@ void Stringifyable<T>::ReportErrors(ValidationReport* report) const { } // namespace rpc - - #endif /* VALIDATED_TYPES_INL_H_ */ diff --git a/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h b/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h index b5fd9a567a..b9fcac4b6a 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h +++ b/src/components/rpc_base/include/rpc_base/rpc_base_json_inl.h @@ -40,8 +40,7 @@ namespace rpc { // static inline PrimitiveType::ValueState PrimitiveType::InitHelper( - const Json::Value* value, - bool (Json::Value::*type_check)() const) { + const Json::Value* value, bool (Json::Value::*type_check)() const) { if (!value) { return kUninitialized; } else if ((value->*type_check)()) { @@ -51,18 +50,19 @@ inline PrimitiveType::ValueState PrimitiveType::InitHelper( } } -inline policy_table_interface_base::PolicyTableType PrimitiveType::GetPolicyTableType() const { +inline policy_table_interface_base::PolicyTableType +PrimitiveType::GetPolicyTableType() const { return policy_table_type_; } -inline void PrimitiveType::SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type) { +inline void PrimitiveType::SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type) { policy_table_type_ = pt_type; } // static inline CompositeType::InitializationState CompositeType::InitHelper( - const Json::Value* value, - bool (Json::Value::*type_check)() const) { + const Json::Value* value, bool (Json::Value::*type_check)() const) { if (!value) { return kUninitialized; } else if ((value->*type_check)()) { @@ -77,11 +77,13 @@ inline CompositeType::InitializationState CompositeType::InitHelper( } } -inline policy_table_interface_base::PolicyTableType CompositeType::GetPolicyTableType() const { +inline policy_table_interface_base::PolicyTableType +CompositeType::GetPolicyTableType() const { return policy_table_type_; } -inline void CompositeType::SetPolicyTableType(policy_table_interface_base::PolicyTableType pt_type) { +inline void CompositeType::SetPolicyTableType( + policy_table_interface_base::PolicyTableType pt_type) { policy_table_type_ = pt_type; } @@ -95,7 +97,7 @@ inline const Json::Value* ValueMember(const Json::Value* value, return NULL; } -template<class T> +template <class T> inline void WriteJsonField(const char* field_name, const T& field, Json::Value* json_value) { @@ -107,13 +109,12 @@ inline void WriteJsonField(const char* field_name, } // namespace impl inline Boolean::Boolean(const Json::Value* value) - : PrimitiveType(InitHelper(value, &Json::Value::isBool)), - value_(is_valid() ? value->asBool() : bool()) { -} + : PrimitiveType(InitHelper(value, &Json::Value::isBool)) + , value_(is_valid() ? value->asBool() : bool()) {} inline Boolean::Boolean(const Json::Value* value, bool def_value) - : PrimitiveType(InitHelper(value, &Json::Value::isBool)), - value_(is_valid() ? value->asBool() : def_value) { + : PrimitiveType(InitHelper(value, &Json::Value::isBool)) + , value_(is_valid() ? value->asBool() : def_value) { // If there is no value, mark it as valid and use def_value if (!is_initialized()) { value_state_ = kValid; @@ -124,10 +125,9 @@ inline Json::Value Boolean::ToJsonValue() const { return Json::Value(value_); } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::Integer(const Json::Value* value) - : PrimitiveType(InitHelper(value, &Json::Value::isInt)), - value_() { + : PrimitiveType(InitHelper(value, &Json::Value::isInt)), value_() { if (is_valid()) { Json::Value::Int64 intval = value->asInt64(); if (range_.Includes(intval)) { @@ -138,16 +138,14 @@ Integer<T, minval, maxval>::Integer(const Json::Value* value) } } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::Integer(const Integer& val) - : PrimitiveType(range_.Includes(val.value_) ? kValid : kInvalid), - value_(val.value_) { -} + : PrimitiveType(range_.Includes(val.value_) ? kValid : kInvalid) + , value_(val.value_) {} -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Integer<T, minval, maxval>::Integer(const Json::Value* value, IntType def_value) - : PrimitiveType(InitHelper(value, &Json::Value::isInt)), - value_(def_value) { + : PrimitiveType(InitHelper(value, &Json::Value::isInt)), value_(def_value) { if (!is_initialized()) { value_state_ = kValid; } else if (is_valid()) { @@ -160,26 +158,25 @@ Integer<T, minval, maxval>::Integer(const Json::Value* value, IntType def_value) } } -template<typename T, T minval, T maxval> +template <typename T, T minval, T maxval> Json::Value Integer<T, minval, maxval>::ToJsonValue() const { return Json::Value(Json::Int64(value_)); } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Float<minnum, maxnum, minden, maxden>::Float(const Json::Value* value) - : PrimitiveType(InitHelper(value, &Json::Value::isDouble)), - value_() { + : PrimitiveType(InitHelper(value, &Json::Value::isDouble)), value_() { if (is_valid()) { value_ = value->asDouble(); value_state_ = range_.Includes(value_) ? kValid : kInvalid; } } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Float<minnum, maxnum, minden, maxden>::Float(const Json::Value* value, - double def_value) - : PrimitiveType(InitHelper(value, &Json::Value::isDouble)), - value_(def_value) { + double def_value) + : PrimitiveType(InitHelper(value, &Json::Value::isDouble)) + , value_(def_value) { if (!is_initialized()) { value_state_ = kValid; } else if (is_valid()) { @@ -188,24 +185,25 @@ Float<minnum, maxnum, minden, maxden>::Float(const Json::Value* value, } } -template<int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> +template <int64_t minnum, int64_t maxnum, int64_t minden, int64_t maxden> Json::Value Float<minnum, maxnum, minden, maxden>::ToJsonValue() const { return Json::Value(value_); } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> String<minlen, maxlen>::String(const Json::Value* value) - : PrimitiveType(InitHelper(value, &Json::Value::isString)), - value_(is_valid() ? value->asString() : std::string()) { + : PrimitiveType(InitHelper(value, &Json::Value::isString)) + , value_(is_valid() ? value->asString() : std::string()) { if (is_valid()) { value_state_ = length_range_.Includes(value_.length()) ? kValid : kInvalid; } } -template<size_t minlen, size_t maxlen> -String<minlen, maxlen>::String(const Json::Value* value, const std::string& def_value) - : PrimitiveType(InitHelper(value, &Json::Value::isString)), - value_(def_value) { +template <size_t minlen, size_t maxlen> +String<minlen, maxlen>::String(const Json::Value* value, + const std::string& def_value) + : PrimitiveType(InitHelper(value, &Json::Value::isString)) + , value_(def_value) { if (!is_initialized()) { value_state_ = kValid; } else if (is_valid()) { @@ -213,42 +211,42 @@ String<minlen, maxlen>::String(const Json::Value* value, const std::string& def_ } } -template<size_t minlen, size_t maxlen> +template <size_t minlen, size_t maxlen> Json::Value String<minlen, maxlen>::ToJsonValue() const { return Json::Value(value_); } -template<typename T> +template <typename T> Enum<T>::Enum(const Json::Value* value) - : PrimitiveType(InitHelper(value, &Json::Value::isString)), - value_(EnumType()) { + : PrimitiveType(InitHelper(value, &Json::Value::isString)) + , value_(EnumType()) { if (is_valid()) { value_state_ = - EnumFromJsonString(value->asString(), &value_) ? kValid : kInvalid; + EnumFromJsonString(value->asString(), &value_) ? kValid : kInvalid; } } -template<typename T> +template <typename T> Enum<T>::Enum(const Json::Value* value, EnumType def_value) - : PrimitiveType(InitHelper(value, &Json::Value::isString)), - value_(def_value) { + : PrimitiveType(InitHelper(value, &Json::Value::isString)) + , value_(def_value) { if (!is_initialized()) { value_state_ = kValid; } else if (is_valid()) { value_state_ = - EnumFromJsonString(value->asString(), &value_) ? kValid : kInvalid; + EnumFromJsonString(value->asString(), &value_) ? kValid : kInvalid; } } -template<typename T> +template <typename T> Json::Value Enum<T>::ToJsonValue() const { return Json::Value(Json::StaticString(EnumToJsonString(value_))); } // Non-const version -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Array<T, minsize, maxsize>::Array(Json::Value* value) - : CompositeType(InitHelper(value, &Json::Value::isArray)) { + : CompositeType(InitHelper(value, &Json::Value::isArray)) { if (value) { if (value->isArray()) { this->reserve(value->size()); @@ -263,13 +261,14 @@ Array<T, minsize, maxsize>::Array(Json::Value* value) } // Const version, must be identical to the non-const version -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Array<T, minsize, maxsize>::Array(const Json::Value* value) - : CompositeType(InitHelper(value, &Json::Value::isArray)) { + : CompositeType(InitHelper(value, &Json::Value::isArray)) { if (value) { if (value->isArray()) { this->reserve(value->size()); - for (Json::Value::const_iterator i = value->begin(); i != value->end(); ++i) { + for (Json::Value::const_iterator i = value->begin(); i != value->end(); + ++i) { push_back(&*i); } } else { @@ -279,20 +278,20 @@ Array<T, minsize, maxsize>::Array(const Json::Value* value) } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Json::Value Array<T, minsize, maxsize>::ToJsonValue() const { Json::Value array(Json::arrayValue); array.resize(this->size()); for (size_t i = 0; i != this->size(); ++i) { - array[Json::ArrayIndex(i)] = (this->operator [](i)).ToJsonValue(); + array[Json::ArrayIndex(i)] = (this->operator[](i)).ToJsonValue(); } return array; } // Non-const version -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Map<T, minsize, maxsize>::Map(Json::Value* value) - : CompositeType(InitHelper(value, &Json::Value::isObject)) { + : CompositeType(InitHelper(value, &Json::Value::isObject)) { if (value) { if (value->isObject()) { for (Json::Value::iterator i = value->begin(); i != value->end(); ++i) { @@ -305,12 +304,13 @@ Map<T, minsize, maxsize>::Map(Json::Value* value) } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Map<T, minsize, maxsize>::Map(const Json::Value* value) - : CompositeType(InitHelper(value, &Json::Value::isObject)) { + : CompositeType(InitHelper(value, &Json::Value::isObject)) { if (value) { if (value->isObject()) { - for (Json::Value::const_iterator i = value->begin(); i != value->end(); ++i) { + for (Json::Value::const_iterator i = value->begin(); i != value->end(); + ++i) { this->insert(typename MapType::value_type(i.key().asString(), T(&*i))); } } else { @@ -320,70 +320,64 @@ Map<T, minsize, maxsize>::Map(const Json::Value* value) } } -template<typename T, size_t minsize, size_t maxsize> +template <typename T, size_t minsize, size_t maxsize> Json::Value Map<T, minsize, maxsize>::ToJsonValue() const { Json::Value map(Json::objectValue); - for (typename MapType::const_iterator i = this->begin(); i != this->end(); ++i) { + for (typename MapType::const_iterator i = this->begin(); i != this->end(); + ++i) { map[i->first] = i->second.ToJsonValue(); } return map; } -template<typename T> +template <typename T> Nullable<T>::Nullable(const Json::Value* value) - : T(value), - marked_null_(value != NULL&& value->isNull()) { -} + : T(value), marked_null_(value != NULL && value->isNull()) {} -template<typename T> +template <typename T> Nullable<T>::Nullable(Json::Value* value) - : T(value), - marked_null_(value != NULL&& value->isNull()) { -} + : T(value), marked_null_(value != NULL && value->isNull()) {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Nullable<T>::Nullable(const Json::Value* value, const U& def_value) - : T(value, def_value), - marked_null_(value != NULL&& value->isNull()) { -} + : T(value, def_value), marked_null_(value != NULL && value->isNull()) {} -template<typename T> +template <typename T> inline Json::Value Nullable<T>::ToJsonValue() const { return marked_null_ ? Json::Value::null : T::ToJsonValue(); } -template<typename T> -template<typename U> +template <typename T> +template <typename U> Optional<T>::Optional(const Json::Value* value, const U& def_value) - : value_(value, def_value) { -} + : value_(value, def_value) {} -template<typename T> +template <typename T> inline Json::Value Optional<T>::ToJsonValue() const { return value_.ToJsonValue(); } -template<typename T> +template <typename T> Stringifyable<T>::Stringifyable(const Json::Value* value) - : T(NULL != value&& !value->isString() ? value : NULL), - predefined_string_(NULL != value&& value->isString() ? value->asString() : "") { -} + : T(NULL != value && !value->isString() ? value : NULL) + , predefined_string_(NULL != value && value->isString() ? value->asString() + : "") {} -template<typename T> +template <typename T> Stringifyable<T>::Stringifyable(Json::Value* value) - : T(NULL != value&& !value->isString() ? value : NULL), - predefined_string_(NULL != value&& value->isString() ? value->asString() : "") { -} + : T(NULL != value && !value->isString() ? value : NULL) + , predefined_string_(NULL != value && value->isString() ? value->asString() + : "") {} -template<typename T> -template<typename U> +template <typename T> +template <typename U> Stringifyable<T>::Stringifyable(const Json::Value* value, const U& def_value) - : T(NULL != value&& !value->isString() ? (value, def_value) : NULL), - predefined_string_(NULL != value&& value->isString() ? value->asString() : "") { -} + : T(NULL != value && !value->isString() ? (value, def_value) : NULL) + , predefined_string_(NULL != value && value->isString() ? value->asString() + : "") {} -template<typename T> +template <typename T> inline Json::Value Stringifyable<T>::ToJsonValue() const { return predefined_string_.empty() ? T::ToJsonValue() : predefined_string_; } diff --git a/src/components/rpc_base/include/rpc_base/rpc_message.h b/src/components/rpc_base/include/rpc_base/rpc_message.h index 18ace4552a..7b5ed2e375 100644 --- a/src/components/rpc_base/include/rpc_base/rpc_message.h +++ b/src/components/rpc_base/include/rpc_base/rpc_message.h @@ -41,17 +41,13 @@ class Value; namespace rpc { -enum MessageType { - kRequest = 0, - kResponse = 1, - kNotification = 2 -}; +enum MessageType { kRequest = 0, kResponse = 1, kNotification = 2 }; // Base class for all RPC messages // Has methods to identify interface this message belongs to // And message ID class Message { -public: + public: // Type of message virtual MessageType message_type() const = 0; // Numerical function identifier, unique to the interface @@ -69,26 +65,34 @@ public: // Base class for all interface-specific requests class RequestBase : public Message, public CompositeType { public: - explicit RequestBase(InitializationState init_state): CompositeType(init_state) {} + explicit RequestBase(InitializationState init_state) + : CompositeType(init_state) {} // Message interface - MessageType message_type() const { return kRequest; } + MessageType message_type() const { + return kRequest; + } virtual ~RequestBase() {} }; // Base class for all interface-specific responses class ResponseBase : public Message, public CompositeType { public: - ResponseBase(InitializationState init_state): CompositeType(init_state) {} + ResponseBase(InitializationState init_state) : CompositeType(init_state) {} // Message interface - MessageType message_type() const { return kResponse; } + MessageType message_type() const { + return kResponse; + } virtual ~ResponseBase() {} }; // Base class for all interface-specific notifications class NotificationBase : public Message, public CompositeType { public: - explicit NotificationBase(InitializationState init_state): CompositeType(init_state) {} - MessageType message_type() const { return kNotification; } + explicit NotificationBase(InitializationState init_state) + : CompositeType(init_state) {} + MessageType message_type() const { + return kNotification; + } // Message interface virtual ~NotificationBase() {} }; diff --git a/src/components/rpc_base/include/rpc_base/validation_report.h b/src/components/rpc_base/include/rpc_base/validation_report.h index b8a9c4d1cd..941c8f61cc 100644 --- a/src/components/rpc_base/include/rpc_base/validation_report.h +++ b/src/components/rpc_base/include/rpc_base/validation_report.h @@ -49,7 +49,8 @@ class ValidationReport { void set_validation_info(const std::string& info); const ValidationReports& subobject_reports() const; ValidationReport& ReportSubobject(const std::string& object_name); -private: + + private: std::string object_name_; std::string validation_info_; ValidationReports subobject_reports_; @@ -61,8 +62,8 @@ std::string PrettyFormat(const ValidationReport& report); namespace impl { inline void PrettyFormat(const ValidationReport& report, - const std::string& parent_path, - std::string* result) { + const std::string& parent_path, + std::string* result) { std::string object_path = parent_path; if (!object_path.empty() && report.object_name()[0] != '[') { object_path.append("."); @@ -76,15 +77,16 @@ inline void PrettyFormat(const ValidationReport& report, } const ValidationReports& subreports = report.subobject_reports(); for (ValidationReports::const_iterator i = subreports.begin(), - end = subreports.end(); i != end; ++i) { + end = subreports.end(); + i != end; + ++i) { PrettyFormat(*i, object_path, result); } } } // namespace impl inline ValidationReport::ValidationReport(const std::string& object_name) - : object_name_(object_name) { -} + : object_name_(object_name) {} inline const std::string& ValidationReport::object_name() const { return object_name_; @@ -98,7 +100,8 @@ inline void ValidationReport::set_validation_info(const std::string& info) { validation_info_ = info; } -inline const std::list<ValidationReport>& ValidationReport::subobject_reports() const { +inline const std::list<ValidationReport>& ValidationReport::subobject_reports() + const { return subobject_reports_; } diff --git a/src/components/rpc_base/src/rpc_base/rpc_base.cc b/src/components/rpc_base/src/rpc_base/rpc_base.cc index f2290780ed..d506bea377 100644 --- a/src/components/rpc_base/src/rpc_base/rpc_base.cc +++ b/src/components/rpc_base/src/rpc_base/rpc_base.cc @@ -32,6 +32,4 @@ #include "rpc_base/rpc_base.h" -namespace rpc { - -} // namespace rpc +namespace rpc {} // namespace rpc diff --git a/src/components/rpc_base/test/rpc_base_dbus_test.cc b/src/components/rpc_base/test/rpc_base_dbus_test.cc index e217eff476..f26ce25c5d 100644 --- a/src/components/rpc_base/test/rpc_base_dbus_test.cc +++ b/src/components/rpc_base/test/rpc_base_dbus_test.cc @@ -38,11 +38,7 @@ namespace test { using namespace rpc; using namespace dbus; -enum TestEnum { - kValue0, - kValue1, - kInvalidValue -}; +enum TestEnum { kValue0, kValue1, kInvalidValue }; bool IsValidEnum(TestEnum val) { return val == kValue0 || val == kValue1; @@ -74,8 +70,7 @@ const char* EnumToJsonString(TestEnum enm) { struct DbusDeserialization : public testing::Test { dbus::MessageRef msgref; DbusDeserialization() - : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) { - } + : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) {} }; TEST_F(DbusDeserialization, DeserializeBool) { @@ -97,7 +92,7 @@ TEST_F(DbusDeserialization, DeserializeByte) { } { dbus::MessageReader reader(msgref); - Integer < uint8_t, 1, 220 > byte(&reader); + Integer<uint8_t, 1, 220> byte(&reader); ASSERT_TRUE(byte.is_initialized()); ASSERT_TRUE(byte.is_valid()); ASSERT_EQ(byte, 200); @@ -113,7 +108,7 @@ TEST_F(DbusDeserialization, DeserializeInt64) { } { dbus::MessageReader reader(msgref); - Integer < int64_t, -5, 220 > int64(&reader); + Integer<int64_t, -5, 220> int64(&reader); ASSERT_TRUE(int64.is_initialized()); ASSERT_TRUE(int64.is_valid()); ASSERT_EQ(int64, -1); @@ -129,7 +124,7 @@ TEST_F(DbusDeserialization, DeserializeFloat) { } { dbus::MessageReader reader(msgref); - Float < 3, 4 > pi(&reader); + Float<3, 4> pi(&reader); ASSERT_TRUE(pi.is_initialized()); ASSERT_TRUE(pi.is_valid()); ASSERT_DOUBLE_EQ(pi, 3.14); @@ -145,7 +140,7 @@ TEST_F(DbusDeserialization, DeserializeString) { } { dbus::MessageReader reader(msgref); - String < 3, 10 > hello(&reader); + String<3, 10> hello(&reader); ASSERT_TRUE(hello.is_initialized()); ASSERT_TRUE(hello.is_valid()); ASSERT_EQ(std::string(hello), "Hello"); @@ -174,9 +169,9 @@ TEST_F(DbusDeserialization, DeserializeArray) { { dbus::MessageWriter writer(msgref); std::string array_signature; - rpc::DbusSignature<Integer<int32_t, 1, 50> >(&array_signature); - dbus::MessageWriter array_writer(&writer, dbus::kArray, - array_signature.c_str()); + rpc::DbusSignature<Integer<int32_t, 1, 50>>(&array_signature); + dbus::MessageWriter array_writer( + &writer, dbus::kArray, array_signature.c_str()); array_writer.PutInt32(5); array_writer.PutInt32(33); } @@ -190,7 +185,6 @@ TEST_F(DbusDeserialization, DeserializeArray) { ASSERT_EQ(array.size(), 2u); ASSERT_EQ(array[0], 5); ASSERT_EQ(array[1], 33); - } } @@ -198,15 +192,15 @@ TEST_F(DbusDeserialization, DeserializeArrayOfArrays) { { dbus::MessageWriter writer(msgref); std::string array_signature; - rpc::DbusSignature<Array<Integer<int32_t, 1, 50>, 1, 5> >(&array_signature); - dbus::MessageWriter array_writer(&writer, dbus::kArray, - array_signature.c_str()); + rpc::DbusSignature<Array<Integer<int32_t, 1, 50>, 1, 5>>(&array_signature); + dbus::MessageWriter array_writer( + &writer, dbus::kArray, array_signature.c_str()); int val = 5; for (int i = 0; i < 2; ++i) { std::string subarray_signature; - rpc::DbusSignature<Integer<int32_t, 1, 50> >(&subarray_signature); - dbus::MessageWriter subarray_wirter(&array_writer, dbus::kArray, - subarray_signature.c_str()); + rpc::DbusSignature<Integer<int32_t, 1, 50>>(&subarray_signature); + dbus::MessageWriter subarray_wirter( + &array_writer, dbus::kArray, subarray_signature.c_str()); subarray_wirter.PutInt32(val++); subarray_wirter.PutInt32(val++); @@ -226,7 +220,6 @@ TEST_F(DbusDeserialization, DeserializeArrayOfArrays) { ASSERT_EQ(array[0][1], 6); ASSERT_EQ(array[1][0], 7); ASSERT_EQ(array[1][1], 8); - } } @@ -235,9 +228,9 @@ TEST_F(DbusDeserialization, DeserializeMap) { dbus::MessageWriter writer(msgref); std::string dict_signature; rpc::DbusSignature<Map<Enum<TestEnum>, 1, 5>::value_type>(&dict_signature); - dbus::MessageWriter array_writer(&writer, dbus::kArray, - dict_signature.c_str()); - const char* keys[] = { "Hello", "World" }; + dbus::MessageWriter array_writer( + &writer, dbus::kArray, dict_signature.c_str()); + const char* keys[] = {"Hello", "World"}; int val = 0; for (int i = 0; i < 2; ++i) { dbus::MessageWriter dictval_wirter(&array_writer, dbus::kDictEntry, NULL); @@ -255,7 +248,6 @@ TEST_F(DbusDeserialization, DeserializeMap) { ASSERT_EQ(amap.size(), 2u); ASSERT_EQ(amap["Hello"], kValue0); ASSERT_EQ(amap["World"], kValue1); - } } @@ -283,7 +275,7 @@ TEST_F(DbusDeserialization, DeserializeOptionalString) { } { dbus::MessageReader reader(msgref); - Optional < String<1, 100> > readback(&reader); + Optional<String<1, 100>> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_EQ(std::string(*readback), "Hello dear"); @@ -301,16 +293,14 @@ TEST_F(DbusDeserialization, DeserializeOptionalInt) { } { dbus::MessageReader reader(msgref); - Optional < Integer<int32_t, 1, 90>> readback(&reader); + Optional<Integer<int32_t, 1, 90>> readback(&reader); ASSERT_FALSE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_FALSE(reader.has_failed()); ASSERT_FALSE(reader.HasNext()); - } } - TEST_F(DbusDeserialization, SerializeDeserializeBool) { { Boolean true_bool(true); @@ -330,13 +320,13 @@ TEST_F(DbusDeserialization, SerializeDeserializeBool) { TEST_F(DbusDeserialization, SerializeDeserializeInt8t) { { - Integer < int8_t, 1, 100 > int8(42); + Integer<int8_t, 1, 100> int8(42); dbus::MessageWriter writer(msgref); int8.ToDbusWriter(&writer); } { dbus::MessageReader reader(msgref); - Integer < int8_t, 1, 100 > readback(&reader); + Integer<int8_t, 1, 100> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_EQ(readback, 42); @@ -347,13 +337,13 @@ TEST_F(DbusDeserialization, SerializeDeserializeInt8t) { TEST_F(DbusDeserialization, BadSerializeDeserializeInt8t) { { - Integer < int8_t, 1, 12 > int8(42); + Integer<int8_t, 1, 12> int8(42); dbus::MessageWriter writer(msgref); int8.ToDbusWriter(&writer); } { dbus::MessageReader reader(msgref); - Integer < int8_t, 1, 12 > readback(&reader); + Integer<int8_t, 1, 12> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_FALSE(readback.is_valid()); ASSERT_FALSE(reader.has_failed()); @@ -363,13 +353,13 @@ TEST_F(DbusDeserialization, BadSerializeDeserializeInt8t) { TEST_F(DbusDeserialization, SerializeDeserializeInt64t) { { - Integer < int64_t, 1, 0xFFFFFFFFFF > int64(0xFFFFFFFFF1); + Integer<int64_t, 1, 0xFFFFFFFFFF> int64(0xFFFFFFFFF1); dbus::MessageWriter writer(msgref); int64.ToDbusWriter(&writer); } { dbus::MessageReader reader(msgref); - Integer < int64_t, 1, 0xFFFFFFFFFF > readback(&reader); + Integer<int64_t, 1, 0xFFFFFFFFFF> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_EQ(readback, 0xFFFFFFFFF1); @@ -378,16 +368,15 @@ TEST_F(DbusDeserialization, SerializeDeserializeInt64t) { } } - TEST_F(DbusDeserialization, SerializeDeserializeDouble) { { - Float < 1, 5 > flt(3.14); + Float<1, 5> flt(3.14); dbus::MessageWriter writer(msgref); flt.ToDbusWriter(&writer); } { dbus::MessageReader reader(msgref); - Float < 1, 5 > readback(&reader); + Float<1, 5> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_DOUBLE_EQ(readback, 3.14); @@ -398,13 +387,13 @@ TEST_F(DbusDeserialization, SerializeDeserializeDouble) { TEST_F(DbusDeserialization, SerializeDeserializeString) { { - String < 1, 12 > hello("Hello"); + String<1, 12> hello("Hello"); dbus::MessageWriter writer(msgref); hello.ToDbusWriter(&writer); } { dbus::MessageReader reader(msgref); - String < 1, 12 > readback(&reader); + String<1, 12> readback(&reader); ASSERT_TRUE(readback.is_initialized()); ASSERT_TRUE(readback.is_valid()); ASSERT_EQ(std::string(readback), "Hello"); @@ -505,61 +494,61 @@ TEST(ValidatedTypes, TestBooleanDbusSignature) { TEST(ValidatedTypes, TestIntDbusSignature) { std::string sign; - DbusSignature<Integer<int32_t, 1, 2> >(&sign); + DbusSignature<Integer<int32_t, 1, 2>>(&sign); ASSERT_EQ(sign, "i"); } TEST(ValidatedTypes, TestFloatDbusSignature) { std::string sign; - DbusSignature<Float<1, 2> >(&sign); + DbusSignature<Float<1, 2>>(&sign); ASSERT_EQ(sign, "d"); } TEST(ValidatedTypes, TestStringDbusSignature) { std::string sign; - DbusSignature<String<1, 2> >(&sign); + DbusSignature<String<1, 2>>(&sign); ASSERT_EQ(sign, "s"); } TEST(ValidatedTypes, TestEnumDbusSignature) { std::string sign; - DbusSignature<Enum<TestEnum> >(&sign); + DbusSignature<Enum<TestEnum>>(&sign); ASSERT_EQ(sign, "i"); } TEST(ValidatedTypes, TestIntArrayDbusSignature) { std::string sign; - DbusSignature<Array<Integer<int32_t, 1, 2>, 1, 3> >(&sign); + DbusSignature<Array<Integer<int32_t, 1, 2>, 1, 3>>(&sign); ASSERT_EQ(sign, "ai"); } TEST(ValidatedTypes, TestIntArrayArrayDbusSignature) { std::string sign; - DbusSignature<Array<Array<Integer<int32_t, 1, 2>, 1, 3>, 4, 5> >(&sign); + DbusSignature<Array<Array<Integer<int32_t, 1, 2>, 1, 3>, 4, 5>>(&sign); ASSERT_EQ(sign, "aai"); } TEST(ValidatedTypes, TestMapDbusSignature) { std::string sign; - DbusSignature<Map<Integer<int32_t, 1, 2>, 3, 4> >(&sign); + DbusSignature<Map<Integer<int32_t, 1, 2>, 3, 4>>(&sign); ASSERT_EQ(sign, "a{si}"); } TEST(ValidatedTypes, TestMandatoryEnumDbusSignature) { std::string sign; - DbusSignature<Enum<TestEnum> >(&sign); + DbusSignature<Enum<TestEnum>>(&sign); ASSERT_EQ(sign, "i"); } TEST(ValidatedTypes, TestOptionalEnumDbusSignature) { std::string sign; - DbusSignature<Optional<Enum<TestEnum> > >(&sign); + DbusSignature<Optional<Enum<TestEnum>>>(&sign); ASSERT_EQ(sign, "(bi)"); } TEST(ValidatedTypes, TestOptionalFloatArrayDbusSignature) { std::string sign; - DbusSignature<Optional<Array<Float<1, 2>, 3, 4> > >(&sign); + DbusSignature<Optional<Array<Float<1, 2>, 3, 4>>>(&sign); ASSERT_EQ(sign, "(bad)"); } @@ -571,9 +560,7 @@ TEST(DbusMessageConstructionTest, DbusMessageConstruction) { class DbusTest : public testing::Test { public: dbus::MessageRef msgref; - DbusTest() - : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) { - } + DbusTest() : msgref(dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL)) {} }; TEST_F(DbusTest, DbusWriterConstructionTest) { @@ -637,8 +624,8 @@ TEST_F(DbusTest, DbusMultipleParamsReadWrite) { TEST_F(DbusTest, DbusArrayTest) { { dbus::MessageWriter writer(msgref); - dbus::MessageWriter array_writer(&writer, dbus::kArray, - DBUS_TYPE_INT16_AS_STRING); + dbus::MessageWriter array_writer( + &writer, dbus::kArray, DBUS_TYPE_INT16_AS_STRING); array_writer.PutInt16(3); array_writer.PutInt16(4); array_writer.PutInt16(5); diff --git a/src/components/rpc_base/test/rpc_base_json_test.cc b/src/components/rpc_base/test/rpc_base_json_test.cc index 3a536937ba..07ac0418e0 100644 --- a/src/components/rpc_base/test/rpc_base_json_test.cc +++ b/src/components/rpc_base/test/rpc_base_json_test.cc @@ -39,11 +39,7 @@ using namespace rpc; using Json::Value; namespace { -enum TestEnum { - kValue0, - kValue1, - kInvalidValue -}; +enum TestEnum { kValue0, kValue1, kInvalidValue }; bool EnumFromJsonString(const std::string& value, TestEnum* enm) { if (value == "kValue0") { @@ -58,10 +54,13 @@ bool EnumFromJsonString(const std::string& value, TestEnum* enm) { } const char* EnumToJsonString(TestEnum enm) { - switch(enm) { - case kValue0: return "kValue0"; - case kValue1: return "kValue1"; - default: return "UNKNOWN"; + switch (enm) { + case kValue0: + return "kValue0"; + case kValue1: + return "kValue1"; + default: + return "UNKNOWN"; } } @@ -272,7 +271,7 @@ TEST(ValidatedTypesJson, MandatoryMapNullTest) { TEST(ValidatedTypesJson, OptionalMapAbsentValueTest) { Value* novalue = NULL; - Optional< Map<String<1, 32>, 0, 5> > map(novalue); + Optional<Map<String<1, 32>, 0, 5> > map(novalue); ASSERT_FALSE(map.is_initialized()); ASSERT_TRUE(map.is_valid()); } @@ -305,7 +304,7 @@ TEST(ValidatedTypesJson, MapFromNonArrayJsonTest) { TEST(ValidatedTypesJson, OptionalBoolFromJsonTest) { Value bool_value(true); - Optional< Boolean > optional_bool; + Optional<Boolean> optional_bool; *optional_bool = Boolean(&bool_value); ASSERT_TRUE(optional_bool.is_initialized()); ASSERT_TRUE(optional_bool.is_valid()); @@ -316,7 +315,7 @@ TEST(ValidatedTypesJson, OptionalBoolFromJsonTest) { TEST(ValidatedTypesJson, OptionalBoolFromAbsentValueTest) { Value* none = NULL; - Optional< Boolean > optional_bool; + Optional<Boolean> optional_bool; *optional_bool = Boolean(none); ASSERT_FALSE(optional_bool.is_initialized()); // It is ok for Optional value to be absent @@ -324,7 +323,7 @@ TEST(ValidatedTypesJson, OptionalBoolFromAbsentValueTest) { } TEST(ValidatedTypesJson, OptionalBoolFromNullValueTest) { - Optional< Boolean > optional_bool; + Optional<Boolean> optional_bool; *optional_bool = Boolean(&Value::null); ASSERT_TRUE(optional_bool.is_initialized()); // Optional values should not be absent @@ -332,7 +331,7 @@ TEST(ValidatedTypesJson, OptionalBoolFromNullValueTest) { } TEST(ValidatedTypesJson, NullableIntFromNullValueTest) { - Nullable< Integer<int8_t, 1, 15> > nullable_int(&Value::null); + Nullable<Integer<int8_t, 1, 15> > nullable_int(&Value::null); ASSERT_TRUE(nullable_int.is_initialized()); ASSERT_TRUE(nullable_int.is_valid()); ASSERT_TRUE(nullable_int.is_null()); @@ -340,7 +339,7 @@ TEST(ValidatedTypesJson, NullableIntFromNullValueTest) { TEST(ValidatedTypesJson, NullableIntFromNonNullValueTest) { Value json(3); - Nullable< Integer<int8_t, 1, 15> > nullable_int(&json); + Nullable<Integer<int8_t, 1, 15> > nullable_int(&json); ASSERT_TRUE(nullable_int.is_initialized()); ASSERT_TRUE(nullable_int.is_valid()); ASSERT_FALSE(nullable_int.is_null()); @@ -349,7 +348,7 @@ TEST(ValidatedTypesJson, NullableIntFromNonNullValueTest) { TEST(ValidatedTypesJson, NullableIntFromAbsentValueTest) { Value* noval = NULL; - Nullable< Integer<int8_t, 1, 15> > nullable_int(noval); + Nullable<Integer<int8_t, 1, 15> > nullable_int(noval); ASSERT_FALSE(nullable_int.is_initialized()); ASSERT_FALSE(nullable_int.is_valid()); ASSERT_FALSE(nullable_int.is_null()); @@ -357,8 +356,8 @@ TEST(ValidatedTypesJson, NullableIntFromAbsentValueTest) { TEST(ValidatedTypesJson, OptionalIntFromJsonTest) { Value int_value(42); - Optional< Integer<int64_t, 42, 43> > optional_int; - *optional_int = Integer<int64_t, 42, 43> (&int_value); + Optional<Integer<int64_t, 42, 43> > optional_int; + *optional_int = Integer<int64_t, 42, 43>(&int_value); ASSERT_TRUE(optional_int.is_initialized()); ASSERT_TRUE(optional_int.is_valid()); Value readback = optional_int->ToJsonValue(); @@ -366,8 +365,4 @@ TEST(ValidatedTypesJson, OptionalIntFromJsonTest) { ASSERT_EQ(readback.asInt(), 42); } - } // namespace test - - - diff --git a/src/components/rpc_base/test/rpc_base_test.cc b/src/components/rpc_base/test/rpc_base_test.cc index 553dacb85d..37a64b319e 100644 --- a/src/components/rpc_base/test/rpc_base_test.cc +++ b/src/components/rpc_base/test/rpc_base_test.cc @@ -40,11 +40,7 @@ using namespace rpc; namespace { -enum TestEnum { - kValue0, - kValue1, - kInvalidValue -}; +enum TestEnum { kValue0, kValue1, kInvalidValue }; bool IsValidEnum(TestEnum val) { return val == kValue0 || val == kValue1; @@ -190,7 +186,7 @@ TEST(ValidatedTypes, TestArrayInitializingConstructor) { } TEST(ValidatedTypes, TestOptionalEmptyArray) { - Optional< Array<Integer<int8_t, 0, 10>, 0, 5> > ai; + Optional<Array<Integer<int8_t, 0, 10>, 0, 5> > ai; ASSERT_RPCTYPE_VALID(ai); ASSERT_FALSE(ai.is_initialized()); Json::FastWriter fw; @@ -220,10 +216,10 @@ TEST(ValidatedTypes, TestMap) { } TEST(ValidatedTypes, TestMapInitializingConstructor) { - std::map< std::string, std::string > init_map; + std::map<std::string, std::string> init_map; init_map["a"] = "Hello"; init_map["b"] = "World"; - Map<String<1, 6>, 2, 10 > map(init_map); + Map<String<1, 6>, 2, 10> map(init_map); ASSERT_TRUE(map.is_initialized()); ASSERT_RPCTYPE_VALID(map); } @@ -251,7 +247,7 @@ TEST(ValidatedTypes, TestEnumConstructor) { } TEST(ValidatedTypes, TestNullableConstructor) { - Nullable< Integer<int8_t, 2, 10> >nullable_int; + Nullable<Integer<int8_t, 2, 10> > nullable_int; ASSERT_FALSE(nullable_int.is_initialized()); ASSERT_FALSE(nullable_int.is_null()); ASSERT_FALSE(nullable_int.is_valid()); @@ -266,7 +262,7 @@ TEST(ValidatedTypes, TestNullableConstructor) { } TEST(ValidatedTypes, TestOptionalNullableConstructor) { - Optional< Nullable< Integer<int8_t, 2, 10> > > optional_nullable_int; + Optional<Nullable<Integer<int8_t, 2, 10> > > optional_nullable_int; ASSERT_FALSE(optional_nullable_int.is_initialized()); ASSERT_FALSE(optional_nullable_int->is_null()); ASSERT_RPCTYPE_VALID(optional_nullable_int); @@ -286,7 +282,7 @@ TEST(ValidatedTypes, TestOptionalNullableConstructor) { } TEST(ValidatedTypes, TestOptionalConstructor) { - Optional< Integer<int16_t, 3, 15> > optional_int; + Optional<Integer<int16_t, 3, 15> > optional_int; ASSERT_FALSE(optional_int.is_initialized()); ASSERT_RPCTYPE_VALID(optional_int); *optional_int = 42; @@ -300,7 +296,7 @@ TEST(ValidatedTypes, TestOptionalConstructor) { } TEST(ValidatedTypes, TestOptionalInitializingConstructor) { - Optional< String<1, 12> > optional_string("Hello world"); + Optional<String<1, 12> > optional_string("Hello world"); ASSERT_TRUE(optional_string.is_initialized()); ASSERT_RPCTYPE_VALID(optional_string); std::string value = *optional_string; @@ -334,7 +330,7 @@ TEST(ValidatedTypes, ReportIncorrectInitializedIntType) { } TEST(ValidatedTypes, ReportUninitializedOptionalType) { - Optional< Integer<int8_t, 1, 3> > val; + Optional<Integer<int8_t, 1, 3> > val; ASSERT_RPCTYPE_VALID(val); ValidationReport report("val"); val.ReportErrors(&report); @@ -342,7 +338,7 @@ TEST(ValidatedTypes, ReportUninitializedOptionalType) { } TEST(ValidatedTypes, ReportIncorrectInitializedOptionalType) { - Optional< Integer<int8_t, 1, 3> > val(5); + Optional<Integer<int8_t, 1, 3> > val(5); ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); @@ -350,7 +346,7 @@ TEST(ValidatedTypes, ReportIncorrectInitializedOptionalType) { } TEST(ValidatedTypes, ReportUninitializedNullableIntType) { - Nullable< Integer<int8_t, 1, 3> > val; + Nullable<Integer<int8_t, 1, 3> > val; ASSERT_FALSE(val.is_valid()); ValidationReport report("val"); val.ReportErrors(&report); @@ -358,7 +354,7 @@ TEST(ValidatedTypes, ReportUninitializedNullableIntType) { } TEST(ValidatedTypes, ReportNullInitializedNullableIntType) { - Nullable< Integer<int8_t, 1, 3> > val; + Nullable<Integer<int8_t, 1, 3> > val; val.set_to_null(); ASSERT_RPCTYPE_VALID(val); ValidationReport report("val"); @@ -367,7 +363,7 @@ TEST(ValidatedTypes, ReportNullInitializedNullableIntType) { } TEST(ValidatedTypes, ReportNoninitializedIntArray) { - Array< Enum<TestEnum>, 1, 3 > array; + Array<Enum<TestEnum>, 1, 3> array; ASSERT_FALSE(array.is_valid()); ValidationReport report("array"); array.ReportErrors(&report); @@ -375,7 +371,7 @@ TEST(ValidatedTypes, ReportNoninitializedIntArray) { } TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray1) { - Array< Integer<int8_t, 1, 10>, 1, 3 > array; + Array<Integer<int8_t, 1, 10>, 1, 3> array; array.push_back(11); ASSERT_FALSE(array.is_valid()); ValidationReport report("array"); @@ -384,7 +380,7 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray1) { } TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray2) { - Array< Integer<int8_t, 1, 10>, 1, 3 > array; + Array<Integer<int8_t, 1, 10>, 1, 3> array; array.push_back(1); array.push_back(2); array.push_back(3); @@ -396,42 +392,47 @@ TEST(ValidatedTypes, ReportIncorrectlyInitializedIntArray2) { } TEST(ValidatedTypes, ReportIncorrectlyInitializedArray3) { - Array< Integer<int8_t, 1, 10>, 1, 3 > array; + Array<Integer<int8_t, 1, 10>, 1, 3> array; array.push_back(1); array.push_back(2); array.push_back(42); array.push_back(4); ValidationReport report("array"); array.ReportErrors(&report); - ASSERT_EQ("array: array has invalid size\n" - "array[2]: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ( + "array: array has invalid size\n" + "array[2]: value initialized incorrectly\n", + PrettyFormat(report)); } TEST(ValidatedTypes, ReportUninitializedMap) { - Map< Integer<int8_t, 1, 10>, 1, 3 > map; + Map<Integer<int8_t, 1, 10>, 1, 3> map; ValidationReport report("map"); map.ReportErrors(&report); ASSERT_EQ("map: object is not initialized\n", PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedMap1) { - Map< Integer<int8_t, 1, 10>, 1, 3 > map; + Map<Integer<int8_t, 1, 10>, 1, 3> map; map["aha"] = 42; ValidationReport report("map"); map.ReportErrors(&report); - ASSERT_EQ("map[\"aha\"]: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ("map[\"aha\"]: value initialized incorrectly\n", + PrettyFormat(report)); } TEST(ValidatedTypes, ReportIncorrectlyInitializedMap2) { - Map< Integer<int8_t, 1, 10>, 1, 3 > map; + Map<Integer<int8_t, 1, 10>, 1, 3> map; map["aha"] = 3; map["haha"] = 12; map["muhahaha"] = 17; map["muhahaha"] = 22; ValidationReport report("map"); map.ReportErrors(&report); - ASSERT_EQ("map[\"haha\"]: value initialized incorrectly\n" - "map[\"muhahaha\"]: value initialized incorrectly\n", PrettyFormat(report)); + ASSERT_EQ( + "map[\"haha\"]: value initialized incorrectly\n" + "map[\"muhahaha\"]: value initialized incorrectly\n", + PrettyFormat(report)); } } // namespace codegen diff --git a/src/components/rpc_base/test/validation_report_test.cc b/src/components/rpc_base/test/validation_report_test.cc index 1493de3957..e7dded342c 100644 --- a/src/components/rpc_base/test/validation_report_test.cc +++ b/src/components/rpc_base/test/validation_report_test.cc @@ -50,10 +50,12 @@ class ValidationReportTest : public testing::Test { static const std::string parent_object_name_; static void SetUpTestCase() { - report_ = new ValidationReport(object_name_); - report_2 = new ValidationReport(object_name_2); + report_ = new ValidationReport(object_name_); + report_2 = new ValidationReport(object_name_2); + } + virtual void TearDown() { + ClearReports(); } - virtual void TearDown() { ClearReports(); } void ClearReports() { ValidationReports& temp = @@ -61,16 +63,17 @@ class ValidationReportTest : public testing::Test { temp.clear(); } - void GeneratePrettyFormatResult(std::string& result, const std::string& parent_name, - const std::string& obj_name, const std::string& val_info) { + void GeneratePrettyFormatResult(std::string& result, + const std::string& parent_name, + const std::string& obj_name, + const std::string& val_info) { std::string temp; if (obj_name[0] != '[') { - temp = "."; + temp = "."; } else { - temp = ""; + temp = ""; } - result = parent_name + temp + obj_name + ":" + " " + - val_info + "\n"; + result = parent_name + temp + obj_name + ":" + " " + val_info + "\n"; } void ClearValidationInfo() { @@ -101,7 +104,6 @@ const std::string ValidationReportTest::test_validation_info_ = "test_validation_info"; const std::string ValidationReportTest::parent_object_name_ = "test_parent"; - TEST_F(ValidationReportTest, Ctor_and_object_name_test_ExpectDataCorrect) { EXPECT_EQ(object_name_, report_->object_name()); } @@ -145,9 +147,11 @@ TEST_F(ValidationReportTest, PrettyFormat_ExpectDataCorrect) { impl::PrettyFormat(*report_, parent_object_name_, &result1); impl::PrettyFormat(*report_2, parent_object_name_, &result2); std::string temp1; - GeneratePrettyFormatResult(temp1, parent_object_name_, object_name_, test_validation_info_); + GeneratePrettyFormatResult( + temp1, parent_object_name_, object_name_, test_validation_info_); std::string temp2; - GeneratePrettyFormatResult(temp2, parent_object_name_, object_name_2, test_validation_info_); + GeneratePrettyFormatResult( + temp2, parent_object_name_, object_name_2, test_validation_info_); // Checks EXPECT_EQ(temp1, result1); EXPECT_EQ(temp2, result2); diff --git a/src/components/security_manager/include/security_manager/crypto_manager_impl.h b/src/components/security_manager/include/security_manager/crypto_manager_impl.h index ab9bcf9ad6..6aea2e28b1 100644 --- a/src/components/security_manager/include/security_manager/crypto_manager_impl.h +++ b/src/components/security_manager/include/security_manager/crypto_manager_impl.h @@ -53,18 +53,22 @@ class CryptoManagerImpl : public CryptoManager { private: class SSLContextImpl : public SSLContext { public: - SSLContextImpl(SSL *conn, Mode mode, size_t maximum_payload_size); + SSLContextImpl(SSL* conn, Mode mode, size_t maximum_payload_size); ~SSLContextImpl(); virtual HandshakeResult StartHandshake(const uint8_t** const out_data, - size_t *out_data_size); - virtual HandshakeResult DoHandshakeStep(const uint8_t *const in_data, + size_t* out_data_size); + virtual HandshakeResult DoHandshakeStep(const uint8_t* const in_data, size_t in_data_size, const uint8_t** const out_data, - size_t *out_data_size) OVERRIDE; - bool Encrypt(const uint8_t *const in_data, size_t in_data_size, - const uint8_t ** const out_data, size_t *out_data_size) OVERRIDE; - bool Decrypt(const uint8_t *const in_data, size_t in_data_size, - const uint8_t ** const out_data, size_t *out_data_size) OVERRIDE; + size_t* out_data_size) OVERRIDE; + bool Encrypt(const uint8_t* const in_data, + size_t in_data_size, + const uint8_t** const out_data, + size_t* out_data_size) OVERRIDE; + bool Decrypt(const uint8_t* const in_data, + size_t in_data_size, + const uint8_t** const out_data, + size_t* out_data_size) OVERRIDE; bool IsInitCompleted() const OVERRIDE; bool IsHandshakePending() const OVERRIDE; size_t get_max_block_size(size_t mtu) const OVERRIDE; @@ -73,27 +77,28 @@ class CryptoManagerImpl : public CryptoManager { void SetHandshakeContext(const HandshakeContext& hsh_ctx) OVERRIDE; void PrintCertData(X509* cert, const std::string& cert_owner); - private: + + private: void PrintCertInfo(); HandshakeResult CheckCertContext(); bool ReadHandshakeData(const uint8_t** const out_data, - size_t* out_data_size); - bool WriteHandshakeData(const uint8_t* const in_data, size_t in_data_size); + size_t* out_data_size); + bool WriteHandshakeData(const uint8_t* const in_data, size_t in_data_size); HandshakeResult PerformHandshake(); - typedef size_t(*BlockSizeGetter)(size_t); + typedef size_t (*BlockSizeGetter)(size_t); void EnsureBufferSizeEnough(size_t size); void SetHandshakeError(const int error); HandshakeResult openssl_error_convert_to_internal(const long error); std::string GetTextBy(X509_NAME* name, int object) const; - SSL *connection_; - BIO *bioIn_; - BIO *bioOut_; - BIO *bioFilter_; + SSL* connection_; + BIO* bioIn_; + BIO* bioOut_; + BIO* bioFilter_; mutable sync_primitives::Lock bio_locker; size_t buffer_size_; - uint8_t *buffer_; + uint8_t* buffer_; bool is_handshake_pending_; Mode mode_; mutable std::string last_error_; @@ -110,21 +115,21 @@ class CryptoManagerImpl : public CryptoManager { ~CryptoManagerImpl(); bool Init() OVERRIDE; - bool OnCertificateUpdated(const std::string &data) OVERRIDE; - SSLContext *CreateSSLContext() OVERRIDE; - void ReleaseSSLContext(SSLContext *context) OVERRIDE; + bool OnCertificateUpdated(const std::string& data) OVERRIDE; + SSLContext* CreateSSLContext() OVERRIDE; + void ReleaseSSLContext(SSLContext* context) OVERRIDE; std::string LastError() const OVERRIDE; virtual bool IsCertificateUpdateRequired() const OVERRIDE; virtual const CryptoManagerSettings& get_settings() const OVERRIDE; -private: - bool set_certificate(const std::string &cert_data); + private: + bool set_certificate(const std::string& cert_data); int pull_number_from_buf(char* buf, int* idx); void asn1_time_to_tm(ASN1_TIME* time); const utils::SharedPtr<const CryptoManagerSettings> settings_; - SSL_CTX *context_; + SSL_CTX* context_; mutable struct tm expiration_time_; static uint32_t instance_count_; static sync_primitives::Lock instance_lock_; diff --git a/src/components/security_manager/include/security_manager/security_manager_impl.h b/src/components/security_manager/include/security_manager/security_manager_impl.h index 329d84b3ca..d4231ffaa0 100644 --- a/src/components/security_manager/include/security_manager/security_manager_impl.h +++ b/src/components/security_manager/include/security_manager/security_manager_impl.h @@ -51,10 +51,10 @@ namespace security_manager { * \brief SecurityMessageQueue and SecurityMessageLoop are support typedefs * for thread working */ -struct SecurityMessage: public SecurityQueryPtr { +struct SecurityMessage : public SecurityQueryPtr { SecurityMessage() {} - explicit SecurityMessage(const SecurityQueryPtr &message) - : SecurityQueryPtr(message) {} + explicit SecurityMessage(const SecurityQueryPtr& message) + : SecurityQueryPtr(message) {} // PrioritizedQueue requires this method to decide which priority to assign size_t PriorityOrder() const { return 0; @@ -66,9 +66,8 @@ typedef threads::MessageLoopThread<SecurityMessageQueue> SecurityMessageLoop; /** * \brief SecurityManagerImpl class implements SecurityManager interface */ -class SecurityManagerImpl - : public SecurityManager, - public SecurityMessageLoop::Handler { +class SecurityManagerImpl : public SecurityManager, + public SecurityMessageLoop::Handler { public: /** * \brief Constructor @@ -79,7 +78,8 @@ class SecurityManagerImpl * Overriden ProtocolObserver::OnMessageReceived method * \param message Message with supporting params received */ - void OnMessageReceived(const ::protocol_handler::RawMessagePtr message) OVERRIDE; + void OnMessageReceived( + const ::protocol_handler::RawMessagePtr message) OVERRIDE; /** * \brief Post message to Mobile Application * Empty *overriden ProtocolObserver::OnMessageReceived method @@ -92,28 +92,29 @@ class SecurityManagerImpl * \param session_observer pointer to object of the class implementing */ void set_session_observer( - protocol_handler::SessionObserver *observer) OVERRIDE; + protocol_handler::SessionObserver* observer) OVERRIDE; /** * \brief Sets pointer for Protocol Handler layer for sending * \param protocol_handler pointer to object of the class implementing */ void set_protocol_handler( - protocol_handler::ProtocolHandler *protocol_handler_) OVERRIDE; + protocol_handler::ProtocolHandler* protocol_handler_) OVERRIDE; /** * \brief Sets pointer for CryptoManager for handling SSLContext * \param crypto_manager pointer to object of the class implementing */ - void set_crypto_manager(CryptoManager *crypto_manager) OVERRIDE; + void set_crypto_manager(CryptoManager* crypto_manager) OVERRIDE; /** * \brief Sends InternallError with text message to mobile application - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param error_id unique error identifier * \param erorr_text SSL impelmentation error text * \param seq_number received from Mobile Application */ void SendInternalError(const uint32_t connection_key, - const uint8_t &error_id, - const std::string &erorr_text, + const uint8_t& error_id, + const std::string& erorr_text, const uint32_t seq_number) OVERRIDE; using SecurityManager::SendInternalError; @@ -128,10 +129,11 @@ class SecurityManagerImpl /** * \brief Create new SSLContext for connection or return exists * Do not notify listeners, send security error on occure - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * @return new \c SSLContext or \c NULL on any error */ - SSLContext *CreateSSLContext(const uint32_t &connection_key) OVERRIDE; + SSLContext* CreateSSLContext(const uint32_t& connection_key) OVERRIDE; /** * \brief Start handshake as SSL client @@ -141,14 +143,15 @@ class SecurityManagerImpl /** * \brief Add/Remove for SecurityManagerListener */ - void AddListener(SecurityManagerListener *const listener) OVERRIDE; - void RemoveListener(SecurityManagerListener *const listener) OVERRIDE; + void AddListener(SecurityManagerListener* const listener) OVERRIDE; + void RemoveListener(SecurityManagerListener* const listener) OVERRIDE; /** * \brief Notifiers for listeners - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param success result of connection protection */ - void NotifyListenersOnHandshakeDone(const uint32_t &connection_key, + void NotifyListenersOnHandshakeDone(const uint32_t& connection_key, SSLContext::HandshakeResult error); /** @@ -161,37 +164,40 @@ class SecurityManagerImpl * @brief SecurityConfigSection * @return Session name in config file */ - static const char *ConfigSection(); + static const char* ConfigSection(); + private: /** * \brief Sends Handshake binary data to mobile application - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier * \param data pointer to binary data array * \param data_size size of binary data array * \param seq_number received from Mobile Application */ void SendHandshakeBinData(const uint32_t connection_key, - const uint8_t *const data, + const uint8_t* const data, const size_t data_size, const uint32_t seq_number = 0); /** * \brief Parse SecurityMessage as HandshakeData request * \param inMessage SecurityMessage with binary data of handshake */ - bool ProccessHandshakeData(const SecurityMessage &inMessage); + bool ProccessHandshakeData(const SecurityMessage& inMessage); /** * \brief Parse InternalError from mobile side * \param inMessage SecurityMessage with binary data of handshake */ - bool ProccessInternalError(const SecurityMessage &inMessage); + bool ProccessInternalError(const SecurityMessage& inMessage); /** * \brief Sends security query * Create new array as concatenation of header and binary data * \param query SecurityQuery for sending via Control service - * \param connection_key Unique key used by other components as session identifier + * \param connection_key Unique key used by other components as session + * identifier */ - void SendQuery(const SecurityQuery &query, const uint32_t connection_key); + void SendQuery(const SecurityQuery& query, const uint32_t connection_key); // Thread that pumps handshake data SecurityMessageLoop security_messages_; @@ -199,19 +205,19 @@ class SecurityManagerImpl /** *\brief Pointer on instance of class implementing SessionObserver */ - protocol_handler::SessionObserver *session_observer_; + protocol_handler::SessionObserver* session_observer_; /** *\brief Pointer on instance of class implementing CryptoManager */ - security_manager::CryptoManager *crypto_manager_; + security_manager::CryptoManager* crypto_manager_; /** *\brief Pointer on instance of class implementing ProtocolHandler */ - protocol_handler::ProtocolHandler *protocol_handler_; + protocol_handler::ProtocolHandler* protocol_handler_; /** *\brief List of listeners for notify handshake done result */ - std::list<SecurityManagerListener *> listeners_; + std::list<SecurityManagerListener*> listeners_; DISALLOW_COPY_AND_ASSIGN(SecurityManagerImpl); }; } // namespace security_manager diff --git a/src/components/security_manager/src/crypto_manager_impl.cc b/src/components/security_manager/src/crypto_manager_impl.cc index 34b005a51c..c583798903 100644 --- a/src/components/security_manager/src/crypto_manager_impl.cc +++ b/src/components/security_manager/src/crypto_manager_impl.cc @@ -47,8 +47,8 @@ #include "utils/macro.h" #include "utils/scope_guard.h" -#define TLS1_1_MINIMAL_VERSION 0x1000103fL -#define CONST_SSL_METHOD_MINIMAL_VERSION 0x00909000L +#define TLS1_1_MINIMAL_VERSION 0x1000103fL +#define CONST_SSL_METHOD_MINIMAL_VERSION 0x00909000L namespace security_manager { @@ -58,30 +58,29 @@ uint32_t CryptoManagerImpl::instance_count_ = 0; sync_primitives::Lock CryptoManagerImpl::instance_lock_; namespace { - int debug_callback(int preverify_ok, X509_STORE_CTX *ctx) { - if (!preverify_ok) { - const int error = X509_STORE_CTX_get_error(ctx); - UNUSED(error); - LOG4CXX_WARN( - logger_, - "Certificate verification failed with error " << error - << " \"" << X509_verify_cert_error_string(error) << '"'); - } - return preverify_ok; +int debug_callback(int preverify_ok, X509_STORE_CTX* ctx) { + if (!preverify_ok) { + const int error = X509_STORE_CTX_get_error(ctx); + UNUSED(error); + LOG4CXX_WARN(logger_, + "Certificate verification failed with error " + << error << " \"" << X509_verify_cert_error_string(error) + << '"'); } + return preverify_ok; +} - void free_ctx(SSL_CTX** ctx) { - if (ctx) { - SSL_CTX_free(*ctx); - *ctx = NULL; - } +void free_ctx(SSL_CTX** ctx) { + if (ctx) { + SSL_CTX_free(*ctx); + *ctx = NULL; } } +} CryptoManagerImpl::CryptoManagerImpl( const utils::SharedPtr<const CryptoManagerSettings> set) - : settings_(set) - , context_(NULL) { + : settings_(set), context_(NULL) { LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(instance_lock_); instance_count_++; @@ -121,56 +120,49 @@ bool CryptoManagerImpl::Init() { } else { LOG4CXX_DEBUG(logger_, "Client mode"); } - LOG4CXX_DEBUG(logger_, "Peer verification " - << (get_settings().verify_peer() ? "enabled" : "disabled")); - LOG4CXX_DEBUG(logger_, "CA certificate file is \"" - << get_settings().ca_cert_path() << '"'); + LOG4CXX_DEBUG(logger_, + "Peer verification " + << (get_settings().verify_peer() ? "enabled" : "disabled")); + LOG4CXX_DEBUG(logger_, + "CA certificate file is \"" << get_settings().ca_cert_path() + << '"'); #if OPENSSL_VERSION_NUMBER < CONST_SSL_METHOD_MINIMAL_VERSION - SSL_METHOD *method; + SSL_METHOD* method; #else - const SSL_METHOD *method; + const SSL_METHOD* method; #endif switch (get_settings().security_manager_protocol_name()) { case SSLv3: - method = is_server ? - SSLv3_server_method() : - SSLv3_client_method(); + method = is_server ? SSLv3_server_method() : SSLv3_client_method(); break; case TLSv1: - method = is_server ? - TLSv1_server_method() : - TLSv1_client_method(); + method = is_server ? TLSv1_server_method() : TLSv1_client_method(); break; case TLSv1_1: #if OPENSSL_VERSION_NUMBER < TLS1_1_MINIMAL_VERSION - LOG4CXX_WARN(logger_, - "OpenSSL has no TLSv1.1 with version lower 1.0.1, set TLSv1.0"); - method = is_server ? - TLSv1_server_method() : - TLSv1_client_method(); + LOG4CXX_WARN( + logger_, + "OpenSSL has no TLSv1.1 with version lower 1.0.1, set TLSv1.0"); + method = is_server ? TLSv1_server_method() : TLSv1_client_method(); #else - method = is_server ? - TLSv1_1_server_method() : - TLSv1_1_client_method(); + method = is_server ? TLSv1_1_server_method() : TLSv1_1_client_method(); #endif break; case TLSv1_2: #if OPENSSL_VERSION_NUMBER < TLS1_1_MINIMAL_VERSION - LOG4CXX_WARN(logger_, - "OpenSSL has no TLSv1.2 with version lower 1.0.1, set TLSv1.0"); - method = is_server ? - TLSv1_server_method() : - TLSv1_client_method(); + LOG4CXX_WARN( + logger_, + "OpenSSL has no TLSv1.2 with version lower 1.0.1, set TLSv1.0"); + method = is_server ? TLSv1_server_method() : TLSv1_client_method(); #else - method = is_server ? - TLSv1_2_server_method() : - TLSv1_2_client_method(); + method = is_server ? TLSv1_2_server_method() : TLSv1_2_client_method(); #endif break; default: - LOG4CXX_ERROR(logger_, "Unknown protocol: " - << get_settings().security_manager_protocol_name()); + LOG4CXX_ERROR(logger_, + "Unknown protocol: " + << get_settings().security_manager_protocol_name()); return false; } if (context_) { @@ -178,7 +170,6 @@ bool CryptoManagerImpl::Init() { } context_ = SSL_CTX_new(method); - utils::ScopeGuard guard = utils::MakeGuard(free_ctx, &context_); // Disable SSL2 as deprecated @@ -189,10 +180,12 @@ bool CryptoManagerImpl::Init() { if (get_settings().ciphers_list().empty()) { LOG4CXX_WARN(logger_, "Empty ciphers list"); } else { - LOG4CXX_DEBUG(logger_, "Cipher list: " << get_settings().ciphers_list()); - if (!SSL_CTX_set_cipher_list(context_, get_settings().ciphers_list().c_str())) { - LOG4CXX_ERROR(logger_, "Could not set cipher list: " - << get_settings().ciphers_list()); + LOG4CXX_DEBUG(logger_, "Cipher list: " << get_settings().ciphers_list()); + if (!SSL_CTX_set_cipher_list(context_, + get_settings().ciphers_list().c_str())) { + LOG4CXX_ERROR( + logger_, + "Could not set cipher list: " << get_settings().ciphers_list()); return false; } } @@ -208,25 +201,26 @@ bool CryptoManagerImpl::Init() { if (!result) { const unsigned long error = ERR_get_error(); UNUSED(error); - LOG4CXX_WARN( - logger_, - "Wrong certificate file '" << get_settings().ca_cert_path() - << "', err 0x" << std::hex << error - << " \"" << ERR_reason_error_string(error) << '"'); + LOG4CXX_WARN(logger_, + "Wrong certificate file '" + << get_settings().ca_cert_path() << "', err 0x" << std::hex + << error << " \"" << ERR_reason_error_string(error) + << '"'); } guard.Dismiss(); const int verify_mode = - get_settings().verify_peer() ? SSL_VERIFY_PEER | - SSL_VERIFY_FAIL_IF_NO_PEER_CERT - : SSL_VERIFY_NONE; - LOG4CXX_DEBUG(logger_, "Setting up peer verification in mode: " << verify_mode); + get_settings().verify_peer() + ? SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT + : SSL_VERIFY_NONE; + LOG4CXX_DEBUG(logger_, + "Setting up peer verification in mode: " << verify_mode); SSL_CTX_set_verify(context_, verify_mode, &debug_callback); return true; } -bool CryptoManagerImpl::OnCertificateUpdated(const std::string &data) { +bool CryptoManagerImpl::OnCertificateUpdated(const std::string& data) { LOG4CXX_AUTO_TRACE(logger_); if (!context_) { LOG4CXX_WARN(logger_, "Not initialized"); @@ -241,7 +235,7 @@ SSLContext* CryptoManagerImpl::CreateSSLContext() { return NULL; } - SSL *conn = SSL_new(context_); + SSL* conn = SSL_new(context_); if (conn == NULL) return NULL; @@ -255,7 +249,7 @@ SSLContext* CryptoManagerImpl::CreateSSLContext() { get_settings().maximum_payload_size()); } -void CryptoManagerImpl::ReleaseSSLContext(SSLContext *context) { +void CryptoManagerImpl::ReleaseSSLContext(SSLContext* context) { delete context; } @@ -263,7 +257,7 @@ std::string CryptoManagerImpl::LastError() const { if (!context_) { return std::string("Initialization is not completed"); } - const char *reason = ERR_reason_error_string(ERR_get_error()); + const char* reason = ERR_reason_error_string(ERR_get_error()); return std::string(reason ? reason : ""); } @@ -286,8 +280,7 @@ const CryptoManagerSettings& CryptoManagerImpl::get_settings() const { return *settings_; } - -bool CryptoManagerImpl::set_certificate(const std::string &cert_data) { +bool CryptoManagerImpl::set_certificate(const std::string& cert_data) { if (cert_data.empty()) { LOG4CXX_WARN(logger_, "Empty certificate"); return false; @@ -300,7 +293,6 @@ bool CryptoManagerImpl::set_certificate(const std::string &cert_data) { char* buf = new char[cert_data.length()]; int len = BIO_read(bmem, buf, cert_data.length()); - BIO* bio_cert = BIO_new(BIO_s_mem()); if (NULL == bio_cert) { LOG4CXX_WARN(logger_, "Unable to update certificate. BIO not created"); @@ -316,7 +308,7 @@ bool CryptoManagerImpl::set_certificate(const std::string &cert_data) { } PKCS12* p12 = d2i_PKCS12_bio(bio_cert, NULL); - if(NULL == p12) { + if (NULL == p12) { LOG4CXX_ERROR(logger_, "Unable to parse certificate"); return false; } @@ -325,7 +317,7 @@ bool CryptoManagerImpl::set_certificate(const std::string &cert_data) { X509* cert = NULL; PKCS12_parse(p12, NULL, &pkey, &cert, NULL); - if (NULL == cert || NULL == pkey){ + if (NULL == cert || NULL == pkey) { LOG4CXX_WARN(logger_, "Either certificate or key not valid."); return false; } @@ -348,19 +340,22 @@ bool CryptoManagerImpl::set_certificate(const std::string &cert_data) { return true; } -int CryptoManagerImpl::pull_number_from_buf(char *buf, int *idx) { - if (!idx) { return 0; } +int CryptoManagerImpl::pull_number_from_buf(char* buf, int* idx) { + if (!idx) { + return 0; + } const int val = ((buf[*idx] - '0') * 10) + buf[(*idx) + 1] - '0'; *idx = *idx + 2; return val; } -void CryptoManagerImpl::asn1_time_to_tm(ASN1_TIME *time) { - char* buf = (char *)time->data; +void CryptoManagerImpl::asn1_time_to_tm(ASN1_TIME* time) { + char* buf = (char*)time->data; int index = 0; const int year = pull_number_from_buf(buf, &index); if (V_ASN1_GENERALIZEDTIME == time->type) { - expiration_time_.tm_year = (year * 100 -1900) + pull_number_from_buf(buf, &index); + expiration_time_.tm_year = + (year * 100 - 1900) + pull_number_from_buf(buf, &index); } else { expiration_time_.tm_year = year < 50 ? year + 100 : year; } @@ -370,7 +365,7 @@ void CryptoManagerImpl::asn1_time_to_tm(ASN1_TIME *time) { const int hour = pull_number_from_buf(buf, &index); const int mn = pull_number_from_buf(buf, &index); - expiration_time_.tm_mon = mon -1; + expiration_time_.tm_mon = mon - 1; expiration_time_.tm_mday = day; expiration_time_.tm_hour = hour; expiration_time_.tm_min = mn; @@ -383,7 +378,7 @@ void CryptoManagerImpl::asn1_time_to_tm(ASN1_TIME *time) { const int mn1 = pull_number_from_buf(buf, &index); expiration_time_.tm_sec = (mn * 3600) + (mn1 * 60); } else { - const int sec = pull_number_from_buf(buf, &index); + const int sec = pull_number_from_buf(buf, &index); expiration_time_.tm_sec = sec; } } diff --git a/src/components/security_manager/src/security_manager_impl.cc b/src/components/security_manager/src/security_manager_impl.cc index a8d247cbf1..556cc291d1 100644 --- a/src/components/security_manager/src/security_manager_impl.cc +++ b/src/components/security_manager/src/security_manager_impl.cc @@ -45,9 +45,10 @@ static const char* kErrId = "id"; static const char* kErrText = "text"; SecurityManagerImpl::SecurityManagerImpl() - : security_messages_("SecurityManager", this), - session_observer_(NULL), crypto_manager_(NULL), protocol_handler_(NULL) { -} + : security_messages_("SecurityManager", this) + , session_observer_(NULL) + , crypto_manager_(NULL) + , protocol_handler_(NULL) {} void SecurityManagerImpl::OnMessageReceived( const ::protocol_handler::RawMessagePtr message) { @@ -56,14 +57,14 @@ void SecurityManagerImpl::OnMessageReceived( } SecurityMessage securityMessagePtr(new SecurityQuery()); - const bool result = securityMessagePtr->SerializeQuery( - message->data(), message->data_size()); + const bool result = + securityMessagePtr->SerializeQuery(message->data(), message->data_size()); if (!result) { // result will be false only if data less then query header const std::string error_text("Incorrect message received"); LOG4CXX_ERROR(logger_, error_text); - SendInternalError(message->connection_key(), - ERROR_INVALID_QUERY_SIZE, error_text); + SendInternalError( + message->connection_key(), ERROR_INVALID_QUERY_SIZE, error_text); return; } securityMessagePtr->set_connection_key(message->connection_key()); @@ -73,11 +74,10 @@ void SecurityManagerImpl::OnMessageReceived( } void SecurityManagerImpl::OnMobileMessageSent( - const ::protocol_handler::RawMessagePtr ) { -} + const ::protocol_handler::RawMessagePtr) {} void SecurityManagerImpl::set_session_observer( - protocol_handler::SessionObserver *observer) { + protocol_handler::SessionObserver* observer) { if (!observer) { LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to SessionObserver."); return; @@ -86,7 +86,7 @@ void SecurityManagerImpl::set_session_observer( } void SecurityManagerImpl::set_protocol_handler( - protocol_handler::ProtocolHandler *handler) { + protocol_handler::ProtocolHandler* handler) { if (!handler) { LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to ProtocolHandler."); return; @@ -94,7 +94,7 @@ void SecurityManagerImpl::set_protocol_handler( protocol_handler_ = handler; } -void SecurityManagerImpl::set_crypto_manager(CryptoManager *crypto_manager) { +void SecurityManagerImpl::set_crypto_manager(CryptoManager* crypto_manager) { if (!crypto_manager) { LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to CryptoManager."); return; @@ -105,11 +105,11 @@ void SecurityManagerImpl::set_crypto_manager(CryptoManager *crypto_manager) { void SecurityManagerImpl::Handle(const SecurityMessage message) { DCHECK(message); LOG4CXX_INFO(logger_, "Received Security message from Mobile side"); - if (!crypto_manager_) { + if (!crypto_manager_) { const std::string error_text("Invalid (NULL) CryptoManager."); LOG4CXX_ERROR(logger_, error_text); - SendInternalError(message->get_connection_key(), - ERROR_NOT_SUPPORTED, error_text); + SendInternalError( + message->get_connection_key(), ERROR_NOT_SUPPORTED, error_text); return; } switch (message->get_header().query_id) { @@ -128,21 +128,21 @@ void SecurityManagerImpl::Handle(const SecurityMessage message) { const std::string error_text("Unknown query identifier."); LOG4CXX_ERROR(logger_, error_text); SendInternalError(message->get_connection_key(), - ERROR_INVALID_QUERY_ID, error_text, + ERROR_INVALID_QUERY_ID, + error_text, message->get_header().seq_number); - } - break; - } + } break; + } } -security_manager::SSLContext *SecurityManagerImpl::CreateSSLContext( - const uint32_t &connection_key) { +security_manager::SSLContext* SecurityManagerImpl::CreateSSLContext( + const uint32_t& connection_key) { LOG4CXX_INFO(logger_, "ProtectService processing"); DCHECK(session_observer_); DCHECK(crypto_manager_); - security_manager::SSLContext *ssl_context = - session_observer_->GetSSLContext(connection_key, protocol_handler::kControl); + security_manager::SSLContext* ssl_context = session_observer_->GetSSLContext( + connection_key, protocol_handler::kControl); // return exists SSLCOntext for current connection/session if (ssl_context) { return ssl_context; @@ -153,12 +153,12 @@ security_manager::SSLContext *SecurityManagerImpl::CreateSSLContext( const std::string error_text("CryptoManager could not create SSL context."); LOG4CXX_ERROR(logger_, error_text); // Generate response query and post to security_messages_ - SendInternalError(connection_key, ERROR_INTERNAL, - error_text); + SendInternalError(connection_key, ERROR_INTERNAL, error_text); return NULL; } - const int result = session_observer_->SetSSLContext(connection_key, ssl_context); + const int result = + session_observer_->SetSSLContext(connection_key, ssl_context); if (ERROR_SUCCESS != result) { // delete SSLContext on any error crypto_manager_->ReleaseSSLContext(ssl_context); @@ -167,19 +167,20 @@ security_manager::SSLContext *SecurityManagerImpl::CreateSSLContext( } DCHECK(session_observer_->GetSSLContext(connection_key, protocol_handler::kControl)); - LOG4CXX_DEBUG(logger_, "Set SSL context to connection_key " << connection_key); + LOG4CXX_DEBUG(logger_, + "Set SSL context to connection_key " << connection_key); return ssl_context; } void SecurityManagerImpl::StartHandshake(uint32_t connection_key) { DCHECK(session_observer_); LOG4CXX_INFO(logger_, "StartHandshake: connection_key " << connection_key); - security_manager::SSLContext *ssl_context = - session_observer_->GetSSLContext(connection_key, - protocol_handler::kControl); + security_manager::SSLContext* ssl_context = session_observer_->GetSSLContext( + connection_key, protocol_handler::kControl); if (!ssl_context) { - const std::string error_text("StartHandshake failed, " - "connection is not protected"); + const std::string error_text( + "StartHandshake failed, " + "connection is not protected"); LOG4CXX_ERROR(logger_, error_text); SendInternalError(connection_key, ERROR_INTERNAL, error_text); NotifyListenersOnHandshakeDone(connection_key, @@ -187,7 +188,7 @@ void SecurityManagerImpl::StartHandshake(uint32_t connection_key) { return; } - if(crypto_manager_->IsCertificateUpdateRequired()) { + if (crypto_manager_->IsCertificateUpdateRequired()) { NotifyOnCertififcateUpdateRequired(); } @@ -198,10 +199,10 @@ void SecurityManagerImpl::StartHandshake(uint32_t connection_key) { } ssl_context->SetHandshakeContext( - session_observer_->GetHandshakeContext(connection_key)); + session_observer_->GetHandshakeContext(connection_key)); size_t data_size = 0; - const uint8_t *data = NULL; + const uint8_t* data = NULL; const security_manager::SSLContext::HandshakeResult result = ssl_context->StartHandshake(&data, &data_size); @@ -218,23 +219,25 @@ void SecurityManagerImpl::StartHandshake(uint32_t connection_key) { SendHandshakeBinData(connection_key, data, data_size); } } -void SecurityManagerImpl::AddListener(SecurityManagerListener *const listener) { +void SecurityManagerImpl::AddListener(SecurityManagerListener* const listener) { if (!listener) { - LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to SecurityManagerListener."); + LOG4CXX_ERROR(logger_, + "Invalid (NULL) pointer to SecurityManagerListener."); return; } listeners_.push_back(listener); } -void SecurityManagerImpl::RemoveListener(SecurityManagerListener *const listener) { +void SecurityManagerImpl::RemoveListener( + SecurityManagerListener* const listener) { if (!listener) { - LOG4CXX_ERROR(logger_, "Invalid (NULL) pointer to SecurityManagerListener."); + LOG4CXX_ERROR(logger_, + "Invalid (NULL) pointer to SecurityManagerListener."); return; } listeners_.remove(listener); } void SecurityManagerImpl::NotifyListenersOnHandshakeDone( - const uint32_t &connection_key, - SSLContext::HandshakeResult error) { + const uint32_t& connection_key, SSLContext::HandshakeResult error) { LOG4CXX_AUTO_TRACE(logger_); std::list<SecurityManagerListener*>::iterator it = listeners_.begin(); while (it != listeners_.end()) { @@ -256,47 +259,52 @@ void SecurityManagerImpl::NotifyOnCertififcateUpdateRequired() { } } -bool SecurityManagerImpl::ProccessHandshakeData(const SecurityMessage &inMessage) { +bool SecurityManagerImpl::ProccessHandshakeData( + const SecurityMessage& inMessage) { LOG4CXX_INFO(logger_, "SendHandshakeData processing"); DCHECK(inMessage); - DCHECK(inMessage->get_header().query_id == SecurityQuery::SEND_HANDSHAKE_DATA); + DCHECK(inMessage->get_header().query_id == + SecurityQuery::SEND_HANDSHAKE_DATA); const uint32_t seqNumber = inMessage->get_header().seq_number; const uint32_t connection_key = inMessage->get_connection_key(); - LOG4CXX_DEBUG(logger_, "Received " << inMessage->get_data_size() - << " bytes handshake data "); + LOG4CXX_DEBUG(logger_, + "Received " << inMessage->get_data_size() + << " bytes handshake data "); if (!inMessage->get_data_size()) { const std::string error_text("SendHandshakeData: null arguments size."); LOG4CXX_ERROR(logger_, error_text); - SendInternalError(connection_key, ERROR_INVALID_QUERY_SIZE, - error_text, seqNumber); + SendInternalError( + connection_key, ERROR_INVALID_QUERY_SIZE, error_text, seqNumber); return false; } DCHECK(session_observer_); - SSLContext *sslContext = - session_observer_->GetSSLContext(connection_key, - protocol_handler::kControl); + SSLContext* sslContext = session_observer_->GetSSLContext( + connection_key, protocol_handler::kControl); if (!sslContext) { const std::string error_text("SendHandshakeData: No ssl context."); LOG4CXX_ERROR(logger_, error_text); - SendInternalError(connection_key, ERROR_SERVICE_NOT_PROTECTED, - error_text, seqNumber); + SendInternalError( + connection_key, ERROR_SERVICE_NOT_PROTECTED, error_text, seqNumber); NotifyListenersOnHandshakeDone(connection_key, SSLContext::Handshake_Result_Fail); return false; } size_t out_data_size; - const uint8_t *out_data; + const uint8_t* out_data; const SSLContext::HandshakeResult handshake_result = - sslContext->DoHandshakeStep(inMessage->get_data(), inMessage->get_data_size(), - &out_data, &out_data_size); + sslContext->DoHandshakeStep(inMessage->get_data(), + inMessage->get_data_size(), + &out_data, + &out_data_size); if (handshake_result == SSLContext::Handshake_Result_AbnormalFail) { // Do not return handshake data on AbnormalFail or null returned values const std::string erorr_text(sslContext->LastError()); - LOG4CXX_ERROR(logger_, "SendHandshakeData: Handshake failed: " << erorr_text); - SendInternalError(connection_key, - ERROR_SSL_INVALID_DATA, erorr_text, seqNumber); + LOG4CXX_ERROR(logger_, + "SendHandshakeData: Handshake failed: " << erorr_text); + SendInternalError( + connection_key, ERROR_SSL_INVALID_DATA, erorr_text, seqNumber); NotifyListenersOnHandshakeDone(connection_key, SSLContext::Handshake_Result_Fail); // no handshake data to send @@ -307,7 +315,7 @@ bool SecurityManagerImpl::ProccessHandshakeData(const SecurityMessage &inMessage LOG4CXX_DEBUG(logger_, "SSL initialization finished success."); NotifyListenersOnHandshakeDone(connection_key, SSLContext::Handshake_Result_Success); - } else if (handshake_result != SSLContext::Handshake_Result_Success){ + } else if (handshake_result != SSLContext::Handshake_Result_Success) { // On handshake fail LOG4CXX_WARN(logger_, "SSL initialization finished with fail."); NotifyListenersOnHandshakeDone(connection_key, handshake_result); @@ -315,84 +323,93 @@ bool SecurityManagerImpl::ProccessHandshakeData(const SecurityMessage &inMessage if (out_data && out_data_size) { // answer with the same seqNumber as income message - SendHandshakeBinData(connection_key, out_data, out_data_size, - seqNumber); + SendHandshakeBinData(connection_key, out_data, out_data_size, seqNumber); } return true; } -bool SecurityManagerImpl::ProccessInternalError(const SecurityMessage &inMessage) { - LOG4CXX_INFO(logger_, "Received InternalError with Json message" - << inMessage->get_json_message()); +bool SecurityManagerImpl::ProccessInternalError( + const SecurityMessage& inMessage) { + LOG4CXX_INFO(logger_, + "Received InternalError with Json message" + << inMessage->get_json_message()); Json::Value root; Json::Reader reader; const bool parsingSuccessful = reader.parse(inMessage->get_json_message(), root); if (!parsingSuccessful) return false; - LOG4CXX_DEBUG(logger_, "Received InternalError id " << root[kErrId].asString() - << ", text: " << root[kErrText].asString()); + LOG4CXX_DEBUG(logger_, + "Received InternalError id " + << root[kErrId].asString() + << ", text: " << root[kErrText].asString()); return true; } -void SecurityManagerImpl::SendHandshakeBinData( - const uint32_t connection_key, const uint8_t *const data, - const size_t data_size, const uint32_t seq_number) { - const SecurityQuery::QueryHeader header( - SecurityQuery::NOTIFICATION, - SecurityQuery::SEND_HANDSHAKE_DATA, seq_number); - DCHECK(data_size < 1024 * 1024 *1024 ); - const SecurityQuery query = SecurityQuery(header, connection_key, data, data_size); +void SecurityManagerImpl::SendHandshakeBinData(const uint32_t connection_key, + const uint8_t* const data, + const size_t data_size, + const uint32_t seq_number) { + const SecurityQuery::QueryHeader header(SecurityQuery::NOTIFICATION, + SecurityQuery::SEND_HANDSHAKE_DATA, + seq_number); + DCHECK(data_size < 1024 * 1024 * 1024); + const SecurityQuery query = + SecurityQuery(header, connection_key, data, data_size); SendQuery(query, connection_key); LOG4CXX_DEBUG(logger_, "Sent " << data_size << " bytes handshake data "); } void SecurityManagerImpl::SendInternalError(const uint32_t connection_key, - const uint8_t &error_id, - const std::string &erorr_text, - const uint32_t seq_number) { + const uint8_t& error_id, + const std::string& erorr_text, + const uint32_t seq_number) { Json::Value value; - value[kErrId] = error_id; + value[kErrId] = error_id; value[kErrText] = erorr_text; const std::string error_str = value.toStyledString(); - SecurityQuery::QueryHeader header(SecurityQuery::NOTIFICATION, - SecurityQuery::SEND_INTERNAL_ERROR, - // header save json size only (exclude last byte) - seq_number, error_str.size()); + SecurityQuery::QueryHeader header( + SecurityQuery::NOTIFICATION, + SecurityQuery::SEND_INTERNAL_ERROR, + // header save json size only (exclude last byte) + seq_number, + error_str.size()); // Raw data is json string and error id at last byte std::vector<uint8_t> data_sending(error_str.size() + 1); memcpy(&data_sending[0], error_str.c_str(), error_str.size()); - data_sending[data_sending.size()-1] = error_id; + data_sending[data_sending.size() - 1] = error_id; - const SecurityQuery query(header, connection_key, - &data_sending[0], data_sending.size()); + const SecurityQuery query( + header, connection_key, &data_sending[0], data_sending.size()); SendQuery(query, connection_key); - LOG4CXX_DEBUG(logger_, "Sent Internal error id " << static_cast<int>(error_id) - << " : \"" << erorr_text << "\"."); + LOG4CXX_DEBUG(logger_, + "Sent Internal error id " << static_cast<int>(error_id) + << " : \"" << erorr_text << "\"."); } void SecurityManagerImpl::SendQuery(const SecurityQuery& query, - const uint32_t connection_key) { + const uint32_t connection_key) { const std::vector<uint8_t> data_sending = query.DeserializeQuery(); uint32_t connection_handle = 0; uint8_t sessionID = 0; uint8_t protocol_version; - session_observer_->PairFromKey(connection_key, &connection_handle, - &sessionID); - if (session_observer_->ProtocolVersionUsed(connection_handle, sessionID, - protocol_version)) { + session_observer_->PairFromKey( + connection_key, &connection_handle, &sessionID); + if (session_observer_->ProtocolVersionUsed( + connection_handle, sessionID, protocol_version)) { const ::protocol_handler::RawMessagePtr rawMessagePtr( - new protocol_handler::RawMessage(connection_key, - protocol_version, - &data_sending[0], data_sending.size(), - protocol_handler::kControl)); + new protocol_handler::RawMessage(connection_key, + protocol_version, + &data_sending[0], + data_sending.size(), + protocol_handler::kControl)); DCHECK(protocol_handler_); // Add RawMessage to ProtocolHandler message query protocol_handler_->SendMessageToMobileApp(rawMessagePtr, false); } } -const char *SecurityManagerImpl::ConfigSection() { +const char* SecurityManagerImpl::ConfigSection() { return "Security Manager"; } diff --git a/src/components/security_manager/src/security_query.cc b/src/components/security_manager/src/security_query.cc index cd4da03c15..60233dde5e 100644 --- a/src/components/security_manager/src/security_query.cc +++ b/src/components/security_manager/src/security_query.cc @@ -38,35 +38,37 @@ namespace security_manager { SecurityQuery::QueryHeader::QueryHeader() - : query_type(INVALID_QUERY_TYPE), query_id(INVALID_QUERY_ID), - seq_number(0), json_size(0) { -} - -SecurityQuery::QueryHeader::QueryHeader(uint8_t queryType, uint32_t queryId, - uint32_t seqNumber, uint32_t jsonSize) - : query_type(queryType), query_id(queryId), - seq_number(seqNumber), json_size(jsonSize) { -} + : query_type(INVALID_QUERY_TYPE) + , query_id(INVALID_QUERY_ID) + , seq_number(0) + , json_size(0) {} + +SecurityQuery::QueryHeader::QueryHeader(uint8_t queryType, + uint32_t queryId, + uint32_t seqNumber, + uint32_t jsonSize) + : query_type(queryType) + , query_id(queryId) + , seq_number(seqNumber) + , json_size(jsonSize) {} SecurityQuery::SecurityQuery() - : header_(INVALID_QUERY_TYPE, INVALID_QUERY_ID, 0), connection_key_(0) { -} + : header_(INVALID_QUERY_TYPE, INVALID_QUERY_ID, 0), connection_key_(0) {} -SecurityQuery::SecurityQuery(const SecurityQuery::QueryHeader &header, +SecurityQuery::SecurityQuery(const SecurityQuery::QueryHeader& header, const uint32_t connection_key, - const uint8_t *const raw_data, + const uint8_t* const raw_data, const size_t raw_data_size) - : header_(header), connection_key_(connection_key), - data_(raw_data, raw_data + raw_data_size) { -} + : header_(header) + , connection_key_(connection_key) + , data_(raw_data, raw_data + raw_data_size) {} -SecurityQuery::SecurityQuery(const SecurityQuery::QueryHeader &header, +SecurityQuery::SecurityQuery(const SecurityQuery::QueryHeader& header, const uint32_t connection_key) - : header_(header), connection_key_(connection_key) { -} + : header_(header), connection_key_(connection_key) {} -bool SecurityQuery::SerializeQuery(const uint8_t *const raw_data, - const size_t raw_data_size) { +bool SecurityQuery::SerializeQuery(const uint8_t* const raw_data, + const size_t raw_data_size) { const size_t header_size = sizeof(QueryHeader); if (raw_data_size < header_size || !raw_data) { return false; @@ -74,21 +76,21 @@ bool SecurityQuery::SerializeQuery(const uint8_t *const raw_data, const uint8_t query_type = raw_data[0]; switch (query_type) { case REQUEST: - header_.query_type = REQUEST; + header_.query_type = REQUEST; break; case RESPONSE: - header_.query_type = RESPONSE; + header_.query_type = RESPONSE; break; case NOTIFICATION: - header_.query_type = NOTIFICATION; + header_.query_type = NOTIFICATION; break; default: header_.query_type = INVALID_QUERY_TYPE; break; } // Convert to Little-Endian and clean high byte - const uint32_t query_id = 0x00FFFFFF & - BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data)); + const uint32_t query_id = + 0x00FFFFFF & BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data)); switch (query_id) { case SEND_HANDSHAKE_DATA: header_.query_id = SEND_HANDSHAKE_DATA; @@ -100,22 +102,25 @@ bool SecurityQuery::SerializeQuery(const uint8_t *const raw_data, header_.query_id = INVALID_QUERY_ID; break; } - header_.seq_number = BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data + 4)); - header_.json_size = BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data + 8)); + header_.seq_number = + BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data + 4)); + header_.json_size = + BE_TO_LE32(*reinterpret_cast<const uint32_t*>(raw_data + 8)); if (header_.json_size > raw_data_size - header_size) return false; if (header_.json_size > 0) { - const char *const json_data = + const char* const json_data = reinterpret_cast<const char*>(raw_data + header_size); json_message_.assign(json_data, json_data + header_.json_size); } - const uint32_t bin_data_size = raw_data_size - (header_size + header_.json_size); + const uint32_t bin_data_size = + raw_data_size - (header_size + header_.json_size); if (bin_data_size > 0) { - const char *const bin_data = - reinterpret_cast<const char*>(raw_data + header_size + header_.json_size); + const char* const bin_data = reinterpret_cast<const char*>( + raw_data + header_size + header_.json_size); data_.assign(bin_data, bin_data + bin_data_size); } return true; @@ -124,31 +129,33 @@ bool SecurityQuery::SerializeQuery(const uint8_t *const raw_data, const std::vector<uint8_t> SecurityQuery::DeserializeQuery() const { SecurityQuery::QueryHeader deserialize_header(header_); const uint32_t tmp = deserialize_header.query_id << 8; - deserialize_header.query_id = LE_TO_BE32(tmp); + deserialize_header.query_id = LE_TO_BE32(tmp); deserialize_header.seq_number = LE_TO_BE32(deserialize_header.seq_number); - deserialize_header.json_size = LE_TO_BE32(deserialize_header.json_size); + deserialize_header.json_size = LE_TO_BE32(deserialize_header.json_size); const size_t header_size = sizeof(deserialize_header); // vector of header and raw_data - std::vector<uint8_t> data_sending(header_size + data_.size() + json_message_.size()); + std::vector<uint8_t> data_sending(header_size + data_.size() + + json_message_.size()); // copy header memcpy(&data_sending[0], &deserialize_header, header_size); // copy binary data std::copy(data_.begin(), data_.end(), data_sending.begin() + header_size); // copy text (json) data - std::copy(json_message_.begin(), json_message_.end(), + std::copy(json_message_.begin(), + json_message_.end(), data_sending.begin() + header_size + data_.size()); return data_sending; } -void SecurityQuery::set_data(const uint8_t *const binary_data, - const size_t bin_data_size) { - DCHECK(binary_data); - DCHECK(bin_data_size); - data_.assign(binary_data, binary_data + bin_data_size); +void SecurityQuery::set_data(const uint8_t* const binary_data, + const size_t bin_data_size) { + DCHECK(binary_data); + DCHECK(bin_data_size); + data_.assign(binary_data, binary_data + bin_data_size); } -void SecurityQuery::set_json_message(const std::string &json_message) { +void SecurityQuery::set_json_message(const std::string& json_message) { json_message_ = json_message; } @@ -156,11 +163,11 @@ void SecurityQuery::set_connection_key(const uint32_t connection_key) { connection_key_ = connection_key; } -void SecurityQuery::set_header(const SecurityQuery::QueryHeader &header) { +void SecurityQuery::set_header(const SecurityQuery::QueryHeader& header) { header_ = header; } -const SecurityQuery::QueryHeader &SecurityQuery::get_header() const { +const SecurityQuery::QueryHeader& SecurityQuery::get_header() const { return header_; } @@ -172,7 +179,7 @@ size_t SecurityQuery::get_data_size() const { return data_.size(); } -const std::string &SecurityQuery::get_json_message() const { +const std::string& SecurityQuery::get_json_message() const { return json_message_; } diff --git a/src/components/security_manager/src/ssl_context_impl.cc b/src/components/security_manager/src/ssl_context_impl.cc index 77b322cb1b..6f53234867 100644 --- a/src/components/security_manager/src/ssl_context_impl.cc +++ b/src/components/security_manager/src/ssl_context_impl.cc @@ -45,8 +45,9 @@ namespace security_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "SecurityManager") -CryptoManagerImpl::SSLContextImpl::SSLContextImpl( - SSL* conn, Mode mode, size_t maximum_payload_size) +CryptoManagerImpl::SSLContextImpl::SSLContextImpl(SSL* conn, + Mode mode, + size_t maximum_payload_size) : connection_(conn) , bioIn_(BIO_new(BIO_s_mem())) , bioOut_(BIO_new(BIO_s_mem())) @@ -191,8 +192,7 @@ CryptoManagerImpl::SSLContextImpl::CheckCertContext() { if (!(hsh_context_.expected_cn.CompareIgnoreCase(cn.c_str()))) { LOG4CXX_ERROR(logger_, "Trying to run handshake with wrong app name: " - << cn - << ". Expected app name: " + << cn << ". Expected app name: " << hsh_context_.expected_cn.AsMBString()); return Handshake_Result_AppNameMismatch; } @@ -200,8 +200,7 @@ CryptoManagerImpl::SSLContextImpl::CheckCertContext() { if (!(hsh_context_.expected_sn.CompareIgnoreCase(sn.c_str()))) { LOG4CXX_ERROR(logger_, "Trying to run handshake with wrong app id: " - << sn - << ". Expected app id: " + << sn << ". Expected app id: " << hsh_context_.expected_sn.AsMBString()); return Handshake_Result_AppIDMismatch; } @@ -278,11 +277,8 @@ CryptoManagerImpl::SSLContextImpl::PerformHandshake() { SetHandshakeError(error); LOG4CXX_WARN(logger_, "Handshake failed with error " - << " -> " - << SSL_get_error(connection_, error) - << " \"" - << LastError() - << '"'); + << " -> " << SSL_get_error(connection_, error) << " \"" + << LastError() << '"'); ResetConnection(); is_handshake_pending_ = false; diff --git a/src/components/security_manager/test/crypto_manager_impl_test.cc b/src/components/security_manager/test/crypto_manager_impl_test.cc index 93b1ef49fc..27f91866ac 100644 --- a/src/components/security_manager/test/crypto_manager_impl_test.cc +++ b/src/components/security_manager/test/crypto_manager_impl_test.cc @@ -34,7 +34,7 @@ #include <openssl/ssl3.h> #else #include <openssl/ssl.h> -#endif //__QNXNTO__ +#endif //__QNXNTO__ #include <limits> #include <fstream> #include <sstream> @@ -58,7 +58,6 @@ const std::string kFordCipher = SSL3_TXT_RSA_DES_192_CBC3_SHA; // Used cipher from ford protocol requirement const std::string kFordCipher = TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384; #endif - } namespace test { @@ -96,9 +95,8 @@ class CryptoManagerTest : public testing::Test { } void InitSecurityManager() { - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kAllCiphers); const bool crypto_manager_initialization = crypto_manager_->Init(); ASSERT_TRUE(crypto_manager_initialization); } @@ -108,8 +106,8 @@ class CryptoManagerTest : public testing::Test { const std::string& cipher) { ON_CALL(*mock_security_manager_settings_, security_manager_mode()) .WillByDefault(Return(mode)); - ON_CALL(*mock_security_manager_settings_, - security_manager_protocol_name()).WillByDefault(Return(protocol)); + ON_CALL(*mock_security_manager_settings_, security_manager_protocol_name()) + .WillByDefault(Return(protocol)); ON_CALL(*mock_security_manager_settings_, certificate_data()) .WillByDefault(ReturnRef(certificate_data_base64_)); ON_CALL(*mock_security_manager_settings_, ciphers_list()) @@ -143,14 +141,15 @@ TEST_F(CryptoManagerTest, WrongInit) { EXPECT_CALL(*mock_security_manager_settings_, security_manager_mode()) .WillRepeatedly(Return(security_manager::SERVER)); - EXPECT_CALL(*mock_security_manager_settings_, security_manager_protocol_name()) - .WillOnce(Return(UNKNOWN)); + EXPECT_CALL(*mock_security_manager_settings_, + security_manager_protocol_name()).WillOnce(Return(UNKNOWN)); EXPECT_FALSE(crypto_manager_->Init()); - EXPECT_NE( std::string(),crypto_manager_->LastError()); + EXPECT_NE(std::string(), crypto_manager_->LastError()); // Unexistent cipher value const std::string invalid_cipher = "INVALID_UNKNOWN_CIPHER"; - EXPECT_CALL(*mock_security_manager_settings_, security_manager_protocol_name()) + EXPECT_CALL(*mock_security_manager_settings_, + security_manager_protocol_name()) .WillOnce(Return(security_manager::TLSv1_2)); EXPECT_CALL(*mock_security_manager_settings_, certificate_data()) .WillOnce(ReturnRef(certificate_data_base64_)); @@ -164,32 +163,27 @@ TEST_F(CryptoManagerTest, WrongInit) { // #ifndef __QNXNTO__ TEST_F(CryptoManagerTest, CorrectInit) { // Empty cert and key values for SERVER - SetInitialValues(security_manager::SERVER, - security_manager::TLSv1_2, - kFordCipher); + SetInitialValues( + security_manager::SERVER, security_manager::TLSv1_2, kFordCipher); EXPECT_TRUE(crypto_manager_->Init()); // Recall init - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kFordCipher); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kFordCipher); EXPECT_TRUE(crypto_manager_->Init()); // Recall init with other protocols - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kFordCipher); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kFordCipher); EXPECT_TRUE(crypto_manager_->Init()); - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_1, - kFordCipher); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_1, kFordCipher); EXPECT_TRUE(crypto_manager_->Init()); // Cipher value - SetInitialValues(security_manager::SERVER, - security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::SERVER, security_manager::TLSv1_2, kAllCiphers); EXPECT_TRUE(crypto_manager_->Init()); } // #endif // __QNX__ @@ -200,8 +194,8 @@ TEST_F(CryptoManagerTest, ReleaseSSLContext_Null) { TEST_F(CryptoManagerTest, CreateReleaseSSLContext) { const size_t max_payload_size = 1000u; - SetInitialValues(security_manager::CLIENT, security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kAllCiphers); EXPECT_TRUE(crypto_manager_->Init()); EXPECT_CALL(*mock_security_manager_settings_, security_manager_mode()) .Times(2) @@ -222,9 +216,8 @@ TEST_F(CryptoManagerTest, OnCertificateUpdated) { TEST_F(CryptoManagerTest, OnCertificateUpdated_UpdateNotRequired) { size_t updates_before = 0; - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kAllCiphers); ASSERT_TRUE(crypto_manager_->Init()); EXPECT_CALL(*mock_security_manager_settings_, update_before_hours()) @@ -233,9 +226,8 @@ TEST_F(CryptoManagerTest, OnCertificateUpdated_UpdateNotRequired) { EXPECT_FALSE(crypto_manager_->IsCertificateUpdateRequired()); size_t max_updates_ = std::numeric_limits<size_t>::max(); - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kAllCiphers); EXPECT_CALL(*mock_security_manager_settings_, update_before_hours()) .WillOnce(Return(max_updates_)); ASSERT_TRUE(crypto_manager_->Init()); @@ -261,9 +253,8 @@ TEST_F(CryptoManagerTest, OnCertificateUpdated_MalformedSign) { } TEST_F(CryptoManagerTest, OnCertificateUpdated_WrongInitFolder) { - SetInitialValues(security_manager::CLIENT, - security_manager::TLSv1_2, - kAllCiphers); + SetInitialValues( + security_manager::CLIENT, security_manager::TLSv1_2, kAllCiphers); ASSERT_TRUE(crypto_manager_->Init()); const std::string certificate = "wrong_data"; diff --git a/src/components/security_manager/test/security_manager_test.cc b/src/components/security_manager/test/security_manager_test.cc index 0afd0dd0c5..b5f9ae2e78 100644 --- a/src/components/security_manager/test/security_manager_test.cc +++ b/src/components/security_manager/test/security_manager_test.cc @@ -88,7 +88,6 @@ uint8_t* handshake_data_out_pointer = handshake_data_out; const size_t handshake_data_out_size = sizeof(handshake_data_out) / sizeof(handshake_data_out[0]); - class SecurityManagerTest : public ::testing::Test { protected: void SetUp() OVERRIDE { @@ -113,9 +112,8 @@ class SecurityManagerTest : public ::testing::Test { void call_OnMessageReceived(const uint8_t* const data, uint32_t dataSize, const ServiceType serviceType) { - const RawMessagePtr rawMessagePtr( - utils::MakeShared<RawMessage>( - key, protocolVersion, data, dataSize, serviceType)); + const RawMessagePtr rawMessagePtr(utils::MakeShared<RawMessage>( + key, protocolVersion, data, dataSize, serviceType)); security_manager_->OnMessageReceived(rawMessagePtr); } /* @@ -383,8 +381,7 @@ TEST_F(SecurityManagerTest, CreateSSLContext_ServiceAlreadyProtected) { EXPECT_CALL(mock_session_observer, GetSSLContext(key, kControl)) .WillOnce(Return(&mock_ssl_context_new)); - const SSLContext* result = - security_manager_->CreateSSLContext(key); + const SSLContext* result = security_manager_->CreateSSLContext(key); EXPECT_EQ(&mock_ssl_context_new, result); } /* @@ -410,8 +407,7 @@ TEST_F(SecurityManagerTest, CreateSSLContext_ErrorCreateSSL) { .WillOnce(ReturnNull()); EXPECT_CALL(mock_crypto_manager, CreateSSLContext()).WillOnce(ReturnNull()); - const SSLContext* result = - security_manager_->CreateSSLContext(key); + const SSLContext* result = security_manager_->CreateSSLContext(key); EXPECT_EQ(NULL, result); } /* @@ -466,8 +462,7 @@ TEST_F(SecurityManagerTest, CreateSSLContext_Success) { EXPECT_CALL(mock_session_observer, SetSSLContext(key, &mock_ssl_context_new)) .WillOnce(Return(SecurityManager::ERROR_SUCCESS)); - const SSLContext* result = - security_manager_->CreateSSLContext(key); + const SSLContext* result = security_manager_->CreateSSLContext(key); EXPECT_EQ(&mock_ssl_context_new, result); } /* @@ -531,10 +526,9 @@ TEST_F(SecurityManagerTest, StartHandshake_SSLInternalError) { .WillOnce(Return(false)); EXPECT_CALL(mock_ssl_context_exists, SetHandshakeContext(_)); EXPECT_CALL(mock_ssl_context_exists, StartHandshake(_, _)) - .WillOnce( - DoAll(SetArgPointee<0>(handshake_data_out_pointer), - SetArgPointee<1>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Fail))); + .WillOnce(DoAll(SetArgPointee<0>(handshake_data_out_pointer), + SetArgPointee<1>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Fail))); security_manager_->StartHandshake(key); } @@ -570,18 +564,15 @@ TEST_F(SecurityManagerTest, StartHandshake_SSLInitIsNotComplete) { // Emulate SSLContext::StartHandshake with different parameters // Only on both correct - data and size shall be send message to mobile app EXPECT_CALL(mock_ssl_context_exists, StartHandshake(_, _)) - .WillOnce(DoAll( - SetArgPointee<0>(handshake_data_out_pointer), - SetArgPointee<1>(0), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce(DoAll( - SetArgPointee<0>((uint8_t*)NULL), - SetArgPointee<1>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce(DoAll( - SetArgPointee<0>(handshake_data_out_pointer), - SetArgPointee<1>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Success))); + .WillOnce(DoAll(SetArgPointee<0>(handshake_data_out_pointer), + SetArgPointee<1>(0), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<0>((uint8_t*)NULL), + SetArgPointee<1>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<0>(handshake_data_out_pointer), + SetArgPointee<1>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Success))); security_manager_->StartHandshake(key); security_manager_->StartHandshake(key); @@ -704,28 +695,28 @@ TEST_F(SecurityManagerTest, ProccessHandshakeData_InvalidData) { EXPECT_CALL( mock_ssl_context_exists, DoHandshakeStep(HandshakeStepEq(handshake_data, handshake_data_size), - handshake_data_size, _, _)) - .WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_AbnormalFail))) - .WillOnce(DoAll( - SetArgPointee<2>((uint8_t*)NULL), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_AbnormalFail))) - .WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), SetArgPointee<3>(0), - Return(SSLContext::Handshake_Result_AbnormalFail))) - .WillOnce(DoAll( - SetArgPointee<2>((uint8_t*)NULL), SetArgPointee<3>(0), - Return(SSLContext::Handshake_Result_AbnormalFail))); + handshake_data_size, + _, + _)) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_AbnormalFail))) + .WillOnce(DoAll(SetArgPointee<2>((uint8_t*)NULL), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_AbnormalFail))) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(0), + Return(SSLContext::Handshake_Result_AbnormalFail))) + .WillOnce(DoAll(SetArgPointee<2>((uint8_t*)NULL), + SetArgPointee<3>(0), + Return(SSLContext::Handshake_Result_AbnormalFail))); // On each wrong handshake will be asked error EXPECT_CALL(mock_ssl_context_exists, LastError()).Times(handshake_emulates); // Emulate handshare #handshake_emulates times for 5 cases - EmulateMobileMessageHandshake(handshake_data, handshake_data_size, - handshake_emulates); + EmulateMobileMessageHandshake( + handshake_data, handshake_data_size, handshake_emulates); } /* * Shall send HandshakeData on getting SEND_HANDSHAKE_DATA from mobile side @@ -768,18 +759,18 @@ TEST_F(SecurityManagerTest, ProccessHandshakeData_Answer) { EXPECT_CALL( mock_ssl_context_exists, DoHandshakeStep(HandshakeStepEq(handshake_data, handshake_data_size), - handshake_data_size, _, _)) - .WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce( - DoAll(SetArgPointee<2>(handshake_data_out_pointer), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Fail))); - - EmulateMobileMessageHandshake(handshake_data, handshake_data_size, - handshake_emulates); + handshake_data_size, + _, + _)) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Fail))); + + EmulateMobileMessageHandshake( + handshake_data, handshake_data_size, handshake_emulates); } /* * Shall call all listeners on success end handshake @@ -807,35 +798,33 @@ TEST_F(SecurityManagerTest, ProccessHandshakeData_HandshakeFinished) { EXPECT_CALL( mock_ssl_context_exists, DoHandshakeStep(HandshakeStepEq(handshake_data, handshake_data_size), - handshake_data_size, _, _)) + handshake_data_size, + _, + _)) . // two states with correct out data - WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce( - DoAll(SetArgPointee<2>(handshake_data_out_pointer), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Fail))) + WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Fail))) . // two states with with null pointer data - WillOnce(DoAll( - SetArgPointee<2>((uint8_t*)NULL), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce( - DoAll(SetArgPointee<2>((uint8_t*)NULL), - SetArgPointee<3>(handshake_data_out_size), - Return(SSLContext::Handshake_Result_Fail))) + WillOnce(DoAll(SetArgPointee<2>((uint8_t*)NULL), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<2>((uint8_t*)NULL), + SetArgPointee<3>(handshake_data_out_size), + Return(SSLContext::Handshake_Result_Fail))) . // two states with with null data size - WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), SetArgPointee<3>(0), - Return(SSLContext::Handshake_Result_Success))) - .WillOnce(DoAll( - SetArgPointee<2>(handshake_data_out_pointer), SetArgPointee<3>(0), - Return(SSLContext::Handshake_Result_Success))); + WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(0), + Return(SSLContext::Handshake_Result_Success))) + .WillOnce(DoAll(SetArgPointee<2>(handshake_data_out_pointer), + SetArgPointee<3>(0), + Return(SSLContext::Handshake_Result_Success))); // Expect send two message (with correct pointer and size data) @@ -852,8 +841,8 @@ TEST_F(SecurityManagerTest, ProccessHandshakeData_HandshakeFinished) { .Times(2); // Expect NO InternalError with ERROR_ID - EmulateMobileMessageHandshake(handshake_data, handshake_data_size, - handshake_emulates); + EmulateMobileMessageHandshake( + handshake_data, handshake_data_size, handshake_emulates); } /* * Shall not any query on getting empty SEND_INTERNAL_ERROR @@ -882,12 +871,12 @@ TEST_F(SecurityManagerTest, GetInternalError) { TEST_F(SecurityManagerTest, GetInternalError_WithErrText) { SetMockCryptoManager(); - SecurityQuery::QueryHeader header(SecurityQuery::NOTIFICATION, - SecurityQuery::SEND_INTERNAL_ERROR, 0); + SecurityQuery::QueryHeader header( + SecurityQuery::NOTIFICATION, SecurityQuery::SEND_INTERNAL_ERROR, 0); std::string error("JSON wrong string"); header.json_size = error.size(); - EmulateMobileMessage(header, reinterpret_cast<const uint8_t*>(error.c_str()), - error.size()); + EmulateMobileMessage( + header, reinterpret_cast<const uint8_t*>(error.c_str()), error.size()); } /* * Shall not send any query on getting SEND_INTERNAL_ERROR with error string @@ -895,12 +884,12 @@ TEST_F(SecurityManagerTest, GetInternalError_WithErrText) { TEST_F(SecurityManagerTest, GetInternalError_WithErrJSONText) { SetMockCryptoManager(); - SecurityQuery::QueryHeader header(SecurityQuery::NOTIFICATION, - SecurityQuery::SEND_INTERNAL_ERROR, 0); + SecurityQuery::QueryHeader header( + SecurityQuery::NOTIFICATION, SecurityQuery::SEND_INTERNAL_ERROR, 0); std::string error(" { \"id\": 1 } "); header.json_size = error.size(); - EmulateMobileMessage(header, reinterpret_cast<const uint8_t*>(error.c_str()), - error.size()); + EmulateMobileMessage( + header, reinterpret_cast<const uint8_t*>(error.c_str()), error.size()); } } // namespace security_manager_test diff --git a/src/components/security_manager/test/security_query_matcher.cc b/src/components/security_manager/test/security_query_matcher.cc index 9f6bc370e7..3b7f4dd298 100644 --- a/src/components/security_manager/test/security_query_matcher.cc +++ b/src/components/security_manager/test/security_query_matcher.cc @@ -44,7 +44,8 @@ namespace security_manager_test { * Matcher for checking RawMessage with InternalError Query * Check error id */ -MATCHER_P(InternalErrorWithErrId, expectedErrorId, +MATCHER_P(InternalErrorWithErrId, + expectedErrorId, std::string(negation ? "is not" : "is") + " InternalError with selected error") { const size_t header_size = @@ -93,12 +94,14 @@ MATCHER_P(InternalErrorWithErrId, expectedErrorId, * Matcher for checking QueryHeader equal in GTests */ ::testing::AssertionResult QueryHeader_EQ( - const char* m_expr, const char* n_expr, + const char* m_expr, + const char* n_expr, const ::security_manager::SecurityQuery::QueryHeader& q1, const ::security_manager::SecurityQuery::QueryHeader& q2); ::testing::AssertionResult QueryHeader_EQ( - const char* m_expr, const char* n_expr, + const char* m_expr, + const char* n_expr, const ::security_manager::SecurityQuery::QueryHeader& q1, const ::security_manager::SecurityQuery::QueryHeader& q2) { ::testing::AssertionResult fail_result = ::testing::AssertionFailure(); diff --git a/src/components/security_manager/test/security_query_test.cc b/src/components/security_manager/test/security_query_test.cc index d4ef95400f..80da10ea72 100644 --- a/src/components/security_manager/test/security_query_test.cc +++ b/src/components/security_manager/test/security_query_test.cc @@ -296,7 +296,8 @@ TEST_F(SecurityQueryTest, Parse_HeaderDataWrong) { */ TEST_F(SecurityQueryTest, Parse_InvalidQuery) { SecurityQuery::QueryHeader invalid_query_header( - SecurityQuery::INVALID_QUERY_TYPE, SecurityQuery::INVALID_QUERY_ID, + SecurityQuery::INVALID_QUERY_TYPE, + SecurityQuery::INVALID_QUERY_ID, SEQ_NUMBER); // some sample data @@ -333,7 +334,8 @@ TEST_F(SecurityQueryTest, Parse_InvalidQuery_UnknownTypeId) { SecurityQuery::QueryHeader invalid_type_id_header( SecurityQuery::INVALID_QUERY_TYPE - 1, // Use not enum value for additional testing - SecurityQuery::INVALID_QUERY_ID - 1, SEQ_NUMBER); + SecurityQuery::INVALID_QUERY_ID - 1, + SEQ_NUMBER); const std::vector<uint8_t> vector = DeserializeData(invalid_type_id_header, NULL, 0u); @@ -344,8 +346,8 @@ TEST_F(SecurityQueryTest, Parse_InvalidQuery_UnknownTypeId) { // Parse set all unknown types and ids to INVALID_QUERY_ID invalid_type_id_header.query_type = SecurityQuery::INVALID_QUERY_TYPE; invalid_type_id_header.query_id = SecurityQuery::INVALID_QUERY_ID; - EXPECT_PRED_FORMAT2(QueryHeader_EQ, query.get_header(), - invalid_type_id_header); + EXPECT_PRED_FORMAT2( + QueryHeader_EQ, query.get_header(), invalid_type_id_header); // check side-effects ASSERT_EQ(query.get_data_size(), 0u); ASSERT_EQ(query.get_data(), reinterpret_cast<uint8_t*>(NULL)); @@ -360,7 +362,8 @@ TEST_F(SecurityQueryTest, Parse_InvalidQuery_UnknownId_Response) { SecurityQuery::QueryHeader invalid_id_header( SecurityQuery::RESPONSE, // Use not enum value for additional testing - SecurityQuery::INVALID_QUERY_ID - 2, SEQ_NUMBER); + SecurityQuery::INVALID_QUERY_ID - 2, + SEQ_NUMBER); const std::vector<uint8_t> vector = DeserializeData(invalid_id_header, NULL, 0u); @@ -382,7 +385,8 @@ TEST_F(SecurityQueryTest, Parse_InvalidQuery_UnknownId_Response) { */ TEST_F(SecurityQueryTest, Parse_Handshake) { SecurityQuery::QueryHeader handshake_header( - SecurityQuery::NOTIFICATION, SecurityQuery::SEND_HANDSHAKE_DATA, + SecurityQuery::NOTIFICATION, + SecurityQuery::SEND_HANDSHAKE_DATA, SEQ_NUMBER); // some sample data uint8_t raw_data[] = {0x6, 0x7, 0x8}; @@ -427,8 +431,8 @@ TEST_F(SecurityQueryTest, Parse_InternalError) { SecurityQuery query; const bool result = query.SerializeQuery(&vector[0], vector.size()); ASSERT_TRUE(result); - EXPECT_PRED_FORMAT2(QueryHeader_EQ, query.get_header(), - internal_error_header); + EXPECT_PRED_FORMAT2( + QueryHeader_EQ, query.get_header(), internal_error_header); // check side-effects ASSERT_EQ(query.get_data_size(), 0u); ASSERT_EQ(query.get_data(), reinterpret_cast<uint8_t*>(NULL)); diff --git a/src/components/security_manager/test/ssl_certificate_handshake_test.cc b/src/components/security_manager/test/ssl_certificate_handshake_test.cc index bb59084b98..df65c89a89 100644 --- a/src/components/security_manager/test/ssl_certificate_handshake_test.cc +++ b/src/components/security_manager/test/ssl_certificate_handshake_test.cc @@ -72,7 +72,7 @@ const size_t updates_before_hour = 24; class SSLHandshakeTest : public testing::Test { protected: - void SetUp() OVERRIDE { + void SetUp() OVERRIDE { mock_server_manager_settings = new testing::NiceMock< security_manager_test::MockCryptoManagerSettings>(); @@ -86,9 +86,9 @@ class SSLHandshakeTest : public testing::Test { client_manager = new security_manager::CryptoManagerImpl( utils::SharedPtr<security_manager::CryptoManagerSettings>( mock_client_manager_settings)); - ASSERT_TRUE(client_manager); - server_ctx = NULL; - client_ctx = NULL; + ASSERT_TRUE(client_manager); + server_ctx = NULL; + client_ctx = NULL; } void TearDown() OVERRIDE { @@ -107,34 +107,31 @@ class SSLHandshakeTest : public testing::Test { server_ciphers_list_ = server_ciphers_list; server_ca_certificate_path_ = ca_certificate_path; - ON_CALL(*mock_server_manager_settings, security_manager_mode()) - .WillByDefault(Return(security_manager::SERVER)); - ON_CALL(*mock_server_manager_settings, - security_manager_protocol_name()) - .WillByDefault(Return(protocol)); - ON_CALL(*mock_server_manager_settings, certificate_data()) - .WillByDefault(ReturnRef(server_certificate_)); - ON_CALL(*mock_server_manager_settings, ciphers_list()) - .WillByDefault(ReturnRef(server_ciphers_list_)); - ON_CALL(*mock_server_manager_settings, ca_cert_path()) - .WillByDefault(ReturnRef(server_ca_certificate_path_)); - ON_CALL(*mock_server_manager_settings,verify_peer()) - .WillByDefault(Return(verify_peer)); + ON_CALL(*mock_server_manager_settings, security_manager_mode()) + .WillByDefault(Return(security_manager::SERVER)); + ON_CALL(*mock_server_manager_settings, security_manager_protocol_name()) + .WillByDefault(Return(protocol)); + ON_CALL(*mock_server_manager_settings, certificate_data()) + .WillByDefault(ReturnRef(server_certificate_)); + ON_CALL(*mock_server_manager_settings, ciphers_list()) + .WillByDefault(ReturnRef(server_ciphers_list_)); + ON_CALL(*mock_server_manager_settings, ca_cert_path()) + .WillByDefault(ReturnRef(server_ca_certificate_path_)); + ON_CALL(*mock_server_manager_settings, verify_peer()) + .WillByDefault(Return(verify_peer)); } void SetClientInitialValues(const security_manager::Protocol protocol, - const std::string certificate, - const std::string client_ciphers_list, - const bool verify_peer, - const std::string& ca_certificate_path) { - + const std::string certificate, + const std::string client_ciphers_list, + const bool verify_peer, + const std::string& ca_certificate_path) { client_certificate_ = certificate; client_ciphers_list_ = client_ciphers_list; client_ca_certificate_path_ = ca_certificate_path; ON_CALL(*mock_client_manager_settings, security_manager_mode()) .WillByDefault(Return(security_manager::CLIENT)); - ON_CALL(*mock_client_manager_settings, - security_manager_protocol_name()) + ON_CALL(*mock_client_manager_settings, security_manager_protocol_name()) .WillByDefault(Return(protocol)); ON_CALL(*mock_client_manager_settings, certificate_data()) .WillByDefault(ReturnRef(client_certificate_)); @@ -142,7 +139,7 @@ class SSLHandshakeTest : public testing::Test { .WillByDefault(ReturnRef(client_ciphers_list_)); ON_CALL(*mock_client_manager_settings, ca_cert_path()) .WillByDefault(ReturnRef(client_ca_certificate_path_)); - ON_CALL(*mock_client_manager_settings,verify_peer()) + ON_CALL(*mock_client_manager_settings, verify_peer()) .WillByDefault(Return(verify_peer)); } @@ -153,12 +150,12 @@ class SSLHandshakeTest : public testing::Test { const std::string& ca_certificate_path) { std::ifstream cert(cert_filename); std::stringstream ss; - if (cert.is_open()){ + if (cert.is_open()) { ss << cert.rdbuf(); } cert.close(); SetServerInitialValues( - protocol, ss.str(), ciphers_list, verify_peer, ca_certificate_path); + protocol, ss.str(), ciphers_list, verify_peer, ca_certificate_path); const bool initialized = server_manager->Init(); if (!initialized) { @@ -172,9 +169,8 @@ class SSLHandshakeTest : public testing::Test { } security_manager::SSLContext::HandshakeContext ctx; - server_ctx->SetHandshakeContext( - ctx.make_context(custom_str::CustomString("SPT"), - custom_str::CustomString("client"))); + server_ctx->SetHandshakeContext(ctx.make_context( + custom_str::CustomString("SPT"), custom_str::CustomString("client"))); return true; } diff --git a/src/components/smart_objects/include/smart_objects/always_false_schema_item.h b/src/components/smart_objects/include/smart_objects/always_false_schema_item.h index c4babbf8b4..dfbf4ba43e 100644 --- a/src/components/smart_objects/include/smart_objects/always_false_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/always_false_schema_item.h @@ -54,6 +54,7 @@ class CAlwaysFalseSchemaItem : public ISchemaItem { * @return Errors::ERROR **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + private: CAlwaysFalseSchemaItem(); DISALLOW_COPY_AND_ASSIGN(CAlwaysFalseSchemaItem); diff --git a/src/components/smart_objects/include/smart_objects/always_true_schema_item.h b/src/components/smart_objects/include/smart_objects/always_true_schema_item.h index 1b5fa8a765..3dd598d7bd 100644 --- a/src/components/smart_objects/include/smart_objects/always_true_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/always_true_schema_item.h @@ -54,6 +54,7 @@ class CAlwaysTrueSchemaItem : public ISchemaItem { * @return NsSmartObjects::Errors::eType **/ Errors::eType validate(const SmartObject& Object) OVERRIDE; + private: CAlwaysTrueSchemaItem(); DISALLOW_COPY_AND_ASSIGN(CAlwaysTrueSchemaItem); diff --git a/src/components/smart_objects/include/smart_objects/array_schema_item.h b/src/components/smart_objects/include/smart_objects/array_schema_item.h index 6454693b38..0d3a651d56 100644 --- a/src/components/smart_objects/include/smart_objects/array_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/array_schema_item.h @@ -57,8 +57,10 @@ class CArraySchemaItem : public ISchemaItem { **/ static utils::SharedPtr<CArraySchemaItem> create( const ISchemaItemPtr ElementSchemaItem = CAlwaysTrueSchemaItem::create(), - const TSchemaItemParameter<size_t>& MinSize = TSchemaItemParameter<size_t>(), - const TSchemaItemParameter<size_t>& MaxSize = TSchemaItemParameter<size_t>()); + const TSchemaItemParameter<size_t>& MinSize = + TSchemaItemParameter<size_t>(), + const TSchemaItemParameter<size_t>& MaxSize = + TSchemaItemParameter<size_t>()); /** * @brief Validate smart object. @@ -77,7 +79,8 @@ class CArraySchemaItem : public ISchemaItem { * @param RemoveFakeParameters contains true if need to remove fake parameters * from smart object otherwise contains false. **/ - void applySchema(SmartObject& Object, const bool RemoveFakeParameters) OVERRIDE; + void applySchema(SmartObject& Object, + const bool RemoveFakeParameters) OVERRIDE; /** * @brief Unapply schema. diff --git a/src/components/smart_objects/include/smart_objects/bool_schema_item.h b/src/components/smart_objects/include/smart_objects/bool_schema_item.h index bb0dbd6653..eca5a0e063 100644 --- a/src/components/smart_objects/include/smart_objects/bool_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/bool_schema_item.h @@ -50,13 +50,14 @@ class CBoolSchemaItem : public CDefaultSchemaItem<bool> { * @return Shared pointer to a new schema item. **/ static utils::SharedPtr<CBoolSchemaItem> create( - const TSchemaItemParameter<bool>& DefaultValue = - TSchemaItemParameter<bool>()); + const TSchemaItemParameter<bool>& DefaultValue = + TSchemaItemParameter<bool>()); private: explicit CBoolSchemaItem(const TSchemaItemParameter<bool>& DefaultValue); SmartType getSmartType() const OVERRIDE; bool getDefaultValue() const OVERRIDE; + private: DISALLOW_COPY_AND_ASSIGN(CBoolSchemaItem); }; diff --git a/src/components/smart_objects/include/smart_objects/default_shema_item.h b/src/components/smart_objects/include/smart_objects/default_shema_item.h index 5065e27684..857354a4e6 100644 --- a/src/components/smart_objects/include/smart_objects/default_shema_item.h +++ b/src/components/smart_objects/include/smart_objects/default_shema_item.h @@ -45,7 +45,7 @@ namespace NsSmartObjects { /** * @brief Default schema item. **/ -template<typename Type> +template <typename Type> class CDefaultSchemaItem : public ISchemaItem { public: typedef TSchemaItemParameter<Type> ParameterType; @@ -93,17 +93,17 @@ class CDefaultSchemaItem : public ISchemaItem { DISALLOW_COPY_AND_ASSIGN(CDefaultSchemaItem<Type>); }; -template<typename Type> +template <typename Type> CDefaultSchemaItem<Type>::CDefaultSchemaItem(const ParameterType& DefaultValue) - : mDefaultValue(DefaultValue) { -} + : mDefaultValue(DefaultValue) {} -template<typename Type> +template <typename Type> Errors::eType CDefaultSchemaItem<Type>::validate(const SmartObject& Object) { - return (getSmartType() == Object.getType()) ? Errors::OK : Errors::INVALID_VALUE; + return (getSmartType() == Object.getType()) ? Errors::OK + : Errors::INVALID_VALUE; } -template<typename Type> +template <typename Type> bool CDefaultSchemaItem<Type>::setDefaultValue(SmartObject& Object) { Type value; if (mDefaultValue.getValue(value)) { @@ -113,9 +113,9 @@ bool CDefaultSchemaItem<Type>::setDefaultValue(SmartObject& Object) { return false; } -template<typename Type> +template <typename Type> void CDefaultSchemaItem<Type>::BuildObjectBySchema( - const SmartObject& pattern_object, SmartObject& result_object) { + const SmartObject& pattern_object, SmartObject& result_object) { if (getSmartType() == pattern_object.getType()) { result_object = pattern_object; } else { diff --git a/src/components/smart_objects/include/smart_objects/enum_schema_item.h b/src/components/smart_objects/include/smart_objects/enum_schema_item.h index c303061152..a0d6d94017 100644 --- a/src/components/smart_objects/include/smart_objects/enum_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/enum_schema_item.h @@ -42,16 +42,16 @@ #include "utils/shared_ptr.h" #include "smart_objects/default_shema_item.h" - namespace NsSmartDeviceLink { namespace NsSmartObjects { -template <typename EnumType> class EnumConversionHelper; +template <typename EnumType> +class EnumConversionHelper; /** * @brief Enumeration schema item. * @tparam EnumType Enumeration type. **/ -template<typename EnumType> +template <typename EnumType> class TEnumSchemaItem : public CDefaultSchemaItem<EnumType> { public: /** @@ -61,9 +61,9 @@ class TEnumSchemaItem : public CDefaultSchemaItem<EnumType> { * @return Shared pointer to a new schema item. **/ static utils::SharedPtr<TEnumSchemaItem> create( - const std::set<EnumType>& AllowedElements, - const TSchemaItemParameter<EnumType>& DefaultValue = - TSchemaItemParameter<EnumType>()); + const std::set<EnumType>& AllowedElements, + const TSchemaItemParameter<EnumType>& DefaultValue = + TSchemaItemParameter<EnumType>()); /** * @brief Validate smart object. * @param Object Object to validate. @@ -79,7 +79,8 @@ class TEnumSchemaItem : public CDefaultSchemaItem<EnumType> { * @param RemoveFakeParameters contains true if need to remove fake parameters * from smart object otherwise contains false. **/ - void applySchema(SmartObject& Object, const bool RemoveFakeParameters) OVERRIDE; + void applySchema(SmartObject& Object, + const bool RemoveFakeParameters) OVERRIDE; /** * @brief Unapply schema. * @param Object Object to unapply schema. @@ -129,7 +130,8 @@ class EnumConversionHelper { } static bool CStringToEnum(const char* str, EnumType* value) { - typename CStringToEnumMap::const_iterator it = cstring_to_enum_map().find(str); + typename CStringToEnumMap::const_iterator it = + cstring_to_enum_map().find(str); if (it == cstring_to_enum_map().end()) { return false; } @@ -140,7 +142,8 @@ class EnumConversionHelper { } static bool EnumToCString(EnumType value, const char** str) { - typename EnumToCStringMap::const_iterator it = enum_to_cstring_map().find(value); + typename EnumToCStringMap::const_iterator it = + enum_to_cstring_map().find(value); if (it == enum_to_cstring_map().end()) { return false; } @@ -172,7 +175,7 @@ class EnumConversionHelper { static const CStringToEnumMap cstring_to_enum_map_; struct Size { - enum {value = sizeof(cstring_values_) / sizeof(cstring_values_[0])}; + enum { value = sizeof(cstring_values_) / sizeof(cstring_values_[0]) }; }; static EnumToCStringMap InitEnumToCStringMap() { @@ -195,28 +198,28 @@ class EnumConversionHelper { DISALLOW_COPY_AND_ASSIGN(EnumConversionHelper<EnumType>); }; - -template<typename EnumType> +template <typename EnumType> utils::SharedPtr<TEnumSchemaItem<EnumType> > TEnumSchemaItem<EnumType>::create( - const std::set<EnumType>& AllowedElements, - const TSchemaItemParameter<EnumType>& DefaultValue) { + const std::set<EnumType>& AllowedElements, + const TSchemaItemParameter<EnumType>& DefaultValue) { return new TEnumSchemaItem<EnumType>(AllowedElements, DefaultValue); } -template<typename EnumType> +template <typename EnumType> Errors::eType TEnumSchemaItem<EnumType>::validate(const SmartObject& Object) { if (SmartType_Integer != Object.getType()) { return Errors::INVALID_VALUE; } - if (mAllowedElements.find(static_cast<EnumType>(Object.asInt())) - == mAllowedElements.end()) { + if (mAllowedElements.find(static_cast<EnumType>(Object.asInt())) == + mAllowedElements.end()) { return Errors::OUT_OF_RANGE; } return Errors::OK; } -template<typename EnumType> -void TEnumSchemaItem<EnumType>::applySchema(SmartObject& Object, const bool RemoveFakeParameters) { +template <typename EnumType> +void TEnumSchemaItem<EnumType>::applySchema(SmartObject& Object, + const bool RemoveFakeParameters) { if (SmartType_String == Object.getType()) { EnumType enum_val = static_cast<EnumType>(-1); if (ConversionHelper::StringToEnum(Object.asString(), &enum_val)) { @@ -225,32 +228,32 @@ void TEnumSchemaItem<EnumType>::applySchema(SmartObject& Object, const bool Remo } } -template<typename EnumType> +template <typename EnumType> void TEnumSchemaItem<EnumType>::unapplySchema(SmartObject& Object) { if (SmartType_Integer == Object.getType()) { const char* str; - if (ConversionHelper::EnumToCString(static_cast<EnumType>(Object.asInt()), &str)) { + if (ConversionHelper::EnumToCString(static_cast<EnumType>(Object.asInt()), + &str)) { Object = str; } } } -template<typename EnumType> +template <typename EnumType> SmartType TEnumSchemaItem<EnumType>::getSmartType() const { return SmartType_Integer; } -template<typename EnumType> +template <typename EnumType> EnumType TEnumSchemaItem<EnumType>::getDefaultValue() const { return EnumType::INVALID_ENUM; } -template<typename EnumType> +template <typename EnumType> TEnumSchemaItem<EnumType>::TEnumSchemaItem( - const std::set<EnumType>& AllowedElements, - const TSchemaItemParameter<EnumType>& DefaultValue) - : CDefaultSchemaItem<EnumType>(DefaultValue), - mAllowedElements(AllowedElements) { -} + const std::set<EnumType>& AllowedElements, + const TSchemaItemParameter<EnumType>& DefaultValue) + : CDefaultSchemaItem<EnumType>(DefaultValue) + , mAllowedElements(AllowedElements) {} } // namespace NsSmartObjects } // namespace NsSmartDeviceLink diff --git a/src/components/smart_objects/include/smart_objects/errors.h b/src/components/smart_objects/include/smart_objects/errors.h index fe8a04b692..5d22d2386e 100644 --- a/src/components/smart_objects/include/smart_objects/errors.h +++ b/src/components/smart_objects/include/smart_objects/errors.h @@ -35,7 +35,8 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { namespace Errors { /** - * @brief Enumeration that provides information about SmartObject validation errors + * @brief Enumeration that provides information about SmartObject validation + *errors **/ enum eType { /** diff --git a/src/components/smart_objects/include/smart_objects/number_schema_item.h b/src/components/smart_objects/include/smart_objects/number_schema_item.h index b97b20bd9f..01d6c08daa 100644 --- a/src/components/smart_objects/include/smart_objects/number_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/number_schema_item.h @@ -46,7 +46,7 @@ namespace NsSmartObjects { * @brief Number schema item. * @tparam NumberType Number type. **/ -template<typename NumberType> +template <typename NumberType> class TNumberSchemaItem : public CDefaultSchemaItem<NumberType> { public: /** @@ -57,10 +57,12 @@ class TNumberSchemaItem : public CDefaultSchemaItem<NumberType> { * @return Shared pointer to a new schema item. **/ static utils::SharedPtr<TNumberSchemaItem> create( - const TSchemaItemParameter<NumberType>& MinValue = TSchemaItemParameter <NumberType > (), - const TSchemaItemParameter<NumberType>& MaxValue = TSchemaItemParameter <NumberType > (), - const TSchemaItemParameter<NumberType>& DefaultValue = - TSchemaItemParameter<NumberType>()); + const TSchemaItemParameter<NumberType>& MinValue = + TSchemaItemParameter<NumberType>(), + const TSchemaItemParameter<NumberType>& MaxValue = + TSchemaItemParameter<NumberType>(), + const TSchemaItemParameter<NumberType>& DefaultValue = + TSchemaItemParameter<NumberType>()); /** * @brief Validate smart object. @@ -99,29 +101,27 @@ class TNumberSchemaItem : public CDefaultSchemaItem<NumberType> { DISALLOW_COPY_AND_ASSIGN(TNumberSchemaItem); }; -template<typename NumberType> -utils::SharedPtr<TNumberSchemaItem<NumberType> > -TNumberSchemaItem<NumberType>::create( - const TSchemaItemParameter<NumberType>& MinValue, - const TSchemaItemParameter<NumberType>& MaxValue, - const TSchemaItemParameter<NumberType>& DefaultValue) { +template <typename NumberType> +utils::SharedPtr<TNumberSchemaItem<NumberType> > TNumberSchemaItem< + NumberType>::create(const TSchemaItemParameter<NumberType>& MinValue, + const TSchemaItemParameter<NumberType>& MaxValue, + const TSchemaItemParameter<NumberType>& DefaultValue) { return new TNumberSchemaItem<NumberType>(MinValue, MaxValue, DefaultValue); } -template<typename NumberType> +template <typename NumberType> bool TNumberSchemaItem<NumberType>::isValidNumberType(SmartType type) { NumberType value(0); - if ((SmartType_Double == type) && - (typeid(double) == typeid(value))) { - return true; + if ((SmartType_Double == type) && (typeid(double) == typeid(value))) { + return true; } else if ((SmartType_Integer == type) && - (typeid(int32_t) == typeid(value) || - typeid(uint32_t) == typeid(value) || - typeid(int64_t) == typeid(value) || + (typeid(int32_t) == typeid(value) || + typeid(uint32_t) == typeid(value) || + typeid(int64_t) == typeid(value) || typeid(double) == typeid(value))) { - return true; + return true; } else { - return false; + return false; } } @@ -133,9 +133,9 @@ Errors::eType TNumberSchemaItem<NumberType>::validate( } NumberType value(0); if (typeid(int32_t) == typeid(value)) { - value = utils::SafeStaticCast<int64_t,int32_t>(Object.asInt()); + value = utils::SafeStaticCast<int64_t, int32_t>(Object.asInt()); } else if (typeid(uint32_t) == typeid(value)) { - value = utils::SafeStaticCast<uint64_t,uint32_t>(Object.asUInt()); + value = utils::SafeStaticCast<uint64_t, uint32_t>(Object.asUInt()); } else if (typeid(double) == typeid(value)) { value = Object.asDouble(); } else if (typeid(int64_t) == typeid(value)) { @@ -157,17 +157,16 @@ Errors::eType TNumberSchemaItem<NumberType>::validate( return Errors::OK; } -template<typename NumberType> +template <typename NumberType> TNumberSchemaItem<NumberType>::TNumberSchemaItem( - const TSchemaItemParameter<NumberType>& MinValue, - const TSchemaItemParameter<NumberType>& MaxValue, - const TSchemaItemParameter<NumberType>& DefaultValue) - : CDefaultSchemaItem<NumberType>(DefaultValue), - mMinValue(MinValue), - mMaxValue(MaxValue) { -} + const TSchemaItemParameter<NumberType>& MinValue, + const TSchemaItemParameter<NumberType>& MaxValue, + const TSchemaItemParameter<NumberType>& DefaultValue) + : CDefaultSchemaItem<NumberType>(DefaultValue) + , mMinValue(MinValue) + , mMaxValue(MaxValue) {} -template<typename NumberType> +template <typename NumberType> NumberType TNumberSchemaItem<NumberType>::getDefaultValue() const { return NumberType(0); } @@ -176,21 +175,21 @@ NumberType TNumberSchemaItem<NumberType>::getDefaultValue() const { * @brief Specialization of getSmartType for number types. * @return SmartType. **/ -template<typename NumberType> +template <typename NumberType> SmartType TNumberSchemaItem<NumberType>::getSmartType() const { DCHECK(!"Wrong type of template class"); return SmartType_Invalid; } -template<> +template <> SmartType TNumberSchemaItem<int32_t>::getSmartType() const; -template<> +template <> SmartType TNumberSchemaItem<uint32_t>::getSmartType() const; -template<> +template <> SmartType TNumberSchemaItem<int64_t>::getSmartType() const; -template<> +template <> SmartType TNumberSchemaItem<double>::getSmartType() const; } // namespace NsSmartObjects diff --git a/src/components/smart_objects/include/smart_objects/object_schema_item.h b/src/components/smart_objects/include/smart_objects/object_schema_item.h index 6e16e6a2a2..549166e723 100644 --- a/src/components/smart_objects/include/smart_objects/object_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/object_schema_item.h @@ -63,8 +63,7 @@ class CObjectSchemaItem : public ISchemaItem { * @param IsMandatory true if member is mandatory, false * otherwise. Defaults to true. **/ - SMember(const ISchemaItemPtr SchemaItem, - const bool IsMandatory = true); + SMember(const ISchemaItemPtr SchemaItem, const bool IsMandatory = true); /** * @brief Member schema item. **/ @@ -96,7 +95,8 @@ class CObjectSchemaItem : public ISchemaItem { * @param RemoveFakeParameters contains true if need to remove fake parameters * from smart object otherwise contains false. **/ - void applySchema(SmartObject& Object, const bool RemoveFakeParameters) OVERRIDE; + void applySchema(SmartObject& Object, + const bool RemoveFakeParameters) OVERRIDE; /** * @brief Unapply schema. * @param Object Object to unapply schema. @@ -131,7 +131,8 @@ class CObjectSchemaItem : public ISchemaItem { void RemoveFakeParams(SmartObject& Object); /** - * @brief Map of member name to SMember structure describing the object member. + * @brief Map of member name to SMember structure describing the object + *member. **/ const Members mMembers; DISALLOW_COPY_AND_ASSIGN(CObjectSchemaItem); diff --git a/src/components/smart_objects/include/smart_objects/schema_item.h b/src/components/smart_objects/include/smart_objects/schema_item.h index 92b1495909..08610f244e 100644 --- a/src/components/smart_objects/include/smart_objects/schema_item.h +++ b/src/components/smart_objects/include/smart_objects/schema_item.h @@ -80,8 +80,9 @@ class ISchemaItem { * @param RemoveFakeParameters contains true if need to remove fake parameters * from smart object otherwise contains false. **/ - virtual void applySchema(NsSmartDeviceLink::NsSmartObjects::SmartObject& Object, - const bool RemoveFakeParameters); + virtual void applySchema( + NsSmartDeviceLink::NsSmartObjects::SmartObject& Object, + const bool RemoveFakeParameters); /** * @brief Unapply schema. @@ -98,8 +99,8 @@ class ISchemaItem { * @param pattern_object pattern object * @param result_object object to build */ - virtual void BuildObjectBySchema( - const SmartObject& pattern_object, SmartObject& result_object); + virtual void BuildObjectBySchema(const SmartObject& pattern_object, + SmartObject& result_object); /** * @brief Get value param, depends of children @@ -108,7 +109,7 @@ class ISchemaItem { */ virtual size_t GetMemberSize(); - virtual ~ISchemaItem() { } + virtual ~ISchemaItem() {} }; typedef utils::SharedPtr<ISchemaItem> ISchemaItemPtr; } // namespace NsSmartObjects diff --git a/src/components/smart_objects/include/smart_objects/schema_item_parameter.h b/src/components/smart_objects/include/smart_objects/schema_item_parameter.h index 7ae359b740..49fdb9541b 100644 --- a/src/components/smart_objects/include/smart_objects/schema_item_parameter.h +++ b/src/components/smart_objects/include/smart_objects/schema_item_parameter.h @@ -42,7 +42,7 @@ namespace NsSmartObjects { * etc. which may be unspecified. * @tparam ParameterType Type of a parameter. */ -template<typename ParameterType> +template <typename ParameterType> class TSchemaItemParameter FINAL { public: /** @@ -79,20 +79,16 @@ class TSchemaItemParameter FINAL { const ParameterType mValue; }; -template<typename ParameterType> +template <typename ParameterType> TSchemaItemParameter<ParameterType>::TSchemaItemParameter() - : mIsSpecified(false), - mValue() { -} + : mIsSpecified(false), mValue() {} -template<typename ParameterType> +template <typename ParameterType> TSchemaItemParameter<ParameterType>::TSchemaItemParameter( const ParameterType& ParameterValue) - : mIsSpecified(true), - mValue(ParameterValue) { -} + : mIsSpecified(true), mValue(ParameterValue) {} -template<typename ParameterType> +template <typename ParameterType> bool TSchemaItemParameter<ParameterType>::getValue(ParameterType& Value) const { if (mIsSpecified) { Value = mValue; diff --git a/src/components/smart_objects/include/smart_objects/string_schema_item.h b/src/components/smart_objects/include/smart_objects/string_schema_item.h index dbcfcbf9f9..7fad8491a5 100644 --- a/src/components/smart_objects/include/smart_objects/string_schema_item.h +++ b/src/components/smart_objects/include/smart_objects/string_schema_item.h @@ -55,10 +55,12 @@ class CStringSchemaItem : public CDefaultSchemaItem<std::string> { * @return Shared pointer to a new schema item. **/ static utils::SharedPtr<CStringSchemaItem> create( - const TSchemaItemParameter<size_t>& MinLength = TSchemaItemParameter<size_t>(), - const TSchemaItemParameter<size_t>& MaxLength = TSchemaItemParameter<size_t>(), - const TSchemaItemParameter<std::string>& DefaultValue = - TSchemaItemParameter<std::string>()); + const TSchemaItemParameter<size_t>& MinLength = + TSchemaItemParameter<size_t>(), + const TSchemaItemParameter<size_t>& MaxLength = + TSchemaItemParameter<size_t>(), + const TSchemaItemParameter<std::string>& DefaultValue = + TSchemaItemParameter<std::string>()); /** * @brief Validate smart object. * @param Object Object to validate. diff --git a/src/components/smart_objects/src/always_false_schema_item.cc b/src/components/smart_objects/src/always_false_schema_item.cc index d4313fb4c0..59e50e10c2 100644 --- a/src/components/smart_objects/src/always_false_schema_item.cc +++ b/src/components/smart_objects/src/always_false_schema_item.cc @@ -35,8 +35,7 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { -CAlwaysFalseSchemaItem::CAlwaysFalseSchemaItem() { -} +CAlwaysFalseSchemaItem::CAlwaysFalseSchemaItem() {} utils::SharedPtr<CAlwaysFalseSchemaItem> CAlwaysFalseSchemaItem::create() { return new CAlwaysFalseSchemaItem(); diff --git a/src/components/smart_objects/src/always_true_schema_item.cc b/src/components/smart_objects/src/always_true_schema_item.cc index 8f77919443..a474b0e157 100644 --- a/src/components/smart_objects/src/always_true_schema_item.cc +++ b/src/components/smart_objects/src/always_true_schema_item.cc @@ -33,8 +33,7 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { -CAlwaysTrueSchemaItem::CAlwaysTrueSchemaItem() { -} +CAlwaysTrueSchemaItem::CAlwaysTrueSchemaItem() {} utils::SharedPtr<CAlwaysTrueSchemaItem> CAlwaysTrueSchemaItem::create() { return new CAlwaysTrueSchemaItem(); diff --git a/src/components/smart_objects/src/array_schema_item.cc b/src/components/smart_objects/src/array_schema_item.cc index d85454bd1a..105cacb25c 100644 --- a/src/components/smart_objects/src/array_schema_item.cc +++ b/src/components/smart_objects/src/array_schema_item.cc @@ -57,7 +57,7 @@ Errors::eType CArraySchemaItem::validate(const SmartObject& Object) { for (size_t i = 0u; i < array_len; ++i) { const Errors::eType result = - mElementSchemaItem->validate(Object.getElement(i)); + mElementSchemaItem->validate(Object.getElement(i)); if (Errors::OK != result) { return result; } @@ -82,8 +82,8 @@ void CArraySchemaItem::unapplySchema(SmartObject& Object) { } } -void CArraySchemaItem::BuildObjectBySchema( - const SmartObject& pattern_object, SmartObject& result_object) { +void CArraySchemaItem::BuildObjectBySchema(const SmartObject& pattern_object, + SmartObject& result_object) { if (SmartType_Array == pattern_object.getType()) { const size_t array_len = pattern_object.length(); if (array_len > 0) { @@ -101,10 +101,9 @@ void CArraySchemaItem::BuildObjectBySchema( CArraySchemaItem::CArraySchemaItem(const ISchemaItemPtr ElementSchemaItem, const TSchemaItemParameter<size_t>& MinSize, const TSchemaItemParameter<size_t>& MaxSize) - : mElementSchemaItem(ElementSchemaItem), - mMinSize(MinSize), - mMaxSize(MaxSize) { -} + : mElementSchemaItem(ElementSchemaItem) + , mMinSize(MinSize) + , mMaxSize(MaxSize) {} } // namespace NsSmartObjects } // namespace NsSmartDeviceLink diff --git a/src/components/smart_objects/src/bool_schema_item.cc b/src/components/smart_objects/src/bool_schema_item.cc index 845cf9f5cc..c1da95528a 100644 --- a/src/components/smart_objects/src/bool_schema_item.cc +++ b/src/components/smart_objects/src/bool_schema_item.cc @@ -36,14 +36,12 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { utils::SharedPtr<CBoolSchemaItem> CBoolSchemaItem::create( - const TSchemaItemParameter<bool> & DefaultValue) { + const TSchemaItemParameter<bool>& DefaultValue) { return new CBoolSchemaItem(DefaultValue); } -CBoolSchemaItem::CBoolSchemaItem( - const TSchemaItemParameter<bool>& DefaultValue) - : CDefaultSchemaItem<bool>(DefaultValue) { -} +CBoolSchemaItem::CBoolSchemaItem(const TSchemaItemParameter<bool>& DefaultValue) + : CDefaultSchemaItem<bool>(DefaultValue) {} SmartType CBoolSchemaItem::getSmartType() const { return SmartType_Boolean; diff --git a/src/components/smart_objects/src/number_schema_item.cc b/src/components/smart_objects/src/number_schema_item.cc index e3a85caadc..78be9fe85d 100644 --- a/src/components/smart_objects/src/number_schema_item.cc +++ b/src/components/smart_objects/src/number_schema_item.cc @@ -34,19 +34,23 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { -template<> SmartType TNumberSchemaItem<int32_t>::getSmartType() const { +template <> +SmartType TNumberSchemaItem<int32_t>::getSmartType() const { return SmartType_Integer; } -template<> SmartType TNumberSchemaItem<uint32_t>::getSmartType() const { +template <> +SmartType TNumberSchemaItem<uint32_t>::getSmartType() const { return SmartType_Integer; } -template<> SmartType TNumberSchemaItem<int64_t>::getSmartType() const { +template <> +SmartType TNumberSchemaItem<int64_t>::getSmartType() const { return SmartType_Integer; } -template<> SmartType TNumberSchemaItem<double>::getSmartType() const { +template <> +SmartType TNumberSchemaItem<double>::getSmartType() const { return SmartType_Double; } diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc index f2cc3eac41..f0c17faaea 100644 --- a/src/components/smart_objects/src/object_schema_item.cc +++ b/src/components/smart_objects/src/object_schema_item.cc @@ -45,17 +45,14 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { CObjectSchemaItem::SMember::SMember() - : mSchemaItem(CAlwaysFalseSchemaItem::create()), - mIsMandatory(true) { -} + : mSchemaItem(CAlwaysFalseSchemaItem::create()), mIsMandatory(true) {} CObjectSchemaItem::SMember::SMember(const ISchemaItemPtr SchemaItem, const bool IsMandatory) - : mSchemaItem(SchemaItem), - mIsMandatory(IsMandatory) { -} + : mSchemaItem(SchemaItem), mIsMandatory(IsMandatory) {} -utils::SharedPtr<CObjectSchemaItem> CObjectSchemaItem::create(const Members& members) { +utils::SharedPtr<CObjectSchemaItem> CObjectSchemaItem::create( + const Members& members) { return new CObjectSchemaItem(members); } @@ -66,7 +63,8 @@ Errors::eType CObjectSchemaItem::validate(const SmartObject& object) { std::set<std::string> object_keys = object.enumerate(); - for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); ++it) { + for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); + ++it) { const std::string& key = it->first; const SMember& member = it->second; @@ -98,7 +96,8 @@ void CObjectSchemaItem::applySchema(SmartObject& Object, } SmartObject default_value; - for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); ++it) { + for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); + ++it) { const std::string& key = it->first; const SMember& member = it->second; if (!Object.keyExists(key)) { @@ -127,7 +126,8 @@ void CObjectSchemaItem::unapplySchema(SmartObject& Object) { } } - for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); ++it) { + for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); + ++it) { const std::string& key = it->first; const SMember& member = it->second; if (Object.keyExists(key)) { @@ -136,18 +136,19 @@ void CObjectSchemaItem::unapplySchema(SmartObject& Object) { } } -void CObjectSchemaItem::BuildObjectBySchema( - const SmartObject& pattern_object, SmartObject& result_object) { +void CObjectSchemaItem::BuildObjectBySchema(const SmartObject& pattern_object, + SmartObject& result_object) { result_object = SmartObject(SmartType_Map); const bool pattern_is_map = SmartType_Map == pattern_object.getType(); - for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); ++it) { + for (Members::const_iterator it = mMembers.begin(); it != mMembers.end(); + ++it) { const std::string& key = it->first; const SMember& member = it->second; const bool pattern_exists = pattern_is_map && pattern_object.keyExists(key); member.mSchemaItem->BuildObjectBySchema( - pattern_exists ? pattern_object.getElement(key) : SmartObject(), - result_object[key]); + pattern_exists ? pattern_object.getElement(key) : SmartObject(), + result_object[key]); } } @@ -156,17 +157,17 @@ size_t CObjectSchemaItem::GetMemberSize() { } CObjectSchemaItem::CObjectSchemaItem(const Members& members) - : mMembers(members) {} + : mMembers(members) {} void CObjectSchemaItem::RemoveFakeParams(SmartObject& Object) { - for (SmartMap::const_iterator it = Object.map_begin(); it != Object.map_end(); ) { + for (SmartMap::const_iterator it = Object.map_begin(); + it != Object.map_end();) { const std::string& key = it->first; if (mMembers.end() == mMembers.find(key) // FIXME(EZamakhov): Remove illegal usage of filed in AM - && key.compare(connection_key) != 0 - && key.compare(binary_data) != 0 - && key.compare(app_id) != 0 - ) { + && + key.compare(connection_key) != 0 && key.compare(binary_data) != 0 && + key.compare(app_id) != 0) { ++it; Object.erase(key); } else { diff --git a/src/components/smart_objects/src/schema_item.cc b/src/components/smart_objects/src/schema_item.cc index a78afe1f2c..8c0bc0edb3 100644 --- a/src/components/smart_objects/src/schema_item.cc +++ b/src/components/smart_objects/src/schema_item.cc @@ -47,15 +47,13 @@ bool ISchemaItem::hasDefaultValue(SmartObject& Object) { return false; } -void ISchemaItem::applySchema(SmartObject& Object, const bool RemoveFakeParameters) { -} +void ISchemaItem::applySchema(SmartObject& Object, + const bool RemoveFakeParameters) {} -void ISchemaItem::unapplySchema(SmartObject& Object) { -} +void ISchemaItem::unapplySchema(SmartObject& Object) {} void ISchemaItem::BuildObjectBySchema(const SmartObject& pattern_object, - SmartObject& result_object) { -} + SmartObject& result_object) {} size_t ISchemaItem::GetMemberSize() { return 0; diff --git a/src/components/smart_objects/src/smart_schema.cc b/src/components/smart_objects/src/smart_schema.cc index 3a9cd22a0a..be24ceb076 100644 --- a/src/components/smart_objects/src/smart_schema.cc +++ b/src/components/smart_objects/src/smart_schema.cc @@ -35,13 +35,10 @@ namespace NsSmartDeviceLink { namespace NsSmartObjects { -CSmartSchema::CSmartSchema() - : mSchemaItem(CAlwaysTrueSchemaItem::create()) { -} +CSmartSchema::CSmartSchema() : mSchemaItem(CAlwaysTrueSchemaItem::create()) {} CSmartSchema::CSmartSchema(const ISchemaItemPtr SchemaItem) - : mSchemaItem(SchemaItem) { -} + : mSchemaItem(SchemaItem) {} Errors::eType CSmartSchema::validate(const SmartObject& object) const { return mSchemaItem->validate(object); @@ -51,7 +48,8 @@ void CSmartSchema::setSchemaItem(const ISchemaItemPtr schemaItem) { mSchemaItem = schemaItem; } -void CSmartSchema::applySchema(SmartObject& Object, const bool RemoveFakeParameters) { +void CSmartSchema::applySchema(SmartObject& Object, + const bool RemoveFakeParameters) { mSchemaItem->applySchema(Object, RemoveFakeParameters); } diff --git a/src/components/smart_objects/test/ArraySchemaItem_test.cc b/src/components/smart_objects/test/ArraySchemaItem_test.cc index f153a4c4a7..c4c7254cb8 100644 --- a/src/components/smart_objects/test/ArraySchemaItem_test.cc +++ b/src/components/smart_objects/test/ArraySchemaItem_test.cc @@ -50,7 +50,8 @@ TEST(test_no_default_value, test_ArraySchemaItemTest) { using namespace NsSmartDeviceLink::NsSmartObjects; SmartObject obj; - ISchemaItemPtr item = CArraySchemaItem::create(); // No schema item, no min and max size + ISchemaItemPtr item = + CArraySchemaItem::create(); // No schema item, no min and max size obj[0] = 38; obj[1] = true; @@ -97,20 +98,20 @@ TEST(test_no_default_value, test_ArraySchemaItemTest) { EXPECT_FALSE(obj[3][1].asBool()); EXPECT_EQ(std::string("Another String"), obj[3][2].asString()); - //Object - valid string + // Object - valid string obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Obj - bool + // Obj - bool obj = true; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Object - number + // Object - number obj = 3.1415926; resultType = item->validate(obj); @@ -221,7 +222,8 @@ TEST(test_array_with_max_size, test_ArraySchemaItemTest) { ISchemaItemPtr item = CArraySchemaItem::create( CStringSchemaItem::create(TSchemaItemParameter<size_t>(), TSchemaItemParameter<size_t>(25)), - TSchemaItemParameter<size_t>(), TSchemaItemParameter<size_t>(3)); // No min size + TSchemaItemParameter<size_t>(), + TSchemaItemParameter<size_t>(3)); // No min size obj[0] = "Some String"; @@ -259,7 +261,8 @@ TEST(test_array_with_min_and_max_size, test_ArraySchemaItemTest) { ISchemaItemPtr item = CArraySchemaItem::create( CStringSchemaItem::create(TSchemaItemParameter<size_t>(), TSchemaItemParameter<size_t>(25)), - TSchemaItemParameter<size_t>(2), TSchemaItemParameter<size_t>(4)); + TSchemaItemParameter<size_t>(2), + TSchemaItemParameter<size_t>(4)); obj[0] = "Some String"; @@ -300,7 +303,8 @@ TEST(test_map_validate, test_ArraySchemaItemTest) { ISchemaItemPtr item = CArraySchemaItem::create( CStringSchemaItem::create(TSchemaItemParameter<size_t>(), TSchemaItemParameter<size_t>(25)), - TSchemaItemParameter<size_t>(2), TSchemaItemParameter<size_t>(4)); + TSchemaItemParameter<size_t>(2), + TSchemaItemParameter<size_t>(4)); obj["array"][0] = "Some String"; @@ -339,4 +343,3 @@ TEST(test_map_validate, test_ArraySchemaItemTest) { } // namespace SmartObjects } // namespace components } // namespace test - diff --git a/src/components/smart_objects/test/BoolSchemaItem_test.cc b/src/components/smart_objects/test/BoolSchemaItem_test.cc index c56dd9aa2d..fa9c6a3d5d 100644 --- a/src/components/smart_objects/test/BoolSchemaItem_test.cc +++ b/src/components/smart_objects/test/BoolSchemaItem_test.cc @@ -48,14 +48,17 @@ using NsSmartDeviceLink::NsSmartObjects::ISchemaItemPtr; /** * Test BoolSchemaItem no default value * - * Create SchemaItem without default value. Method setDefaultValue should always return false + * Create SchemaItem without default value. Method setDefaultValue should always + *return false * and leave SmartObject in previous state. **/ TEST(test_no_default_value, test_BoolSchemaItemTest) { NsSmartDeviceLink::NsSmartObjects::SmartObject obj; ISchemaItemPtr item = - NsSmartDeviceLink::NsSmartObjects::CBoolSchemaItem::create(); // No default value + NsSmartDeviceLink::NsSmartObjects::CBoolSchemaItem::create(); // No + // default + // value obj = 5; ASSERT_EQ(5, obj.asInt()); @@ -89,16 +92,19 @@ TEST(test_no_default_value, test_BoolSchemaItemTest) { /** * Test BoolSchemaItem with default value * - * Create SchemaItem with default value. Method setDefaultValue should return true, + * Create SchemaItem with default value. Method setDefaultValue should return + *true, * Bool SmartObject should contain default value. - * Not bool SmartObject should converted to BoolObject and setted up by default value. + * Not bool SmartObject should converted to BoolObject and setted up by default + *value. **/ TEST(test_item_with_default_value, test_BoolSchemaItemTest) { NsSmartDeviceLink::NsSmartObjects::SmartObject obj; ISchemaItemPtr item = NsSmartDeviceLink::NsSmartObjects::CBoolSchemaItem::create( - NsSmartDeviceLink::NsSmartObjects::TSchemaItemParameter<bool>(false)); // Default value = false + NsSmartDeviceLink::NsSmartObjects::TSchemaItemParameter<bool>( + false)); // Default value = false obj = 5; ASSERT_EQ(5, obj.asInt()); @@ -135,7 +141,8 @@ TEST(test_map_validate, test_BoolSchemaItemTest) { NsSmartDeviceLink::NsSmartObjects::SmartObject obj; ISchemaItemPtr item = NsSmartDeviceLink::NsSmartObjects::CBoolSchemaItem::create( - NsSmartDeviceLink::NsSmartObjects::TSchemaItemParameter<bool>(false)); // Default value = false + NsSmartDeviceLink::NsSmartObjects::TSchemaItemParameter<bool>( + false)); // Default value = false obj["aa"] = true; ASSERT_TRUE(obj["aa"].asBool()); diff --git a/src/components/smart_objects/test/CObjectSchemaItem_test.cc b/src/components/smart_objects/test/CObjectSchemaItem_test.cc index 82e859702b..b3777ad028 100644 --- a/src/components/smart_objects/test/CObjectSchemaItem_test.cc +++ b/src/components/smart_objects/test/CObjectSchemaItem_test.cc @@ -120,8 +120,8 @@ class ObjectSchemaItemTest : public ::testing::Test { CObjectSchemaItem::Members paramsMembersMap; paramsMembersMap[S_FUNCTION_ID] = CObjectSchemaItem::SMember( TEnumSchemaItem<FunctionID::eType>::create(function_values), true); - paramsMembersMap[S_CORRELATION_ID] = CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(), true); + paramsMembersMap[S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); paramsMembersMap[S_PROTOCOL_VERSION] = CObjectSchemaItem::SMember( TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), TSchemaItemParameter<int>(2)), @@ -134,8 +134,8 @@ class ObjectSchemaItemTest : public ::testing::Test { CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(10)), false); - schemaMembersMap[Keys::SUCCESS] = CObjectSchemaItem::SMember( - CBoolSchemaItem::create(), false); + schemaMembersMap[Keys::SUCCESS] = + CObjectSchemaItem::SMember(CBoolSchemaItem::create(), false); CObjectSchemaItem::Members rootMembersMap; rootMembersMap[S_PARAMS] = CObjectSchemaItem::SMember( @@ -313,7 +313,6 @@ TEST_F(ObjectSchemaItemTest, validation_unexpected_param_remove) { EXPECT_TRUE(obj[S_MSG_PARAMS].keyExists(Keys::SUCCESS)); EXPECT_EQ(Errors::OK, schema_item->validate(obj)); - obj[fake1] = SmartObject(static_cast<int64_t>(0)); obj[S_PARAMS][fake2] = SmartObject("123"); obj[S_MSG_PARAMS][fake3] = true; @@ -368,9 +367,11 @@ TEST_F(ObjectSchemaItemTest, test_strings_to_enum_conversion) { EnumConversionHelper<FunctionID::eType>::cstring_to_enum_map(); for (Results::const_iterator res_it = results.begin(); - res_it != results.end(); ++res_it) { + res_it != results.end(); + ++res_it) { for (Functions::const_iterator func_it = functions.begin(); - func_it != functions.end(); ++func_it) { + func_it != functions.end(); + ++func_it) { const char* const function_str = func_it->first; const char* const result_type_str = res_it->first; const FunctionID::eType function_type = func_it->second; @@ -401,7 +402,7 @@ TEST_F(ObjectSchemaItemTest, test_strings_to_enum_conversion) { } } // ---------------------------------------------------------------------------- -}// namespace SchemaItem +} // namespace SchemaItem } // namespace SmartObjects } // namespace components } // namespace test @@ -412,50 +413,74 @@ namespace NsSmartObjects { namespace FunctionID = test::components::SmartObjects::SchemaItem::FunctionID; typedef EnumConversionHelper<FunctionID::eType> FunctionConvertor; -template<> -const FunctionConvertor::EnumToCStringMap FunctionConvertor::enum_to_cstring_map_ = - FunctionConvertor::InitEnumToCStringMap(); - -template<> -const FunctionConvertor::CStringToEnumMap FunctionConvertor::cstring_to_enum_map_ = - FunctionConvertor::InitCStringToEnumMap(); - -template<> -const char* const FunctionConvertor::cstring_values_[] = - { "Function0", "Function1", "Function2", "Function3", "Function4", - "Function5", "Function6" }; - -template<> +template <> +const FunctionConvertor::EnumToCStringMap + FunctionConvertor::enum_to_cstring_map_ = + FunctionConvertor::InitEnumToCStringMap(); + +template <> +const FunctionConvertor::CStringToEnumMap + FunctionConvertor::cstring_to_enum_map_ = + FunctionConvertor::InitCStringToEnumMap(); + +template <> +const char* const FunctionConvertor::cstring_values_[] = {"Function0", + "Function1", + "Function2", + "Function3", + "Function4", + "Function5", + "Function6"}; + +template <> const FunctionID::eType FunctionConvertor::enum_values_[] = { - FunctionID::Function0, FunctionID::Function1, FunctionID::Function2, - FunctionID::Function3, FunctionID::Function4, FunctionID::Function5, - FunctionID::Function6 }; + FunctionID::Function0, + FunctionID::Function1, + FunctionID::Function2, + FunctionID::Function3, + FunctionID::Function4, + FunctionID::Function5, + FunctionID::Function6}; // ---------------------------------------------------------------------------- namespace ResultType = test::components::SmartObjects::SchemaItem::ResultType; typedef EnumConversionHelper<ResultType::eType> ResultTypeConvertor; -template<> -const ResultTypeConvertor::EnumToCStringMap ResultTypeConvertor::enum_to_cstring_map_ = - ResultTypeConvertor::InitEnumToCStringMap(); +template <> +const ResultTypeConvertor::EnumToCStringMap + ResultTypeConvertor::enum_to_cstring_map_ = + ResultTypeConvertor::InitEnumToCStringMap(); -template<> -const ResultTypeConvertor::CStringToEnumMap ResultTypeConvertor::cstring_to_enum_map_ = - ResultTypeConvertor::InitCStringToEnumMap(); +template <> +const ResultTypeConvertor::CStringToEnumMap + ResultTypeConvertor::cstring_to_enum_map_ = + ResultTypeConvertor::InitCStringToEnumMap(); -template<> +template <> const char* const ResultTypeConvertor::cstring_values_[] = { - "APPLICATION_NOT_REGISTERED", "SUCCESS", "TOO_MANY_PENDING_REQUESTS", - "REJECTED", "INVALID_DATA", "OUT_OF_MEMORY", "ABORTED", "USER_DISALLOWED", - "GENERIC_ERROR", "DISALLOWED" }; - -template<> + "APPLICATION_NOT_REGISTERED", + "SUCCESS", + "TOO_MANY_PENDING_REQUESTS", + "REJECTED", + "INVALID_DATA", + "OUT_OF_MEMORY", + "ABORTED", + "USER_DISALLOWED", + "GENERIC_ERROR", + "DISALLOWED"}; + +template <> const ResultType::eType ResultTypeConvertor::enum_values_[] = { - ResultType::APPLICATION_NOT_REGISTERED, ResultType::SUCCESS, - ResultType::TOO_MANY_PENDING_REQUESTS, ResultType::REJECTED, - ResultType::INVALID_DATA, ResultType::OUT_OF_MEMORY, ResultType::ABORTED, - ResultType::USER_DISALLOWED, ResultType::GENERIC_ERROR, - ResultType::DISALLOWED }; + ResultType::APPLICATION_NOT_REGISTERED, + ResultType::SUCCESS, + ResultType::TOO_MANY_PENDING_REQUESTS, + ResultType::REJECTED, + ResultType::INVALID_DATA, + ResultType::OUT_OF_MEMORY, + ResultType::ABORTED, + ResultType::USER_DISALLOWED, + ResultType::GENERIC_ERROR, + ResultType::DISALLOWED}; } // namespace NsSmartObjects } // namespace NsSmartDeviceLink diff --git a/src/components/smart_objects/test/EnumSchemaItem_test.cc b/src/components/smart_objects/test/EnumSchemaItem_test.cc index 6d007b74b6..24cde07193 100644 --- a/src/components/smart_objects/test/EnumSchemaItem_test.cc +++ b/src/components/smart_objects/test/EnumSchemaItem_test.cc @@ -71,8 +71,7 @@ class EnumSchemaItemTest : public ::testing::Test { testEnum.insert(TestType::APP_UNAUTHORIZED); } - virtual void SetUp() { - } + virtual void SetUp() {} std::set<TestType::eType> testEnum; }; @@ -80,9 +79,11 @@ class EnumSchemaItemTest : public ::testing::Test { /** * Test EnumSchemaItem * - * Create SchemaItem with default value. Method setDefaultValue should return true, + * Create SchemaItem with default value. Method setDefaultValue should return + *true, * SmartObject should contain default value. - * Not Enum SmartObject should converted to intObject and setted up by the default value. + * Not Enum SmartObject should converted to intObject and setted up by the + *default value. **/ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { SmartObject obj; @@ -90,7 +91,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { testEnum, TSchemaItemParameter<TestType::eType>(TestType::FACTORY_DEFAULTS)); - //Object - valid enum + // Object - valid enum obj = TestType::BLUETOOTH_OFF; int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); @@ -98,7 +99,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { EXPECT_TRUE(resDefault); EXPECT_EQ(TestType::FACTORY_DEFAULTS, obj.asInt()); - //Obj - bool + // Obj - bool obj = true; resultType = item->validate(obj); @@ -107,7 +108,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { EXPECT_TRUE(resDefault); EXPECT_EQ(TestType::FACTORY_DEFAULTS, obj.asInt()); - //Object - number + // Object - number obj = 3.1415926; resultType = item->validate(obj); @@ -117,7 +118,7 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { EXPECT_TRUE(resDefault); EXPECT_EQ(TestType::FACTORY_DEFAULTS, obj.asInt()); - //Object - string + // Object - string obj = "Some string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -130,7 +131,8 @@ TEST_F(EnumSchemaItemTest, test_item_with_default_value) { /** * Test EnumSchemaItem with default value * - * Create SchemaItem without default value. Method setDefaultValue should return false, + * Create SchemaItem without default value. Method setDefaultValue should return + *false, * SmartObject should contain previous value. **/ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { @@ -139,7 +141,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { ISchemaItemPtr item = TEnumSchemaItem<TestType::eType>::create( testEnum, TSchemaItemParameter<TestType::eType>()); - //Object - valid enum + // Object - valid enum obj = TestType::BLUETOOTH_OFF; int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); @@ -147,7 +149,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { EXPECT_FALSE(resDefault); EXPECT_EQ(TestType::BLUETOOTH_OFF, obj.asInt()); - //Obj - bool + // Obj - bool obj = true; resultType = item->validate(obj); @@ -156,7 +158,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { EXPECT_FALSE(resDefault); EXPECT_TRUE(obj.asBool()); - //Object - number + // Object - number obj = 3.1415926; resultType = item->validate(obj); @@ -166,7 +168,7 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { EXPECT_FALSE(resDefault); EXPECT_EQ(3.1415926, obj.asDouble()); - //Object - string + // Object - string obj = "Some string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -175,12 +177,12 @@ TEST_F(EnumSchemaItemTest, test_item_without_default_value) { EXPECT_FALSE(resDefault); EXPECT_EQ(std::string("Some string"), obj.asString()); - //Object - int in range of enum + // Object - int in range of enum obj = 6; resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object - int out of enum range + // Object - int out of enum range obj = 15; resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); @@ -196,7 +198,7 @@ TEST_F(EnumSchemaItemTest, test_apply_unapply_schema) { testEnum, TSchemaItemParameter<TestType::eType>(TestType::FACTORY_DEFAULTS)); - //Object - valid enum + // Object - valid enum obj = TestType::BLUETOOTH_OFF; int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); @@ -226,7 +228,6 @@ TEST_F(EnumSchemaItemTest, test_apply_unapply_schema) { EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_EQ(std::string("ENOUGH_REQUESTS"), obj.asString()); } - } } } @@ -235,38 +236,45 @@ TEST_F(EnumSchemaItemTest, test_apply_unapply_schema) { namespace NsSmartDeviceLink { namespace NsSmartObjects { -template<> -const EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::enum_to_cstring_map_ = - EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::cstring_to_enum_map_ = - EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::InitCStringToEnumMap(); - -template<> +template <> +const EnumConversionHelper<test::components::SmartObjects::SchemaItem:: + TestType::eType>::EnumToCStringMap + EnumConversionHelper<test::components::SmartObjects::SchemaItem::TestType:: + eType>::enum_to_cstring_map_ = + EnumConversionHelper<test::components::SmartObjects::SchemaItem:: + TestType::eType>::InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<test::components::SmartObjects::SchemaItem:: + TestType::eType>::CStringToEnumMap + EnumConversionHelper<test::components::SmartObjects::SchemaItem::TestType:: + eType>::cstring_to_enum_map_ = + EnumConversionHelper<test::components::SmartObjects::SchemaItem:: + TestType::eType>::InitCStringToEnumMap(); + +template <> const char* const EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::cstring_values_[] = - { "USER_EXIT", "IGNITION_OFF", "BLUETOOTH_OFF", "USB_DISCONNECTED", - "TOO_MANY_REQUESTS", "MASTER_RESET", "FACTORY_DEFAULTS", - "APP_UNAUTHORIZED" }; - -template<> -const test::components::SmartObjects::SchemaItem::TestType::eType EnumConversionHelper< - test::components::SmartObjects::SchemaItem::TestType::eType>::enum_values_[] = - { test::components::SmartObjects::SchemaItem::TestType::USER_EXIT, + test::components::SmartObjects::SchemaItem::TestType::eType>:: + cstring_values_[] = {"USER_EXIT", + "IGNITION_OFF", + "BLUETOOTH_OFF", + "USB_DISCONNECTED", + "TOO_MANY_REQUESTS", + "MASTER_RESET", + "FACTORY_DEFAULTS", + "APP_UNAUTHORIZED"}; + +template <> +const test::components::SmartObjects::SchemaItem::TestType::eType + EnumConversionHelper<test::components::SmartObjects::SchemaItem::TestType:: + eType>::enum_values_[] = { + test::components::SmartObjects::SchemaItem::TestType::USER_EXIT, test::components::SmartObjects::SchemaItem::TestType::IGNITION_OFF, test::components::SmartObjects::SchemaItem::TestType::BLUETOOTH_OFF, test::components::SmartObjects::SchemaItem::TestType::USB_DISCONNECTED, test::components::SmartObjects::SchemaItem::TestType::TOO_MANY_REQUESTS, test::components::SmartObjects::SchemaItem::TestType::MASTER_RESET, test::components::SmartObjects::SchemaItem::TestType::FACTORY_DEFAULTS, - test::components::SmartObjects::SchemaItem::TestType::APP_UNAUTHORIZED }; - + test::components::SmartObjects::SchemaItem::TestType::APP_UNAUTHORIZED}; } } diff --git a/src/components/smart_objects/test/NumberSchemaItem_test.cc b/src/components/smart_objects/test/NumberSchemaItem_test.cc index 4e52bdf491..2c4b24e927 100644 --- a/src/components/smart_objects/test/NumberSchemaItem_test.cc +++ b/src/components/smart_objects/test/NumberSchemaItem_test.cc @@ -46,7 +46,8 @@ using NsSmartDeviceLink::NsSmartObjects::ISchemaItemPtr; /** * Test NumberSchemaItem as INT with no default value * - * Create SchemaItem without default value. Method setDefaultValue should always return false + * Create SchemaItem without default value. Method setDefaultValue should always + *return false * and leave SmartObject in previous state. **/ TEST(test_int_no_default_value, test_NumberSchemaItemTest) { @@ -54,30 +55,31 @@ TEST(test_int_no_default_value, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<int>::create(); // No default value, no min, no max + ISchemaItemPtr item = + TNumberSchemaItem<int>::create(); // No default value, no min, no max - //Object int + // Object int obj = 5; ASSERT_EQ(5, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Obj bool + // Obj bool obj = true; ASSERT_TRUE(obj.asBool()); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_TRUE(obj.asBool()); - //Obj string + // Obj string obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); @@ -100,21 +102,21 @@ TEST(test_int_min_value, test_NumberSchemaItemTest) { ISchemaItemPtr item = TNumberSchemaItem<int>::create( TSchemaItemParameter<int>(10)); // No default value, no max value - //Object int correct + // Object int correct obj = 15; ASSERT_EQ(15, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 9; ASSERT_EQ(9, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object int correct + // Object int correct obj = 10; ASSERT_EQ(10, obj.asInt()); @@ -131,23 +133,24 @@ TEST(test_int_max_value, test_NumberSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(), TSchemaItemParameter<int>(749)); // No default value, no min value + TSchemaItemParameter<int>(), + TSchemaItemParameter<int>(749)); // No default value, no min value - //Object int correct + // Object int correct obj = 749; ASSERT_EQ(749, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 750; ASSERT_EQ(750, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object int correct + // Object int correct obj = -750; ASSERT_EQ(-750, obj.asInt()); @@ -164,36 +167,36 @@ TEST(test_int_min_max_value, test_NumberSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-949), TSchemaItemParameter<int>(749)); // No default value + TSchemaItemParameter<int>(-949), + TSchemaItemParameter<int>(749)); // No default value - //Object int correct + // Object int correct obj = 749; ASSERT_EQ(749, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 750; ASSERT_EQ(750, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object int correct + // Object int correct obj = -949; ASSERT_EQ(-949, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = -950; ASSERT_EQ(-950, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - } /** @@ -204,46 +207,47 @@ TEST(test_int_correct_default_value, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-12000), TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38)); + ISchemaItemPtr item = + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(-12000), + TSchemaItemParameter<int>(100), + TSchemaItemParameter<int>(-38)); - //Object int correct + // Object int correct obj = -12000; ASSERT_EQ(-12000, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = -12001; ASSERT_EQ(-12001, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object int correct + // Object int correct obj = 100; ASSERT_EQ(100, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 101; ASSERT_EQ(101, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38, obj.asInt()); - //Object string + // Object string obj = "string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -263,45 +267,46 @@ TEST(test_int_default_value_out_of_range, test_NumberSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(90), TSchemaItemParameter<int>(100), + TSchemaItemParameter<int>(90), + TSchemaItemParameter<int>(100), TSchemaItemParameter<int>(50)); // Default value out of range - //Object int correct + // Object int correct obj = 90; ASSERT_EQ(90, obj.asInt()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 89; ASSERT_EQ(89, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object int correct + // Object int correct obj = 100; ASSERT_EQ(100, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object int incorrect + // Object int incorrect obj = 101; ASSERT_EQ(101, obj.asInt()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50, obj.asInt()); - //Object string + // Object string obj = "string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -317,9 +322,10 @@ TEST(test_int_map_validate, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-120), TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38)); + ISchemaItemPtr item = + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(-120), + TSchemaItemParameter<int>(100), + TSchemaItemParameter<int>(-38)); obj["min"] = -120; obj["out_of_min"] = -121; @@ -337,7 +343,7 @@ TEST(test_int_map_validate, test_NumberSchemaItemTest) { resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj["aa"]); EXPECT_TRUE(resDefault); EXPECT_EQ(-38, obj["aa"].asInt()); @@ -361,9 +367,10 @@ TEST(test_int_array_validate, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-120), TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38)); + ISchemaItemPtr item = + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(-120), + TSchemaItemParameter<int>(100), + TSchemaItemParameter<int>(-38)); obj[0] = -121; obj[1] = -120; @@ -411,7 +418,8 @@ TEST(test_int_array_validate, test_NumberSchemaItemTest) { /** * Test NumberSchemaItem as DOUBLE with no default value * - * Create SchemaItem without default value. Method setDefaultValue should always return false + * Create SchemaItem without default value. Method setDefaultValue should always + *return false * and leave SmartObject in previous state. **/ TEST(test_double_no_default_value, test_NumberSchemaItemTest) { @@ -419,37 +427,38 @@ TEST(test_double_no_default_value, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<double>::create(); // No default value, no min, no max + ISchemaItemPtr item = + TNumberSchemaItem<double>::create(); // No default value, no min, no max - //Object int + // Object int obj = 5.79; ASSERT_EQ(5.79, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Obj bool + // Obj bool obj = true; ASSERT_TRUE(obj.asBool()); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); EXPECT_TRUE(obj.asBool()); - //Obj string + // Obj string obj = "Test"; ASSERT_EQ(std::string("Test"), obj.asString()); resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); - //Set default value + // Set default value resDefault = item->setDefaultValue(obj); EXPECT_FALSE(resDefault); resultType = item->validate(obj); @@ -467,14 +476,14 @@ TEST(test_double_min_value, test_NumberSchemaItemTest) { ISchemaItemPtr item = TNumberSchemaItem<double>::create( TSchemaItemParameter<double>(10.0)); // No default value, no max value - //Object double correct + // Object double correct obj = 10.000001; ASSERT_EQ(10.000001, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 9.999999; ASSERT_EQ(9.999999, obj.asDouble()); @@ -498,23 +507,24 @@ TEST(test_double_max_value, test_NumberSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(), TSchemaItemParameter<double>(749.0)); // No default value, no min value + TSchemaItemParameter<double>(), + TSchemaItemParameter<double>(749.0)); // No default value, no min value - //Object double correct + // Object double correct obj = 749.0; ASSERT_EQ(749.0, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 749.0001; ASSERT_EQ(749.0001, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object double correct + // Object double correct obj = -750.0; ASSERT_EQ(-750.0, obj.asDouble()); @@ -534,34 +544,33 @@ TEST(test_double_min_max_value, test_NumberSchemaItemTest) { TSchemaItemParameter<double>(-949.0), TSchemaItemParameter<double>(749.0)); // No default value - //Object double correct + // Object double correct obj = 749.0; ASSERT_EQ(749.0, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 749.001; ASSERT_EQ(749.001, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object double correct + // Object double correct obj = -949.0; ASSERT_EQ(-949.0, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = -949.00001; ASSERT_EQ(-949.00001, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - } /** @@ -572,46 +581,47 @@ TEST(test_double_correct_default_value, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-12000.0), - TSchemaItemParameter<double>(100.0), TSchemaItemParameter<double>(-38.0)); + ISchemaItemPtr item = + TNumberSchemaItem<double>::create(TSchemaItemParameter<double>(-12000.0), + TSchemaItemParameter<double>(100.0), + TSchemaItemParameter<double>(-38.0)); - //Object double correct + // Object double correct obj = -12000.0; ASSERT_EQ(-12000.0, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = -12000.01; ASSERT_EQ(-12000.01, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object double correct + // Object double correct obj = 100.0; ASSERT_EQ(100.0, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 100.001; ASSERT_EQ(100.001, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); EXPECT_EQ(-38.0, obj.asDouble()); - //Object string + // Object string obj = "string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -631,45 +641,46 @@ TEST(test_double_default_value_out_of_range, test_NumberSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(90.0), TSchemaItemParameter<double>(100.0), + TSchemaItemParameter<double>(90.0), + TSchemaItemParameter<double>(100.0), TSchemaItemParameter<double>(50.0)); // Default value out of range - //Object double correct + // Object double correct obj = 90.0; ASSERT_EQ(90.0, obj.asDouble()); int resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 89.999; ASSERT_EQ(89.999, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Object double correct + // Object double correct obj = 100.0; ASSERT_EQ(100.0, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OK, resultType); - //Object double incorrect + // Object double incorrect obj = 100.001; ASSERT_EQ(100.001, obj.asDouble()); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - //Set default value + // Set default value bool resDefault = item->setDefaultValue(obj); EXPECT_TRUE(resDefault); resultType = item->validate(obj); EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); EXPECT_EQ(50.0, obj.asDouble()); - //Object string + // Object string obj = "string"; resultType = item->validate(obj); EXPECT_EQ(Errors::INVALID_VALUE, resultType); @@ -685,9 +696,10 @@ TEST(test_double_map_validate, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-120.0), TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(-38.0)); + ISchemaItemPtr item = + TNumberSchemaItem<double>::create(TSchemaItemParameter<double>(-120.0), + TSchemaItemParameter<double>(100.0), + TSchemaItemParameter<double>(-38.0)); obj["min"] = -120.0; obj["out_of_min"] = -120.001; @@ -728,9 +740,10 @@ TEST(test_double_array_validate, test_NumberSchemaItemTest) { SmartObject obj; - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-120.0), TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(-38.0)); + ISchemaItemPtr item = + TNumberSchemaItem<double>::create(TSchemaItemParameter<double>(-120.0), + TSchemaItemParameter<double>(100.0), + TSchemaItemParameter<double>(-38.0)); obj[0] = -120.001; obj[1] = -120.0; diff --git a/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc b/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc index f1bf1df697..d9f099afb1 100644 --- a/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc +++ b/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc @@ -1,6 +1,7 @@ -//TODO -//this test file should be refactored. Now it doesn't test anything. -//Previously it tests equality of objects but should test time for object's conversion +// TODO +// this test file should be refactored. Now it doesn't test anything. +// Previously it tests equality of objects but should test time for object's +// conversion /* * Copyright (c) 2014, Ford Motor Company * All rights reserved. @@ -87,32 +88,27 @@ enum eType { } namespace MessageTypeTest { -enum eType { - INVALID_ENUM = -1, - request, - response, - notification -}; +enum eType { INVALID_ENUM = -1, request, response, notification }; } class SmartObjectConvertionTimeTest : public ::testing::Test { protected: - double getConvertionTimeToJsonV2Format(const SmartObject& srcObj, std::string& jsonString) { timespec convertionStartTime, convertionEndTime; clock_gettime(CLOCK_REALTIME, &convertionStartTime); // SmartObjects --> JSON - NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv2::toString( - srcObj, jsonString); + NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv2:: + toString(srcObj, jsonString); clock_gettime(CLOCK_REALTIME, &convertionEndTime); - return static_cast<double>(convertionEndTime.tv_sec - - convertionStartTime.tv_sec) - + static_cast<double>(convertionEndTime.tv_nsec - - convertionStartTime.tv_nsec) * 1e-9; + return static_cast<double>(convertionEndTime.tv_sec - + convertionStartTime.tv_sec) + + static_cast<double>(convertionEndTime.tv_nsec - + convertionStartTime.tv_nsec) * + 1e-9; } double getConvertionTimeFromJsonV2Format(std::string& jsonString, @@ -121,16 +117,20 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { clock_gettime(CLOCK_REALTIME, &convertionStartTime); // JSON --> SmartObjects - NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv2::fromString< - FunctionIdTest::eType, MessageTypeTest::eType>( - jsonString, dstObj, FunctionIdTest::RegisterAppInterface, - MessageTypeTest::request, 13); + NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv2:: + fromString<FunctionIdTest::eType, MessageTypeTest::eType>( + jsonString, + dstObj, + FunctionIdTest::RegisterAppInterface, + MessageTypeTest::request, + 13); clock_gettime(CLOCK_REALTIME, &convertionEndTime); - return static_cast<double>(convertionEndTime.tv_sec - - convertionStartTime.tv_sec) - + static_cast<double>(convertionEndTime.tv_nsec - - convertionStartTime.tv_nsec) * 1e-9; + return static_cast<double>(convertionEndTime.tv_sec - + convertionStartTime.tv_sec) + + static_cast<double>(convertionEndTime.tv_nsec - + convertionStartTime.tv_nsec) * + 1e-9; } double getConvertionTimeToJsonV1Format(const SmartObject& srcObj, @@ -139,14 +139,15 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { clock_gettime(CLOCK_REALTIME, &convertionStartTime); // SmartObjects --> JSON - NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv1::toString( - srcObj, jsonString); + NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv1:: + toString(srcObj, jsonString); clock_gettime(CLOCK_REALTIME, &convertionEndTime); - return static_cast<double>(convertionEndTime.tv_sec - - convertionStartTime.tv_sec) - + static_cast<double>(convertionEndTime.tv_nsec - - convertionStartTime.tv_nsec) * 1e-9; + return static_cast<double>(convertionEndTime.tv_sec - + convertionStartTime.tv_sec) + + static_cast<double>(convertionEndTime.tv_nsec - + convertionStartTime.tv_nsec) * + 1e-9; } double getConvertionTimeFromJsonV1Format(std::string& jsonString, @@ -155,14 +156,16 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { clock_gettime(CLOCK_REALTIME, &convertionStartTime); // JSON --> SmartObjects - NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv1::fromString< - FunctionIdTest::eType, MessageTypeTest::eType>(jsonString, dstObj); + NsSmartDeviceLink::NsJSONHandler::Formatters::CFormatterJsonSDLRPCv1:: + fromString<FunctionIdTest::eType, MessageTypeTest::eType>(jsonString, + dstObj); clock_gettime(CLOCK_REALTIME, &convertionEndTime); - return static_cast<double>(convertionEndTime.tv_sec - - convertionStartTime.tv_sec) - + static_cast<double>(convertionEndTime.tv_nsec - - convertionStartTime.tv_nsec) * 1e-9; + return static_cast<double>(convertionEndTime.tv_sec - + convertionStartTime.tv_sec) + + static_cast<double>(convertionEndTime.tv_nsec - + convertionStartTime.tv_nsec) * + 1e-9; } void calculateConvertionTime(SmartObject& srcObj, SmartObject& dstObj) { @@ -173,56 +176,60 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { for (int i = 0; i < cycles; i++) { convertionToTime += getConvertionTimeToJsonV1Format(srcObj, jsonString); -// printf("%s\n", jsonString.c_str()); - convertionFromTime += getConvertionTimeFromJsonV1Format(jsonString, - dstObj); + // printf("%s\n", jsonString.c_str()); + convertionFromTime += + getConvertionTimeFromJsonV1Format(jsonString, dstObj); } printf( "Format V1. Convertion TO time = %.8f, Convertion FROM time = %.8f\n", - convertionToTime / cycles, convertionFromTime / cycles); + convertionToTime / cycles, + convertionFromTime / cycles); - srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1; // adjust protocol version + srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1; // adjust protocol version srcObj.getSchema().applySchema(dstObj, false); // The objects are different after remove non-schemed fields -// EXPECT_TRUE(srcObj == dstObj); + // EXPECT_TRUE(srcObj == dstObj); convertionToTime = 0.0; convertionFromTime = 0.0; for (int i = 0; i < cycles; i++) { convertionToTime += getConvertionTimeToJsonV2Format(srcObj, jsonString); - convertionFromTime += getConvertionTimeFromJsonV2Format(jsonString, - dstObj); + convertionFromTime += + getConvertionTimeFromJsonV2Format(jsonString, dstObj); } printf( "Format V2. Convertion TO time = %.8f, Convertion FROM time = %.8f\n", - convertionToTime / cycles, convertionFromTime / cycles); + convertionToTime / cycles, + convertionFromTime / cycles); - srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2; // adjust protocol version + srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2; // adjust protocol version dstObj.getSchema().applySchema(dstObj, false); // The objects are different after remove non-schemed fields -// EXPECT_TRUE(srcObj == dstObj); + // EXPECT_TRUE(srcObj == dstObj); } void calculateConvertionTimeWithJsonStringOutput(const SmartObject& srcObj, SmartObject& dstObj) { std::string jsonString; - double convertionToTime = getConvertionTimeToJsonV1Format(srcObj, - jsonString); - double convertionFromTime = getConvertionTimeFromJsonV1Format(jsonString, - dstObj); + double convertionToTime = + getConvertionTimeToJsonV1Format(srcObj, jsonString); + double convertionFromTime = + getConvertionTimeFromJsonV1Format(jsonString, dstObj); printf("\nJSON string V1 = %s", jsonString.c_str()); printf( "\nFormat V1. Convertion TO time = %.8f, Convertion FROM time = %.8f\n", - convertionToTime, convertionFromTime); + convertionToTime, + convertionFromTime); convertionToTime = getConvertionTimeToJsonV2Format(srcObj, jsonString); convertionFromTime = getConvertionTimeFromJsonV2Format(jsonString, dstObj); printf("\nJSON string V2 = %s", jsonString.c_str()); printf( "\nFormat V2. Convertion TO time = %.8f, Convertion FROM time = %.8f\n", - convertionToTime, convertionFromTime); + convertionToTime, + convertionFromTime); } // The basic Schema just for enum conversion (FunctionId and MessageType) @@ -244,16 +251,19 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { TEnumSchemaItem<FunctionIdTest::eType>::create( functionId_allowedEnumSubsetValues); - ISchemaItemPtr messageType_SchemaItem = TEnumSchemaItem< - MessageTypeTest::eType>::create(messageType_allowedEnumSubsetValues); + ISchemaItemPtr messageType_SchemaItem = + TEnumSchemaItem<MessageTypeTest::eType>::create( + messageType_allowedEnumSubsetValues); CObjectSchemaItem::Members paramsMembersMap; paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_FUNCTION_ID] = CObjectSchemaItem::SMember(functionId_SchemaItem, true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE] = - CObjectSchemaItem::SMember(messageType_SchemaItem, true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID] = - CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE] = + CObjectSchemaItem::SMember(messageType_SchemaItem, true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); std::map<std::string, CObjectSchemaItem::SMember> rootMembersMap; rootMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_PARAMS] = @@ -263,7 +273,7 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { return CSmartSchema(CObjectSchemaItem::create(rootMembersMap)); } - //Create SmartObjectSchema for test object + // Create SmartObjectSchema for test object CSmartSchema initObjectSchema() { std::set<TestType::eType> resultCode_allowedEnumSubsetValues; resultCode_allowedEnumSubsetValues.insert( @@ -292,32 +302,34 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { messageType_allowedEnumSubsetValues.insert(MessageTypeTest::response); messageType_allowedEnumSubsetValues.insert(MessageTypeTest::notification); - ISchemaItemPtr success_SchemaItem = CBoolSchemaItem::create( - TSchemaItemParameter<bool>()); + ISchemaItemPtr success_SchemaItem = + CBoolSchemaItem::create(TSchemaItemParameter<bool>()); ISchemaItemPtr resultCode_SchemaItem = TEnumSchemaItem<TestType::eType>::create( resultCode_allowedEnumSubsetValues, TSchemaItemParameter<TestType::eType>()); - ISchemaItemPtr info_SchemaItem = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(1000), - TSchemaItemParameter<std::string>()); + ISchemaItemPtr info_SchemaItem = + CStringSchemaItem::create(TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(1000), + TSchemaItemParameter<std::string>()); - ISchemaItemPtr tryAgainTime_SchemaItem = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(0), TSchemaItemParameter<int>(2000000000), - TSchemaItemParameter<int>()); + ISchemaItemPtr tryAgainTime_SchemaItem = + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(0), + TSchemaItemParameter<int>(2000000000), + TSchemaItemParameter<int>()); std::map<std::string, CObjectSchemaItem::SMember> schemaMembersMap; - schemaMembersMap["success"] = CObjectSchemaItem::SMember(success_SchemaItem, - true); - schemaMembersMap["resultCode"] = CObjectSchemaItem::SMember( - resultCode_SchemaItem, true); - schemaMembersMap["info"] = CObjectSchemaItem::SMember(info_SchemaItem, - false); - schemaMembersMap["tryAgainTime"] = CObjectSchemaItem::SMember( - tryAgainTime_SchemaItem, true); + schemaMembersMap["success"] = + CObjectSchemaItem::SMember(success_SchemaItem, true); + schemaMembersMap["resultCode"] = + CObjectSchemaItem::SMember(resultCode_SchemaItem, true); + schemaMembersMap["info"] = + CObjectSchemaItem::SMember(info_SchemaItem, false); + schemaMembersMap["tryAgainTime"] = + CObjectSchemaItem::SMember(tryAgainTime_SchemaItem, true); std::map<std::string, CObjectSchemaItem::SMember> paramsMembersMap; paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_FUNCTION_ID] = @@ -325,20 +337,24 @@ class SmartObjectConvertionTimeTest : public ::testing::Test { TEnumSchemaItem<FunctionIdTest::eType>::create( functionId_allowedEnumSubsetValues), true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE] = - CObjectSchemaItem::SMember( - TEnumSchemaItem<MessageTypeTest::eType>::create( - messageType_allowedEnumSubsetValues), - true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID] = - CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_VERSION] = - CObjectSchemaItem::SMember( - TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), - TSchemaItemParameter<int>(2)), - true); - paramsMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_TYPE] = - CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_MESSAGE_TYPE] = + CObjectSchemaItem::SMember( + TEnumSchemaItem<MessageTypeTest::eType>::create( + messageType_allowedEnumSubsetValues), + true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_CORRELATION_ID] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_VERSION] = + CObjectSchemaItem::SMember( + TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1), + TSchemaItemParameter<int>(2)), + true); + paramsMembersMap + [NsSmartDeviceLink::NsJSONHandler::strings::S_PROTOCOL_TYPE] = + CObjectSchemaItem::SMember(TNumberSchemaItem<int>::create(), true); std::map<std::string, CObjectSchemaItem::SMember> rootMembersMap; rootMembersMap[NsSmartDeviceLink::NsJSONHandler::strings::S_MSG_PARAMS] = @@ -535,8 +551,11 @@ TEST_F(SmartObjectConvertionTimeTest, test_array_convertion) { calculateConvertionTime(srcObj, dstObj); // Fourth iteration - printf("\n Array object [%d x %d x %d x %d].\n", arraySize, arraySize, - arraySize, arraySize); + printf("\n Array object [%d x %d x %d x %d].\n", + arraySize, + arraySize, + arraySize, + arraySize); innerObj = arrayObj; for (int i = 0; i < arraySize; i++) { arrayObj[i] = innerObj; @@ -552,8 +571,12 @@ TEST_F(SmartObjectConvertionTimeTest, test_array_convertion) { calculateConvertionTime(srcObj, dstObj); // Last iteration - printf("\n Array object [%d x %d x %d x %d x %d].\n", arraySize, arraySize, - arraySize, arraySize, arraySize); + printf("\n Array object [%d x %d x %d x %d x %d].\n", + arraySize, + arraySize, + arraySize, + arraySize, + arraySize); innerObj = arrayObj; for (int i = 0; i < arraySize; i++) { arrayObj[i] = innerObj; @@ -611,7 +634,6 @@ TEST_F(SmartObjectConvertionTimeTest, test_object_without_enum_convertion) { printf("\n Object without enum.\n"); calculateConvertionTime(srcObj, dstObj); } - } } } @@ -620,95 +642,144 @@ TEST_F(SmartObjectConvertionTimeTest, test_object_without_enum_convertion) { namespace NsSmartDeviceLink { namespace NsSmartObjects { -template<> -const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::enum_to_cstring_map_ = - EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::InitEnumToCStringMap(); - -template<> -const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::cstring_to_enum_map_ = - EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::InitCStringToEnumMap(); - -template<> +template <> +const EnumConversionHelper<test::components::SmartObjects:: + SmartObjectConvertionTimeTest::TestType::eType>:: + EnumToCStringMap EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::eType>::enum_to_cstring_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::eType>::InitEnumToCStringMap(); + +template <> +const EnumConversionHelper<test::components::SmartObjects:: + SmartObjectConvertionTimeTest::TestType::eType>:: + CStringToEnumMap EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::eType>::cstring_to_enum_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::eType>::InitCStringToEnumMap(); + +template <> const char* const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::cstring_values_[] = - { "APPLICATION_NOT_REGISTERED", "SUCCESS", "TOO_MANY_PENDING_REQUESTS", - "REJECTED", "INVALID_DATA", "OUT_OF_MEMORY", "ABORTED", - "USER_DISALLOWED", "GENERIC_ERROR", "DISALLOWED" }; - -template<> -const test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::eType>::enum_values_[] = - { - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::APPLICATION_NOT_REGISTERED, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::SUCCESS, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::TOO_MANY_PENDING_REQUESTS, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::REJECTED, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::INVALID_DATA, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::OUT_OF_MEMORY, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::ABORTED, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::USER_DISALLOWED, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::GENERIC_ERROR, - test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType::DISALLOWED }; - -template<> + test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType:: + eType>::cstring_values_[] = {"APPLICATION_NOT_REGISTERED", + "SUCCESS", + "TOO_MANY_PENDING_REQUESTS", + "REJECTED", + "INVALID_DATA", + "OUT_OF_MEMORY", + "ABORTED", + "USER_DISALLOWED", + "GENERIC_ERROR", + "DISALLOWED"}; + +template <> +const test::components::SmartObjects::SmartObjectConvertionTimeTest::TestType:: + eType EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::eType>::enum_values_[] = { + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::APPLICATION_NOT_REGISTERED, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::SUCCESS, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::TOO_MANY_PENDING_REQUESTS, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::REJECTED, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::INVALID_DATA, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::OUT_OF_MEMORY, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::ABORTED, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::USER_DISALLOWED, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::GENERIC_ERROR, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + TestType::DISALLOWED}; + +template <> const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::enum_to_cstring_map_ = + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::InitEnumToCStringMap(); + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::enum_to_cstring_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::InitEnumToCStringMap(); -template<> +template <> const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::cstring_to_enum_map_ = + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::InitCStringToEnumMap(); + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::cstring_to_enum_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::InitCStringToEnumMap(); -template<> +template <> const char* const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::cstring_values_[] = - { "RegisterAppInterface", "UnregisterAppInterface", "SetGlobalProperties" }; - -template<> -const test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::eType>::enum_values_[] = - { - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::RegisterAppInterface, - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::UnregisterAppInterface, - test::components::SmartObjects::SmartObjectConvertionTimeTest::FunctionIdTest::SetGlobalProperties }; - -template<> + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::cstring_values_[] = { + "RegisterAppInterface", "UnregisterAppInterface", "SetGlobalProperties"}; + +template <> +const test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::eType>::enum_values_[] = { + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::RegisterAppInterface, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::UnregisterAppInterface, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + FunctionIdTest::SetGlobalProperties}; + +template <> const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::enum_to_cstring_map_ = + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::EnumToCStringMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::InitEnumToCStringMap(); + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::enum_to_cstring_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::InitEnumToCStringMap(); -template<> +template <> const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::cstring_to_enum_map_ = + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::CStringToEnumMap EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::InitCStringToEnumMap(); + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::cstring_to_enum_map_ = + EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::InitCStringToEnumMap(); -template<> +template <> const char* const EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::cstring_values_[] = - { "request", "response", "notification" }; - -template<> -const test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType EnumConversionHelper< - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::eType>::enum_values_[] = - { - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::request, - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::response, - test::components::SmartObjects::SmartObjectConvertionTimeTest::MessageTypeTest::notification }; - + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::cstring_values_[] = { + "request", "response", "notification"}; + +template <> +const test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType EnumConversionHelper< + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::eType>::enum_values_[] = { + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::request, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::response, + test::components::SmartObjects::SmartObjectConvertionTimeTest:: + MessageTypeTest::notification}; } } diff --git a/src/components/smart_objects/test/SmartObjectDraft_test.cc b/src/components/smart_objects/test/SmartObjectDraft_test.cc index 85c97c2625..2932a68167 100644 --- a/src/components/smart_objects/test/SmartObjectDraft_test.cc +++ b/src/components/smart_objects/test/SmartObjectDraft_test.cc @@ -190,7 +190,7 @@ TEST(SmartObjectsDraftTest, test_helper_methods) { // ---- DOUBLE ---- // obj = 3.14; ASSERT_EQ(3.14, obj.asDouble()); - //TEST_COMPONENTS_SMART_OBJECTS_SMARTOBJECTDRAFTTEST_H_ + // TEST_COMPONENTS_SMART_OBJECTS_SMARTOBJECTDRAFTTEST_H_ // ---- CHAR ---- // obj = 'a'; ASSERT_EQ('a', obj.asChar()); @@ -358,7 +358,7 @@ TEST(SmartObjectsDraftTest, compare_map_type) { ASSERT_NE(other_value2, SmartObject()); } // TODO(Ezamakhov): add test for conversion string/int/double -}// namespace SmartObjectDraftTest +} // namespace SmartObjectDraftTest } // namespace SmartObjects } // namespace components } // namespace test diff --git a/src/components/smart_objects/test/SmartObjectStress_test.cc b/src/components/smart_objects/test/SmartObjectStress_test.cc index 4fb7b2efc0..da6e804e2b 100644 --- a/src/components/smart_objects/test/SmartObjectStress_test.cc +++ b/src/components/smart_objects/test/SmartObjectStress_test.cc @@ -59,11 +59,14 @@ class StressTestHelper : public ::testing::Test { std::string to_string(const double value) const { // Content is the same as in SmartObject::convert_double_to_string std::stringstream ss; - ss << std::fixed << std::setprecision(10) << value; //convert double to string w fixed notation, hi precision - std::string s = ss.str(); //output to std::string - s.erase(s.find_last_not_of('0') + 1, std::string::npos); //remove trailing 000s (123.1200 => 123.12, 123.000 => 123.) + ss << std::fixed << std::setprecision(10) + << value; // convert double to string w fixed notation, hi precision + std::string s = ss.str(); // output to std::string + s.erase(s.find_last_not_of('0') + 1, + std::string::npos); // remove trailing 000s (123.1200 => 123.12, + // 123.000 => 123.) if (s[s.size() - 1] == '.') { - s.erase(s.end() - 1); //remove dangling decimal (123. => 123) + s.erase(s.end() - 1); // remove dangling decimal (123. => 123) } return s; } @@ -82,8 +85,8 @@ class StressTestHelper : public ::testing::Test { typedef std::map<std::string, std::string> VerificationMap; VerificationMap mVerifyMap; - std::vector<std::string> split(const std::string &s, char delim) const { - std::vector < std::string > elems; + std::vector<std::string> split(const std::string& s, char delim) const { + std::vector<std::string> elems; std::stringstream ss(s); std::string item; @@ -94,62 +97,63 @@ class StressTestHelper : public ::testing::Test { return elems; } - std::string generate_key(const char *pPrefix, const int index) const { + std::string generate_key(const char* pPrefix, const int index) const { char buff[32]; sprintf(buff, "%s%d", pPrefix, index); return std::string(buff); } - void makeRandomObject(SmartObject &obj, const int size, + void makeRandomObject(SmartObject& obj, + const int size, std::string key_path) { int type_id = rand() % 8; switch (type_id) { - case 0: // int + case 0: // int { int iVal = rand(); obj = iVal; mVerifyMap[key_path] = to_string(iVal); - //std::cout << "Created int, value: " << iVal << std::endl; + // std::cout << "Created int, value: " << iVal << std::endl; break; } - case 1: // bool + case 1: // bool { bool bVal = static_cast<bool>(rand() % 2); obj = bVal; mVerifyMap[key_path] = to_string(bVal); - //std::cout << "Created bool, value: " << to_string(bVal) << std::endl; + // std::cout << "Created bool, value: " << to_string(bVal) << std::endl; break; } - case 2: // double + case 2: // double { double dVal = 100.0 / (rand() % 200); obj = dVal; mVerifyMap[key_path] = to_string(dVal); - //std::cout << "Created double, value: " << dVal << std::endl; + // std::cout << "Created double, value: " << dVal << std::endl; break; } - case 3: // char + case 3: // char { char cVal = get_random_char(); obj = cVal; mVerifyMap[key_path] = to_string(cVal); - //std::cout << "Created char, value: " << cVal << std::endl; + // std::cout << "Created char, value: " << cVal << std::endl; break; } - case 4: // string + case 4: // string { std::string strVal(rand() % 200, get_random_char()); - obj = strVal; // string with random char filled random size + obj = strVal; // string with random char filled random size mVerifyMap[key_path] = strVal; - //std::cout << "Created string, value: " << strVal << std::endl; + // std::cout << "Created string, value: " << strVal << std::endl; break; } - case 5: // map + case 5: // map if (size <= 0) break; - //std::cout << "Creating a map with size: " << size << std::endl; + // std::cout << "Creating a map with size: " << size << std::endl; mVerifyMap[key_path] = "map"; for (int i = 0; i < size; i++) { std::string key = generate_key("M", i); @@ -157,23 +161,25 @@ class StressTestHelper : public ::testing::Test { obj[key] = key; #else obj[key] = SmartObject(); - makeRandomObject(obj[key], size - 1, key_path + key + ' '); // recursion -#endif // MAP_WORKAROUND + makeRandomObject( + obj[key], size - 1, key_path + key + ' '); // recursion +#endif // MAP_WORKAROUND } break; - case 6: // array + case 6: // array if (size <= 0) break; - //std::cout << "Creating an array with size: " << size << std::endl; + // std::cout << "Creating an array with size: " << size << std::endl; mVerifyMap[key_path] = "array"; for (int i = 0; i < size; i++) { - obj[i] = SmartObject(); // just init it as an array - makeRandomObject(obj[i], size - 1, + obj[i] = SmartObject(); // just init it as an array + makeRandomObject(obj[i], + size - 1, key_path + generate_key("A", i) + ' '); // recursion } break; - case 7: // binary + case 7: // binary int dataSize = rand() % 200; char randomChar = get_random_char(); std::string strDataVal(dataSize, randomChar); @@ -183,37 +189,38 @@ class StressTestHelper : public ::testing::Test { NsSmartDeviceLink::NsSmartObjects::SmartBinary binaryVal(dataSize, randomChar); - obj = binaryVal; // string with binary data filled with random chars + obj = binaryVal; // string with binary data filled with random chars mVerifyMap[key_path] = strVal; - //std::cout << "Created string, value: " << strVal << std::endl; + // std::cout << "Created string, value: " << strVal << std::endl; break; } } - SmartObject get_object(SmartObject &rootObj, const std::string &path) const { - std::vector < std::string > obj_tokens; + SmartObject get_object(SmartObject& rootObj, const std::string& path) const { + std::vector<std::string> obj_tokens; SmartObject lastObj = rootObj; obj_tokens = split(path, ' '); for (size_t i = 0; i < obj_tokens.size(); i++) { - if (obj_tokens[i][0] == 'A') // array - { - int index = atoi(&(obj_tokens[i].c_str()[1])); // get integer skipping first char + if (obj_tokens[i][0] == 'A') // array + { + int index = atoi( + &(obj_tokens[i].c_str()[1])); // get integer skipping first char #ifdef COPY_SUB_OBJECTS_WORKAROUND - lastObj = SmartObject(lastObj[index]); + lastObj = SmartObject(lastObj[index]); #else - lastObj = lastObj[index]; // go to the child object + lastObj = lastObj[index]; // go to the child object #endif - } else if (obj_tokens[i][0] == 'M') // map - { + } else if (obj_tokens[i][0] == 'M') // map + { #ifdef COPY_SUB_OBJECTS_WORKAROUND lastObj = SmartObject(lastObj[obj_tokens[i]]); #else - lastObj = lastObj[obj_tokens[i]]; // go to the child object + lastObj = lastObj[obj_tokens[i]]; // go to the child object #endif } else { - //FAIL(); + // FAIL(); EXPECT_TRUE(false); } } @@ -222,11 +229,14 @@ class StressTestHelper : public ::testing::Test { }; /* - * The test creates the initial SmartObject and use it as an array for the next SmartObjects. + * The test creates the initial SmartObject and use it as an array for the next + * SmartObjects. * Each next SmartObject is randomly assigned to some type. - * If one of the object happens to be a container it fills it with SmartObject of random type. The amount of these + * If one of the object happens to be a container it fills it with SmartObject + * of random type. The amount of these * objects is the size of the parent container -1. - * The iteration continues until all nodes are simple SmartObjects (not arrays or maps) + * The iteration continues until all nodes are simple SmartObjects (not arrays + * or maps) */ TEST_F(StressTestHelper, StressTest) { SmartObject objects; @@ -242,7 +252,8 @@ TEST_F(StressTestHelper, StressTest) { } for (VerificationMap::const_iterator it = mVerifyMap.begin(); - it != mVerifyMap.end(); it++) { + it != mVerifyMap.end(); + it++) { std::string value(it->second); SmartObject obj = get_object(objects, it->first); @@ -264,8 +275,8 @@ TEST_F(StressTestHelper, StressTest) { ASSERT_EQ(NsSmartDeviceLink::NsSmartObjects::SmartType_Binary, obj.getType()); - NsSmartDeviceLink::NsSmartObjects::SmartBinary binaryData = obj - .asBinary(); + NsSmartDeviceLink::NsSmartObjects::SmartBinary binaryData = + obj.asBinary(); ASSERT_EQ(etalonData.size(), binaryData.size()); for (size_t i = 0; i < etalonData.size(); ++i) { @@ -280,25 +291,27 @@ TEST_F(StressTestHelper, StressTest) { } #ifdef NO_INCLUSIVE_MAPS - if (!value.compare("map")) - { + if (!value.compare("map")) { std::vector<std::string> path = split(it->first, ' '); - std::string map_value = path[path.size()-1]; + std::string map_value = path[path.size() - 1]; ASSERT_EQ(map_value, static_cast<std::string>(obj)); continue; } #endif if (value.compare("map") && value.compare("array")) { - //std::cout << "Verification key: " << it->first << " Value: " << value << std::endl; - //std::cout << "Object Value: " << static_cast<std::string>(obj) << std::endl; + // std::cout << "Verification key: " << it->first << " Value: " << value + // << std::endl; + // std::cout << "Object Value: " << static_cast<std::string>(obj) << + // std::endl; if (!value.compare("true")) { ASSERT_TRUE(obj.asBool()); } else if (!value.compare("false")) { ASSERT_FALSE(obj.asBool()); } else { - ASSERT_EQ(value, obj.asString())<< "Object value is not correct. Object path: " << it->first; + ASSERT_EQ(value, obj.asString()) + << "Object value is not correct. Object path: " << it->first; } } } @@ -314,22 +327,22 @@ TEST_F(StressTestHelper, ExtraManualDebugTest) { obj[4] = true; obj[5] = 3.704; obj[6] = SmartObject(); - obj[6][0] = - std::string( - "ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"); + obj[6][0] = std::string( + "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt" + "ttttttttttttttttt"); obj[6][1] = 'K'; obj[6][2] = 0.735294; obj[6][3] = 'I'; obj[6][4] = SmartObject(); obj[6][4]["M0"] = 0.59432; - SmartObject & refObj = obj[6][4]; + SmartObject& refObj = obj[6][4]; refObj["M1"]["M0"]["M0"][0] = true; - // FIXME: Figure out why there's a trailing zero while converting from double to string + // FIXME: Figure out why there's a trailing zero while converting from double + // to string ASSERT_EQ("0.59432", get_object(obj, "A6 A4 M0").asString()); ASSERT_TRUE(get_object(obj, "A6 A4 M1 M0 M0 A0").asBool()); } - } } } diff --git a/src/components/smart_objects/test/SmartObjectUnit_test.cc b/src/components/smart_objects/test/SmartObjectUnit_test.cc index d1d790f9d4..cd5cd0c131 100644 --- a/src/components/smart_objects/test/SmartObjectUnit_test.cc +++ b/src/components/smart_objects/test/SmartObjectUnit_test.cc @@ -42,7 +42,6 @@ using namespace NsSmartDeviceLink::NsSmartObjects; class TestHelper : public ::testing::Test { protected: - void makeMapObject(SmartObject& obj, const int size) const { char i_key[8], j_key[8], k_key[8], value[8]; @@ -68,51 +67,54 @@ class TestHelper : public ::testing::Test { sprintf(k_key, "k_%d", k); sprintf(value, "%d", i + j + k); - ASSERT_EQ(std::string(value), obj[i_key][j_key][k_key].asString())<< - "Wrong value in the map at [" << i_key << "][" << j_key << "][" << k_key << "]"; + ASSERT_EQ(std::string(value), obj[i_key][j_key][k_key].asString()) + << "Wrong value in the map at [" << i_key << "][" << j_key << "][" + << k_key << "]"; } - } + } - void makeArrayObject(SmartObject& obj, int size, int base = 0) { - for (int i = 0; i < size; i++) - for (int j = 0; j < size; j++) + void makeArrayObject(SmartObject& obj, int size, int base = 0) { + for (int i = 0; i < size; i++) + for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) { obj[i][j][k] = base + i + j + k; } - } + } - void checkArrayObject(SmartObject& obj, int size, int base = 0) { - for (int i = 0; i < size; i++) - for (int j = 0; j < size; j++) + void checkArrayObject(SmartObject& obj, int size, int base = 0) { + for (int i = 0; i < size; i++) + for (int j = 0; j < size; j++) for (int k = 0; k < size; k++) { - ASSERT_EQ(base + i + j + k, obj[i][j][k].asInt()) << - "Wrong value in the array at index: " << i << ", " << j << ", " << k; + ASSERT_EQ(base + i + j + k, obj[i][j][k].asInt()) + << "Wrong value in the array at index: " << i << ", " << j << ", " + << k; } - } - }; + } +}; - /* - * Tests different types sequentially - */ +/* + * Tests different types sequentially + */ TEST(BasicMixtedTypes, test_SmartObjectUnitTest) { SmartObject obj; - ASSERT_EQ(invalid_int_value, obj.asInt())<< "Wrong cast to int just after construction"; + ASSERT_EQ(invalid_int_value, obj.asInt()) + << "Wrong cast to int just after construction"; obj = 10; - ASSERT_EQ(10, obj.asInt())<< "Wrong cast to int"; + ASSERT_EQ(10, obj.asInt()) << "Wrong cast to int"; obj = "some string"; - ASSERT_EQ("some string", obj.asString())<< "Wrong cast to std::string"; + ASSERT_EQ("some string", obj.asString()) << "Wrong cast to std::string"; obj = false; - ASSERT_FALSE(obj.asBool())<< "Wrong cast to bool"; + ASSERT_FALSE(obj.asBool()) << "Wrong cast to bool"; obj = 'A'; - ASSERT_EQ('A', obj.asChar())<< "Wrong cast to char"; + ASSERT_EQ('A', obj.asChar()) << "Wrong cast to char"; obj = 3.14; - ASSERT_EQ(3.14, obj.asDouble())<< "Wrong cast to double"; + ASSERT_EQ(3.14, obj.asDouble()) << "Wrong cast to double"; // array test for (int i = 0; i < 100; i++) { @@ -132,23 +134,23 @@ TEST(BasicMixtedTypes, test_SmartObjectUnitTest) { TEST_F(TestHelper, BasicArrayTest) { SmartObject obj; - ASSERT_EQ(invalid_int_value, - obj[0].asInt())<< "Wrong value at accessing non existent index"; - ASSERT_EQ(invalid_int_value, - obj["non_existent_key"].asInt())<< "Wrong value at accessing non existent key"; + ASSERT_EQ(invalid_int_value, obj[0].asInt()) + << "Wrong value at accessing non existent index"; + ASSERT_EQ(invalid_int_value, obj["non_existent_key"].asInt()) + << "Wrong value at accessing non existent key"; obj[0] = 1; - ASSERT_EQ(1, obj[0].asInt())<< "Wrong value at 0 index"; + ASSERT_EQ(1, obj[0].asInt()) << "Wrong value at 0 index"; obj[1] = 2; - ASSERT_EQ(2, obj[1].asInt())<< "Wrong value at 1 index"; + ASSERT_EQ(2, obj[1].asInt()) << "Wrong value at 1 index"; obj[0][0] = 3; obj[1][0] = 1; - ASSERT_EQ(3, obj[0][0].asInt())<< "Wrong value at index 0, 0"; + ASSERT_EQ(3, obj[0][0].asInt()) << "Wrong value at index 0, 0"; obj[0][0][0] = 4; obj[0][1][0] = 5; - ASSERT_EQ(4, obj[0][0][0].asInt())<< "Wrong value at index 0, 0, 0"; + ASSERT_EQ(4, obj[0][0][0].asInt()) << "Wrong value at index 0, 0, 0"; const int size = 32; makeArrayObject(obj, size); @@ -159,16 +161,17 @@ TEST_F(TestHelper, BasicArrayTest) { TEST_F(TestHelper, BasicMapTest) { SmartObject obj; - ASSERT_EQ(invalid_int_value, - obj["non_existent_key"].asInt())<< "Wrong value for non existent key"; + ASSERT_EQ(invalid_int_value, obj["non_existent_key"].asInt()) + << "Wrong value for non existent key"; obj["abc"]["def"]["ghi"] = 5; - ASSERT_EQ(5, obj["abc"]["def"]["ghi"].asInt())<< "Wrong value for triple map"; + ASSERT_EQ(5, obj["abc"]["def"]["ghi"].asInt()) + << "Wrong value for triple map"; obj["123"]["456"]["789"] = "string test"; - ASSERT_EQ("string test", obj["123"]["456"]["789"].asString())<< - "Wrong value for triple map"; + ASSERT_EQ("string test", obj["123"]["456"]["789"].asString()) + << "Wrong value for triple map"; const int size = 32; @@ -179,33 +182,36 @@ TEST_F(TestHelper, BasicMapTest) { TEST(ConstructorsTest, test_SmartObjectUnitTest) { SmartObject objInt(5678); - ASSERT_EQ(5678, objInt.asInt())<< "Wrong constructor with int param"; + ASSERT_EQ(5678, objInt.asInt()) << "Wrong constructor with int param"; const char* c_str = "test c_string"; SmartObject obj_c_str(c_str); - ASSERT_EQ("test c_string", obj_c_str.asString())<< "Wrong constructor with c_str param"; + ASSERT_EQ("test c_string", obj_c_str.asString()) + << "Wrong constructor with c_str param"; SmartObject obj_std_str(std::string("test std_string")); ASSERT_EQ(std::string("test std_string"), obj_std_str.asString()); SmartObject obj_char('R'); - ASSERT_EQ('R', obj_char.asChar())<< "Wrong constructor with char param"; + ASSERT_EQ('R', obj_char.asChar()) << "Wrong constructor with char param"; SmartObject obj_double(-0.4321); - ASSERT_EQ(-0.4321, obj_double.asDouble())<< "Wrong constructor with double param"; + ASSERT_EQ(-0.4321, obj_double.asDouble()) + << "Wrong constructor with double param"; SmartObject obj_bool(true); - ASSERT_TRUE(obj_bool.asBool())<< "Wrong constructor with bool param"; + ASSERT_TRUE(obj_bool.asBool()) << "Wrong constructor with bool param"; SmartObject src_obj; - src_obj["key_1"] = "value_1"; // FIXME: String assignment crashes test + src_obj["key_1"] = "value_1"; // FIXME: String assignment crashes test src_obj["key_2"]["sub_key_1"] = "value_2"; SmartObject dst_obj(src_obj); - ASSERT_EQ("value_1", dst_obj["key_1"].asString())<< "Copy constructor is not correct"; - ASSERT_EQ("value_2", dst_obj["key_2"]["sub_key_1"].asString())<< - "Copy constructor is not correct"; + ASSERT_EQ("value_1", dst_obj["key_1"].asString()) + << "Copy constructor is not correct"; + ASSERT_EQ("value_2", dst_obj["key_2"]["sub_key_1"].asString()) + << "Copy constructor is not correct"; } TEST(FromString, TypeConversion) { @@ -379,7 +385,7 @@ TEST(FromDouble, TypeConversion) { SmartObject obj; obj = 0.1; - ASSERT_EQ("0.1", obj.asString()); // FIXME: result 0.100000 + ASSERT_EQ("0.1", obj.asString()); // FIXME: result 0.100000 ASSERT_EQ(0, obj.asInt()); ASSERT_EQ(invalid_char_value, obj.asChar()); ASSERT_EQ(0.1, obj.asDouble()); @@ -438,23 +444,23 @@ TEST_F(TestHelper, AssignmentTest) { objSrc = -6; objDst = 7; objDst = objSrc; - ASSERT_EQ(-6, objDst.asInt())<< "Wrong assignment for int object"; + ASSERT_EQ(-6, objDst.asInt()) << "Wrong assignment for int object"; objSrc = "Some test string"; objDst = "Other string"; objDst = objSrc; - ASSERT_EQ("Some test string", - objDst.asString())<< "Wrong assignment for std::string object"; + ASSERT_EQ("Some test string", objDst.asString()) + << "Wrong assignment for std::string object"; objSrc = 0.5; objDst = 4; objDst = objSrc; - ASSERT_EQ(0.5, objDst.asDouble())<< "Wrong assignment for double object"; + ASSERT_EQ(0.5, objDst.asDouble()) << "Wrong assignment for double object"; objSrc = true; objDst = false; objDst = objSrc; - ASSERT_TRUE(objDst.asBool())<< "Wrong assignment for bool object"; + ASSERT_TRUE(objDst.asBool()) << "Wrong assignment for bool object"; const int size = 32; makeMapObject(objSrc, size); @@ -471,30 +477,30 @@ TEST_F(TestHelper, AssignmentTest) { TEST_F(TestHelper, SizeTest) { SmartObject obj; - ASSERT_EQ(0u, obj.length())<< "Wrong size for the uninitialized object"; + ASSERT_EQ(0u, obj.length()) << "Wrong size for the uninitialized object"; obj = 1234; - ASSERT_EQ(0u, obj.length())<< "Wrong size for the int object"; + ASSERT_EQ(0u, obj.length()) << "Wrong size for the int object"; std::string str("Some test very long string"); obj = str; - ASSERT_EQ(str.size(), obj.length())<< - "The size of the object containing string is not correct"; + ASSERT_EQ(str.size(), obj.length()) + << "The size of the object containing string is not correct"; obj = true; - ASSERT_EQ(0u, obj.length())<< "Wrong size of the true"; + ASSERT_EQ(0u, obj.length()) << "Wrong size of the true"; obj = 0.1234; - ASSERT_EQ(0u, obj.length())<< "Wrong size of the double"; + ASSERT_EQ(0u, obj.length()) << "Wrong size of the double"; obj = 'A'; - ASSERT_EQ(0u, obj.length())<< "Wrong size of the char"; + ASSERT_EQ(0u, obj.length()) << "Wrong size of the char"; makeMapObject(obj, 12); - ASSERT_EQ(12u, obj.length())<< "Wrong size of the object containing map"; + ASSERT_EQ(12u, obj.length()) << "Wrong size of the object containing map"; makeArrayObject(obj, 21); - ASSERT_EQ(21u, obj.length())<< "Wrong size of the object containing array"; + ASSERT_EQ(21u, obj.length()) << "Wrong size of the object containing array"; } TEST(CopyObjectsTest, SmartObjectTest) { @@ -537,7 +543,8 @@ TEST(MapEraseTest, SmartObjectTest) { ASSERT_EQ(2u, srcObj.length()); ASSERT_EQ(-1, srcObj["two"].asInt()); - // The element "two" was accessed in the previous line so the element has been created + // The element "two" was accessed in the previous line so the element has been + // created ASSERT_EQ(3u, srcObj.length()); srcObj["two"] = 2; @@ -574,11 +581,11 @@ TEST(MapEraseTest, SmartObjectTest) { ASSERT_TRUE(srcObj["one"].erase("two")); ASSERT_EQ(0u, srcObj["one"].length()); - srcObj = 1234; // not a map + srcObj = 1234; // not a map ASSERT_FALSE(srcObj.erase("one")); } // TODO: Add a test to check accessing an array at strange indexes. -}// namespace SmartObjectUnitTest +} // namespace SmartObjectUnitTest } // namespace SmartObjects } // namespace components } // namespace test diff --git a/src/components/smart_objects/test/StringSchemaItem_test.cc b/src/components/smart_objects/test/StringSchemaItem_test.cc index 5fe179a7e1..c5c2b4dee0 100644 --- a/src/components/smart_objects/test/StringSchemaItem_test.cc +++ b/src/components/smart_objects/test/StringSchemaItem_test.cc @@ -45,16 +45,18 @@ namespace SchemaItem { /** * Test StringSchemaItem no default value * - * Create SchemaItem without default value. Method setDefaultValue should always return false + * Create SchemaItem without default value. Method setDefaultValue should always + *return false * and leave SmartObject in previous state. **/ TEST(test_no_default_value, test_StringSchemaItemTest) { using namespace NsSmartDeviceLink::NsSmartObjects; SmartObject obj; - ISchemaItemPtr item = CStringSchemaItem::create(); // No default value, no max length + ISchemaItemPtr item = + CStringSchemaItem::create(); // No default value, no max length - //Object - valid string + // Object - valid string obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); @@ -64,7 +66,7 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { EXPECT_FALSE(resDefault); EXPECT_EQ(std::string("New valid string"), obj.asString()); - //Obj - bool + // Obj - bool obj = true; resultType = item->validate(obj); @@ -73,7 +75,7 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { EXPECT_FALSE(resDefault); EXPECT_TRUE(obj.asBool()); - //Object - number + // Object - number obj = 3.1415926; resultType = item->validate(obj); @@ -89,19 +91,23 @@ TEST(test_no_default_value, test_StringSchemaItemTest) { /** * Test StringSchemaItem with default value * - * Create SchemaItem with default value. Method setDefaultValue should return true, + * Create SchemaItem with default value. Method setDefaultValue should return + *true, * String SmartObject should contain default value. - * Not string SmartObject should converted to StringObject and setted up by the default value. + * Not string SmartObject should converted to StringObject and setted up by the + *default value. **/ TEST(test_item_with_default_value, test_StringSchemaItemTest) { using namespace NsSmartDeviceLink::NsSmartObjects; SmartObject obj; ISchemaItemPtr item = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(), TSchemaItemParameter<size_t>(), - TSchemaItemParameter<std::string>("Default string")); // Default value, no max length + TSchemaItemParameter<size_t>(), + TSchemaItemParameter<size_t>(), + TSchemaItemParameter<std::string>( + "Default string")); // Default value, no max length - //Object - valid string + // Object - valid string obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); @@ -111,7 +117,7 @@ TEST(test_item_with_default_value, test_StringSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - //Obj - bool + // Obj - bool obj = true; resultType = item->validate(obj); @@ -120,7 +126,7 @@ TEST(test_item_with_default_value, test_StringSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - //Object - number + // Object - number obj = 3.1415926; resultType = item->validate(obj); @@ -141,10 +147,11 @@ TEST(test_item_with_max_length, test_StringSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(25), + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(25), TSchemaItemParameter<std::string>("Default string")); - //Object - valid string + // Object - valid string obj = "New valid string"; ASSERT_EQ(std::string("New valid string"), obj.asString()); @@ -154,7 +161,7 @@ TEST(test_item_with_max_length, test_StringSchemaItemTest) { EXPECT_TRUE(resDefault); EXPECT_EQ(std::string("Default string"), obj.asString()); - //Object - too long string + // Object - too long string obj = "New very very loooooong string"; ASSERT_EQ(std::string("New very very loooooong string"), obj.asString()); @@ -173,7 +180,8 @@ TEST(test_map_validate, test_StringSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(25), + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(25), TSchemaItemParameter<std::string>("Default string")); obj["str"] = "New valid string"; @@ -233,7 +241,8 @@ TEST(test_array_validate, test_StringSchemaItemTest) { SmartObject obj; ISchemaItemPtr item = CStringSchemaItem::create( - TSchemaItemParameter<size_t>(0), TSchemaItemParameter<size_t>(25), + TSchemaItemParameter<size_t>(0), + TSchemaItemParameter<size_t>(25), TSchemaItemParameter<std::string>("Default string")); obj[0] = "New valid string"; @@ -267,7 +276,7 @@ TEST(test_array_validate, test_StringSchemaItemTest) { resDefault = item->setDefaultValue(obj[4]); EXPECT_TRUE(resDefault); - //Set default value for non-initialized element + // Set default value for non-initialized element resDefault = item->setDefaultValue(obj[5]); EXPECT_TRUE(resDefault); diff --git a/src/components/smart_objects/test/map_performance_test.cc b/src/components/smart_objects/test/map_performance_test.cc index e7e9ccffac..35863da420 100644 --- a/src/components/smart_objects/test/map_performance_test.cc +++ b/src/components/smart_objects/test/map_performance_test.cc @@ -41,7 +41,7 @@ typedef std::vector<std::string> Value; typedef std::map<Key, Value> Map; namespace { -void MakeMapObject(Map &obj, const int size) { +void MakeMapObject(Map& obj, const int size) { char i_key[8], j_key[8]; Value array; diff --git a/src/components/smart_objects/test/smart_object_performance_test.cc b/src/components/smart_objects/test/smart_object_performance_test.cc index 72b6c1fa6d..e699da54fe 100644 --- a/src/components/smart_objects/test/smart_object_performance_test.cc +++ b/src/components/smart_objects/test/smart_object_performance_test.cc @@ -40,7 +40,7 @@ using namespace NsSmartDeviceLink::NsSmartObjects; namespace { -void MakeMapObject(SmartObject &obj, const int size) { +void MakeMapObject(SmartObject& obj, const int size) { char i_key[8], j_key[8]; SmartObject array; @@ -60,7 +60,7 @@ TEST(SmartObjectPerformanceTest, SmartObjectPerformance) { SmartObject object; MakeMapObject(object, 100); - std::set < std::string > keys = object.enumerate(); + std::set<std::string> keys = object.enumerate(); for (std::set<std::string>::iterator i = keys.begin(); i != keys.end(); ++i) { printf("%s - ", i->c_str()); SmartArray* array = object[*i].asArray(); diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_metric_wrapper.h b/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_metric_wrapper.h index df568e7ebd..d35de52e3b 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_metric_wrapper.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_metric_wrapper.h @@ -38,17 +38,15 @@ #include "telemetry_monitor/metric_wrapper.h" #include "telemetry_monitor/application_manager_observer.h" - namespace telemetry_monitor { class ApplicationManagerObserver; -class ApplicationManagerMetricWrapper: public MetricWrapper { - - public: - utils::SharedPtr<application_manager::AMTelemetryObserver::MessageMetric> message_metric; - virtual Json::Value GetJsonMetric(); +class ApplicationManagerMetricWrapper : public MetricWrapper { + public: + utils::SharedPtr<application_manager::AMTelemetryObserver::MessageMetric> + message_metric; + virtual Json::Value GetJsonMetric(); }; - } #endif // SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_APPLICATION_MANAGER_MECTRIC_WRAPPER_H_ diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_observer.h b/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_observer.h index 4f509075b4..ecb9c8002a 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_observer.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/application_manager_observer.h @@ -37,19 +37,18 @@ #include "application_manager/telemetry_observer.h" #include "telemetry_monitor/application_manager_metric_wrapper.h" - namespace telemetry_monitor { class TelemetryMonitor; -class ApplicationManagerObserver: public application_manager::AMTelemetryObserver { - public: - explicit ApplicationManagerObserver(TelemetryMonitor* telemetry_monitor); - virtual void OnMessage(utils::SharedPtr<MessageMetric> metric); +class ApplicationManagerObserver + : public application_manager::AMTelemetryObserver { + public: + explicit ApplicationManagerObserver(TelemetryMonitor* telemetry_monitor); + virtual void OnMessage(utils::SharedPtr<MessageMetric> metric); - private: - TelemetryMonitor* telemetry_monitor_; + private: + TelemetryMonitor* telemetry_monitor_; }; - } #endif // SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_APPLICATION_MANAGER_OBSERVER_H_ diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/json_keys.h b/src/components/telemetry_monitor/include/telemetry_monitor/json_keys.h index f5aba07721..899c76b2e8 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/json_keys.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/json_keys.h @@ -35,18 +35,18 @@ #define SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_JSON_KEYS_H_ namespace telemetry_monitor { - namespace strings { - const char logger[] = "logger"; - const char begin[] = "begin"; - const char end[] = "end"; - const char data_size[] = "data_size"; - const char message_id[] = "message_id"; - const char session_id[] = "session_id"; - const char correlation_id[] = "correlation_id"; - const char connection_key[] = "connection_key"; - const char stime[] = "stime"; - const char utime[] = "utime"; - const char memory[] = "RAM"; - } +namespace strings { +const char logger[] = "logger"; +const char begin[] = "begin"; +const char end[] = "end"; +const char data_size[] = "data_size"; +const char message_id[] = "message_id"; +const char session_id[] = "session_id"; +const char correlation_id[] = "correlation_id"; +const char connection_key[] = "connection_key"; +const char stime[] = "stime"; +const char utime[] = "utime"; +const char memory[] = "RAM"; +} } #endif // SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_JSON_KEYS_H_ diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/metric_wrapper.h b/src/components/telemetry_monitor/include/telemetry_monitor/metric_wrapper.h index 994065e0e3..b4d7ed12cb 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/metric_wrapper.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/metric_wrapper.h @@ -41,19 +41,20 @@ namespace telemetry_monitor { class MetricWrapper { utils::ResourseUsage* resources; - public: - MetricWrapper(); - /* - * @brief get current cpu and memory info and store it as member - */ - bool grabResources(); - virtual std::string GetStyledString(); - virtual Json::Value GetJsonMetric(); - virtual ~MetricWrapper(); - protected: - void Clear(); -}; + public: + MetricWrapper(); + /* + * @brief get current cpu and memory info and store it as member + */ + bool grabResources(); + virtual std::string GetStyledString(); + virtual Json::Value GetJsonMetric(); + virtual ~MetricWrapper(); + + protected: + void Clear(); +}; } // namespace telemetry_monitor #endif // SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_MECTRIC_WRAPPER_H_ diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_metric_wrapper.h b/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_metric_wrapper.h index b3485e6942..bc4e4c8e53 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_metric_wrapper.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_metric_wrapper.h @@ -40,11 +40,11 @@ namespace telemetry_monitor { -class ProtocolHandlerMecticWrapper: public MetricWrapper { - - public: - utils::SharedPtr<protocol_handler::PHTelemetryObserver::MessageMetric> message_metric; - virtual Json::Value GetJsonMetric(); +class ProtocolHandlerMecticWrapper : public MetricWrapper { + public: + utils::SharedPtr<protocol_handler::PHTelemetryObserver::MessageMetric> + message_metric; + virtual Json::Value GetJsonMetric(); }; } // namespace telemetry_monitor #endif // SRC_COMPONENTS_TELEMETRY_MONITOR_INCLUDE_TELEMETRY_MONITOR_PROTOCOL_HANDLER_MECTRIC_WRAPPER_H_ diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_observer.h b/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_observer.h index c9f6a7f07f..69e5658382 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_observer.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/protocol_handler_observer.h @@ -40,11 +40,12 @@ namespace telemetry_monitor { class TelemetryMonitor; -class ProtocolHandlerObserver: public protocol_handler::PHTelemetryObserver { +class ProtocolHandlerObserver : public protocol_handler::PHTelemetryObserver { public: explicit ProtocolHandlerObserver(TelemetryMonitor* telemetry_monitor); - virtual void StartMessageProcess(uint32_t message_id, const TimevalStruct& start_time); + virtual void StartMessageProcess(uint32_t message_id, + const TimevalStruct& start_time); virtual void EndMessageProcess(utils::SharedPtr<MessageMetric> m); diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h b/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h index 316f687b46..49895de8d3 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/telemetry_monitor.h @@ -60,11 +60,12 @@ class Streamer : public threads::ThreadDelegate { virtual void PushMessage(utils::SharedPtr<MetricWrapper> metric); volatile bool is_client_connected_; + private: void Start(); void Stop(); bool IsReady() const; - bool Send(const std::string &msg); + bool Send(const std::string& msg); void ShutDownAndCloseSocket(int32_t socket_fd); TelemetryMonitor* const kserver_; int32_t server_socket_fd_; @@ -78,10 +79,12 @@ class TelemetryMonitor { public: TelemetryMonitor(const std::string& server_address, uint16_t port); virtual ~TelemetryMonitor(); - virtual void Init( - TelemetryObservable<protocol_handler::PHTelemetryObserver>* protocol_handler, - TelemetryObservable<application_manager::AMTelemetryObserver>* app_manager, - TelemetryObservable<transport_manager::TMTelemetryObserver>* transport_manager); + virtual void Init(TelemetryObservable<protocol_handler::PHTelemetryObserver>* + protocol_handler, + TelemetryObservable< + application_manager::AMTelemetryObserver>* app_manager, + TelemetryObservable<transport_manager::TMTelemetryObserver>* + transport_manager); virtual void Stop(); virtual void Start(); virtual void SendMetric(utils::SharedPtr<MetricWrapper> metric); diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_metric_wrapper.h b/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_metric_wrapper.h index 8057402f11..9cb158fa98 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_metric_wrapper.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_metric_wrapper.h @@ -39,9 +39,10 @@ namespace telemetry_monitor { -class TransportManagerMecticWrapper: public MetricWrapper { +class TransportManagerMecticWrapper : public MetricWrapper { public: - utils::SharedPtr<transport_manager::TMTelemetryObserver::MessageMetric> message_metric; + utils::SharedPtr<transport_manager::TMTelemetryObserver::MessageMetric> + message_metric; virtual Json::Value GetJsonMetric(); }; } // namespace telemetry_monitor diff --git a/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_observer.h b/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_observer.h index 9390ecd209..bff5834586 100644 --- a/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_observer.h +++ b/src/components/telemetry_monitor/include/telemetry_monitor/transport_manager_observer.h @@ -41,11 +41,12 @@ namespace telemetry_monitor { class TelemetryMonitor; -class TransportManagerObserver: public transport_manager::TMTelemetryObserver { +class TransportManagerObserver : public transport_manager::TMTelemetryObserver { public: explicit TransportManagerObserver(TelemetryMonitor* telemetry_monitor); virtual void StartRawMsg(const protocol_handler::RawMessage* ptr); virtual void StopRawMsg(const protocol_handler::RawMessage* ptr); + private: TelemetryMonitor* telemetry_monitor_; std::map<const protocol_handler::RawMessage*, TimevalStruct> time_starts; diff --git a/src/components/telemetry_monitor/src/application_manager_observer.cc b/src/components/telemetry_monitor/src/application_manager_observer.cc index e3de439b96..cb390eddeb 100644 --- a/src/components/telemetry_monitor/src/application_manager_observer.cc +++ b/src/components/telemetry_monitor/src/application_manager_observer.cc @@ -36,11 +36,12 @@ namespace telemetry_monitor { -ApplicationManagerObserver::ApplicationManagerObserver(TelemetryMonitor* telemetry_monitor): - telemetry_monitor_(telemetry_monitor) { -} +ApplicationManagerObserver::ApplicationManagerObserver( + TelemetryMonitor* telemetry_monitor) + : telemetry_monitor_(telemetry_monitor) {} -void ApplicationManagerObserver::OnMessage(utils::SharedPtr<MessageMetric> metric) { +void ApplicationManagerObserver::OnMessage( + utils::SharedPtr<MessageMetric> metric) { ApplicationManagerMetricWrapper* m = new ApplicationManagerMetricWrapper(); m->message_metric = metric; m->grabResources(); diff --git a/src/components/telemetry_monitor/src/metric_wrapper.cc b/src/components/telemetry_monitor/src/metric_wrapper.cc index 2803921501..937a705ef7 100644 --- a/src/components/telemetry_monitor/src/metric_wrapper.cc +++ b/src/components/telemetry_monitor/src/metric_wrapper.cc @@ -35,9 +35,7 @@ namespace telemetry_monitor { - MetricWrapper::MetricWrapper(): - resources(NULL) { - } +MetricWrapper::MetricWrapper() : resources(NULL) {} bool MetricWrapper::grabResources() { Clear(); @@ -74,5 +72,4 @@ void MetricWrapper::Clear() { MetricWrapper::~MetricWrapper() { Clear(); } - } diff --git a/src/components/telemetry_monitor/src/protocol_handler_observer.cc b/src/components/telemetry_monitor/src/protocol_handler_observer.cc index 69f4564fc1..2244cb2259 100644 --- a/src/components/telemetry_monitor/src/protocol_handler_observer.cc +++ b/src/components/telemetry_monitor/src/protocol_handler_observer.cc @@ -39,26 +39,29 @@ namespace telemetry_monitor { CREATE_LOGGERPTR_GLOBAL(logger_, "TelemetryMonitor") -ProtocolHandlerObserver::ProtocolHandlerObserver(TelemetryMonitor *telemetry_monitor): - telemetry_monitor_(telemetry_monitor) { -} +ProtocolHandlerObserver::ProtocolHandlerObserver( + TelemetryMonitor* telemetry_monitor) + : telemetry_monitor_(telemetry_monitor) {} -void ProtocolHandlerObserver::StartMessageProcess(uint32_t message_id, - const TimevalStruct &start_time) { +void ProtocolHandlerObserver::StartMessageProcess( + uint32_t message_id, const TimevalStruct& start_time) { if (message_id == 0) { return; } if (time_starts.find(message_id) != time_starts.end()) { - LOG4CXX_DEBUG(logger_, "Already waiting for stop processing for Message ID: " - << message_id); + LOG4CXX_DEBUG( + logger_, + "Already waiting for stop processing for Message ID: " << message_id); return; } time_starts[message_id] = start_time; } -void ProtocolHandlerObserver::EndMessageProcess(utils::SharedPtr<MessageMetric> m) { +void ProtocolHandlerObserver::EndMessageProcess( + utils::SharedPtr<MessageMetric> m) { uint32_t message_id = m->message_id; - std::map<uint32_t, TimevalStruct>::const_iterator it = time_starts.find(message_id); + std::map<uint32_t, TimevalStruct>::const_iterator it = + time_starts.find(message_id); if (it == time_starts.end()) { LOG4CXX_WARN(logger_, "Cant find start time for message" << message_id); return; diff --git a/src/components/telemetry_monitor/src/telemetry_monitor.cc b/src/components/telemetry_monitor/src/telemetry_monitor.cc index 7a697cb309..759b843961 100644 --- a/src/components/telemetry_monitor/src/telemetry_monitor.cc +++ b/src/components/telemetry_monitor/src/telemetry_monitor.cc @@ -49,20 +49,18 @@ namespace telemetry_monitor { CREATE_LOGGERPTR_GLOBAL(logger_, "TelemetryMonitor") TelemetryMonitor::TelemetryMonitor(const std::string& server_address, - uint16_t port): - server_address_(server_address), - port_(port), - thread_(NULL), - streamer_(NULL), - app_observer(this), - tm_observer(this), - ph_observer(this) { - -} + uint16_t port) + : server_address_(server_address) + , port_(port) + , thread_(NULL) + , streamer_(NULL) + , app_observer(this) + , tm_observer(this) + , ph_observer(this) {} void TelemetryMonitor::Start() { streamer_ = new Streamer(this); - thread_ = threads::CreateThread("TelemetryMonitor", streamer_ ); + thread_ = threads::CreateThread("TelemetryMonitor", streamer_); } void TelemetryMonitor::set_streamer(Streamer* streamer) { @@ -78,7 +76,7 @@ void TelemetryMonitor::set_streamer(Streamer* streamer) { } } -const std::string& TelemetryMonitor::ip() const { +const std::string& TelemetryMonitor::ip() const { return server_address_; } @@ -93,8 +91,7 @@ TelemetryMonitor::~TelemetryMonitor() { void TelemetryMonitor::Init( TelemetryObservable<protocol_handler::PHTelemetryObserver>* protocol_handler, - TelemetryObservable<application_manager::AMTelemetryObserver>* - app_manager, + TelemetryObservable<application_manager::AMTelemetryObserver>* app_manager, TelemetryObservable<transport_manager::TMTelemetryObserver>* transport_manager) { LOG4CXX_AUTO_TRACE(logger_); @@ -119,18 +116,17 @@ void TelemetryMonitor::Stop() { } void TelemetryMonitor::SendMetric(utils::SharedPtr<MetricWrapper> metric) { - if ((NULL != streamer_ )&& streamer_->is_client_connected_) { + if ((NULL != streamer_) && streamer_->is_client_connected_) { streamer_->PushMessage(metric); } } Streamer::Streamer(TelemetryMonitor* const server) - : is_client_connected_(false), - kserver_(server), - server_socket_fd_(0), - client_socket_fd_(0), - stop_flag_(false) { -} + : is_client_connected_(false) + , kserver_(server) + , server_socket_fd_(0) + , client_socket_fd_(0) + , stop_flag_(false) {} Streamer::~Streamer() { Stop(); @@ -188,13 +184,16 @@ void Streamer::Start() { } int32_t optval = 1; - if (-1 == setsockopt(server_socket_fd_, SOL_SOCKET, SO_REUSEADDR, - &optval, sizeof optval)) { + if (-1 == setsockopt(server_socket_fd_, + SOL_SOCKET, + SO_REUSEADDR, + &optval, + sizeof optval)) { LOG4CXX_ERROR(logger_, "Unable to set sockopt"); return; } - sockaddr_in serv_addr_ = { 0 }; + sockaddr_in serv_addr_ = {0}; serv_addr_.sin_addr.s_addr = inet_addr(kserver_->ip().c_str()); serv_addr_.sin_family = AF_INET; serv_addr_.sin_port = htons(kserver_->port()); @@ -202,19 +201,20 @@ void Streamer::Start() { if (-1 == bind(server_socket_fd_, reinterpret_cast<struct sockaddr*>(&serv_addr_), sizeof(serv_addr_))) { - LOG4CXX_ERROR(logger_, "Unable to bind server " - << kserver_->ip().c_str() << ':' << kserver_->port()); + LOG4CXX_ERROR(logger_, + "Unable to bind server " << kserver_->ip().c_str() << ':' + << kserver_->port()); return; } if (-1 == listen(server_socket_fd_, 1)) { - LOG4CXX_ERROR(logger_, "Streamer listen error " << strerror(errno) ); + LOG4CXX_ERROR(logger_, "Streamer listen error " << strerror(errno)); return; } } void Streamer::ShutDownAndCloseSocket(int32_t socket_fd) { LOG4CXX_AUTO_TRACE(logger_); - if (0 < socket_fd){ + if (0 < socket_fd) { LOG4CXX_INFO(logger_, "Shutdown socket"); if (-1 == ::shutdown(socket_fd, SHUT_RDWR)) { LOG4CXX_ERROR(logger_, "Unable to shutdown socket"); @@ -251,7 +251,7 @@ bool Streamer::IsReady() const { FD_ZERO(&fds); FD_SET(client_socket_fd_, &fds); TimevalStruct tv = {0, 0}; - tv.tv_sec = 5; // set a 5 second timeout + tv.tv_sec = 5; // set a 5 second timeout tv.tv_usec = 0; const int retval = select(client_socket_fd_ + 1, 0, &fds, 0, &tv); @@ -274,8 +274,7 @@ bool Streamer::Send(const std::string& msg) { return false; } - if (-1 == ::send(client_socket_fd_, msg.c_str(), - msg.size(), MSG_NOSIGNAL)) { + if (-1 == ::send(client_socket_fd_, msg.c_str(), msg.size(), MSG_NOSIGNAL)) { LOG4CXX_ERROR(logger_, " Unable to send"); return false; } diff --git a/src/components/telemetry_monitor/src/transport_manager_observer.cc b/src/components/telemetry_monitor/src/transport_manager_observer.cc index 36f0e3c75a..b3e57ac22a 100644 --- a/src/components/telemetry_monitor/src/transport_manager_observer.cc +++ b/src/components/telemetry_monitor/src/transport_manager_observer.cc @@ -38,26 +38,30 @@ namespace telemetry_monitor { -TransportManagerObserver::TransportManagerObserver(TelemetryMonitor* telemetry_monitor): - telemetry_monitor_ (telemetry_monitor) { -} +TransportManagerObserver::TransportManagerObserver( + TelemetryMonitor* telemetry_monitor) + : telemetry_monitor_(telemetry_monitor) {} -void TransportManagerObserver::StartRawMsg(const protocol_handler::RawMessage* ptr) { +void TransportManagerObserver::StartRawMsg( + const protocol_handler::RawMessage* ptr) { time_starts[ptr] = date_time::DateTime::getCurrentTime(); } -void TransportManagerObserver::StopRawMsg(const protocol_handler::RawMessage* ptr) { - std::map<const protocol_handler::RawMessage*, TimevalStruct>::const_iterator it; - it = time_starts.find(ptr); - if (it != time_starts.end()) { - TransportManagerMecticWrapper* m = new TransportManagerMecticWrapper(); - m->message_metric = new transport_manager::TMTelemetryObserver::MessageMetric(); - m->message_metric->begin = it->second; - m->message_metric->end = date_time::DateTime::getCurrentTime(); - m->message_metric->data_size = ptr->data_size(); - m->grabResources(); - telemetry_monitor_->SendMetric(m); - } +void TransportManagerObserver::StopRawMsg( + const protocol_handler::RawMessage* ptr) { + std::map<const protocol_handler::RawMessage*, TimevalStruct>::const_iterator + it; + it = time_starts.find(ptr); + if (it != time_starts.end()) { + TransportManagerMecticWrapper* m = new TransportManagerMecticWrapper(); + m->message_metric = + new transport_manager::TMTelemetryObserver::MessageMetric(); + m->message_metric->begin = it->second; + m->message_metric->end = date_time::DateTime::getCurrentTime(); + m->message_metric->data_size = ptr->data_size(); + m->grabResources(); + telemetry_monitor_->SendMetric(m); + } } -} //namespace telemetry_monitor +} // namespace telemetry_monitor diff --git a/src/components/telemetry_monitor/test/application_manager_metric_test.cc b/src/components/telemetry_monitor/test/application_manager_metric_test.cc index 08cac32c65..5d97ac3528 100644 --- a/src/components/telemetry_monitor/test/application_manager_metric_test.cc +++ b/src/components/telemetry_monitor/test/application_manager_metric_test.cc @@ -57,23 +57,32 @@ TEST(ApplicationManagerMetricWrapper, GetJsonMetric) { TimevalStruct end_time; end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new application_manager::AMTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new application_manager::AMTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; NsSmartDeviceLink::NsSmartObjects::SmartObject obj; obj["params"][application_manager::strings::correlation_id] = 11; obj["params"][application_manager::strings::connection_key] = 12; - metric_test.message_metric->message = new NsSmartDeviceLink::NsSmartObjects::SmartObject(obj); + metric_test.message_metric->message = + new NsSmartDeviceLink::NsSmartObjects::SmartObject(obj); Json::Value jvalue = metric_test.GetJsonMetric(); - EXPECT_EQ("null\n", jvalue[telemetry_monitor::strings::stime].toStyledString()); - EXPECT_EQ("null\n", jvalue[telemetry_monitor::strings::utime].toStyledString()); - EXPECT_EQ("null\n", jvalue[telemetry_monitor::strings::memory].toStyledString()); - - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[telemetry_monitor::strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[telemetry_monitor::strings::end].asInt64()); - EXPECT_EQ(obj["params"][application_manager::strings::correlation_id].asInt(), jvalue[telemetry_monitor::strings::correlation_id].asInt64()); - EXPECT_EQ(obj["params"][application_manager::strings::connection_key].asInt(), jvalue[telemetry_monitor::strings::connection_key].asInt()); + EXPECT_EQ("null\n", + jvalue[telemetry_monitor::strings::stime].toStyledString()); + EXPECT_EQ("null\n", + jvalue[telemetry_monitor::strings::utime].toStyledString()); + EXPECT_EQ("null\n", + jvalue[telemetry_monitor::strings::memory].toStyledString()); + + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[telemetry_monitor::strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[telemetry_monitor::strings::end].asInt64()); + EXPECT_EQ(obj["params"][application_manager::strings::correlation_id].asInt(), + jvalue[telemetry_monitor::strings::correlation_id].asInt64()); + EXPECT_EQ(obj["params"][application_manager::strings::connection_key].asInt(), + jvalue[telemetry_monitor::strings::connection_key].asInt()); } TEST(ApplicationManagerMetricWrapper, GetJsonMetricWithGrabResources) { @@ -89,26 +98,37 @@ TEST(ApplicationManagerMetricWrapper, GetJsonMetricWithGrabResources) { end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new application_manager::AMTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new application_manager::AMTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; NsSmartDeviceLink::NsSmartObjects::SmartObject obj; obj["params"][application_manager::strings::correlation_id] = 11; obj["params"][application_manager::strings::connection_key] = 12; - metric_test.message_metric->message = new NsSmartDeviceLink::NsSmartObjects::SmartObject(obj); + metric_test.message_metric->message = + new NsSmartDeviceLink::NsSmartObjects::SmartObject(obj); Json::Value jvalue = metric_test.GetJsonMetric(); - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[telemetry_monitor::strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[telemetry_monitor::strings::end].asInt64()); - EXPECT_EQ(obj["params"][application_manager::strings::correlation_id].asInt(), jvalue[telemetry_monitor::strings::correlation_id].asInt64()); - EXPECT_EQ(obj["params"][application_manager::strings::connection_key].asInt(), jvalue[telemetry_monitor::strings::connection_key].asInt()); - - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[telemetry_monitor::strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[telemetry_monitor::strings::end].asInt64()); - - EXPECT_NEAR(resources->stime, jvalue[telemetry_monitor::strings::stime].asInt(),1); - EXPECT_NEAR(resources->utime, jvalue[telemetry_monitor::strings::utime].asInt(),1); - EXPECT_EQ(resources->memory, jvalue[telemetry_monitor::strings::memory].asInt()); + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[telemetry_monitor::strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[telemetry_monitor::strings::end].asInt64()); + EXPECT_EQ(obj["params"][application_manager::strings::correlation_id].asInt(), + jvalue[telemetry_monitor::strings::correlation_id].asInt64()); + EXPECT_EQ(obj["params"][application_manager::strings::connection_key].asInt(), + jvalue[telemetry_monitor::strings::connection_key].asInt()); + + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[telemetry_monitor::strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[telemetry_monitor::strings::end].asInt64()); + + EXPECT_NEAR( + resources->stime, jvalue[telemetry_monitor::strings::stime].asInt(), 1); + EXPECT_NEAR( + resources->utime, jvalue[telemetry_monitor::strings::utime].asInt(), 1); + EXPECT_EQ(resources->memory, + jvalue[telemetry_monitor::strings::memory].asInt()); delete resources; } diff --git a/src/components/telemetry_monitor/test/application_manager_observer_test.cc b/src/components/telemetry_monitor/test/application_manager_observer_test.cc index 4925544d09..09ef04a2d8 100644 --- a/src/components/telemetry_monitor/test/application_manager_observer_test.cc +++ b/src/components/telemetry_monitor/test/application_manager_observer_test.cc @@ -49,7 +49,8 @@ TEST(ApplicationManagerObserver, CallOnMessage) { MockTelemetryMonitor mock_telemetry_monitor; ApplicationManagerObserver app_observer(&mock_telemetry_monitor); typedef application_manager::AMTelemetryObserver::MessageMetric AMMetric; - utils::SharedPtr<AMMetric> ptr = application_manager::AMTelemetryObserver::MessageMetricSharedPtr(); + utils::SharedPtr<AMMetric> ptr = + application_manager::AMTelemetryObserver::MessageMetricSharedPtr(); EXPECT_CALL(mock_telemetry_monitor, SendMetric(_)); app_observer.OnMessage(ptr); } diff --git a/src/components/telemetry_monitor/test/include/telemetry_monitor/mock_telemetry_monitor.h b/src/components/telemetry_monitor/test/include/telemetry_monitor/mock_telemetry_monitor.h index 2d849a634c..0ef5a530fd 100644 --- a/src/components/telemetry_monitor/test/include/telemetry_monitor/mock_telemetry_monitor.h +++ b/src/components/telemetry_monitor/test/include/telemetry_monitor/mock_telemetry_monitor.h @@ -43,9 +43,9 @@ namespace test { namespace components { namespace telemetry_monitor_test { -class MockTelemetryMonitor: public telemetry_monitor::TelemetryMonitor { +class MockTelemetryMonitor : public telemetry_monitor::TelemetryMonitor { public: - MockTelemetryMonitor():telemetry_monitor::TelemetryMonitor("",0u){} + MockTelemetryMonitor() : telemetry_monitor::TelemetryMonitor("", 0u) {} MOCK_METHOD1(Init, void(protocol_handler::ProtocolHandlerImpl* ph)); MOCK_METHOD0(Stop, void()); MOCK_METHOD0(Start, void()); diff --git a/src/components/telemetry_monitor/test/metric_wrapper_test.cc b/src/components/telemetry_monitor/test/metric_wrapper_test.cc index 08b9747742..91361f3df2 100644 --- a/src/components/telemetry_monitor/test/metric_wrapper_test.cc +++ b/src/components/telemetry_monitor/test/metric_wrapper_test.cc @@ -70,8 +70,8 @@ TEST(MetricWrapper, GetJsonMetricWithGrabResources) { EXPECT_NE("null/n", jvalue[strings::utime].toStyledString()); EXPECT_NE("null/n", jvalue[strings::memory].toStyledString()); - EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(),1); - EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(),1); + EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(), 1); + EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(), 1); EXPECT_EQ(resources->memory, jvalue[strings::memory].asInt()); delete resources; diff --git a/src/components/telemetry_monitor/test/protocol_handler_metric_test.cc b/src/components/telemetry_monitor/test/protocol_handler_metric_test.cc index b8114f5511..e41aeb6edd 100644 --- a/src/components/telemetry_monitor/test/protocol_handler_metric_test.cc +++ b/src/components/telemetry_monitor/test/protocol_handler_metric_test.cc @@ -58,7 +58,8 @@ TEST(ProtocolHandlerMetricTest, GetJsonMetric) { TimevalStruct end_time; end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new protocol_handler::PHTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new protocol_handler::PHTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; metric_test.message_metric->message_id = 5; @@ -70,8 +71,10 @@ TEST(ProtocolHandlerMetricTest, GetJsonMetric) { EXPECT_EQ("null\n", jvalue[strings::utime].toStyledString()); EXPECT_EQ("null\n", jvalue[strings::memory].toStyledString()); - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[strings::end].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[strings::end].asInt64()); EXPECT_EQ(5, jvalue[strings::message_id].asInt64()); EXPECT_EQ(2, jvalue[strings::connection_key].asInt()); } @@ -89,7 +92,8 @@ TEST(ProtocolHandlerMetricTest, GetJsonMetricWithGrabResources) { TimevalStruct end_time; end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new protocol_handler::PHTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new protocol_handler::PHTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; metric_test.message_metric->message_id = 5; @@ -103,13 +107,15 @@ TEST(ProtocolHandlerMetricTest, GetJsonMetricWithGrabResources) { EXPECT_NE("null/n", jvalue[strings::utime].toStyledString()); EXPECT_NE("null/n", jvalue[strings::memory].toStyledString()); - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[strings::end].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[strings::end].asInt64()); EXPECT_EQ(5, jvalue[strings::message_id].asInt64()); EXPECT_EQ(2, jvalue[strings::connection_key].asInt()); - EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(),1); - EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(),1); + EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(), 1); + EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(), 1); EXPECT_EQ(resources->memory, jvalue[strings::memory].asInt()); delete resources; } diff --git a/src/components/telemetry_monitor/test/telemetry_monitor_test.cc b/src/components/telemetry_monitor/test/telemetry_monitor_test.cc index 8c95f75f0c..8c48a51304 100644 --- a/src/components/telemetry_monitor/test/telemetry_monitor_test.cc +++ b/src/components/telemetry_monitor/test/telemetry_monitor_test.cc @@ -41,7 +41,6 @@ #include "transport_manager/mock_transport_manager.h" #include "telemetry_monitor/mock_telemetry_observable.h" - using testing::Return; using testing::_; @@ -53,11 +52,10 @@ using namespace telemetry_monitor; class StreamerMock : public Streamer { public: - StreamerMock(TelemetryMonitor* const server) - : Streamer(server) { + StreamerMock(TelemetryMonitor* const server) : Streamer(server) { is_client_connected_ = true; } - MOCK_METHOD1(PushMessage,void(utils::SharedPtr<MetricWrapper> metric)); + MOCK_METHOD1(PushMessage, void(utils::SharedPtr<MetricWrapper> metric)); }; TEST(TelemetryMonitorTest, MessageProcess) { @@ -65,14 +63,14 @@ TEST(TelemetryMonitorTest, MessageProcess) { const uint16_t port = 12345; MockTelemetryObservable am_observeble; - transport_manager_test::MockTransportManager transport_manager_mock; - testing::NiceMock<connection_handler_test::MockConnectionHandler> - connection_handler_mock; + transport_manager_test::MockTransportManager transport_manager_mock; + testing::NiceMock<connection_handler_test::MockConnectionHandler> + connection_handler_mock; testing::NiceMock< ::test::components::protocol_handler_test::MockProtocolHandlerSettings> - protocol_handler_settings_mock; - ::test::components::protocol_handler_test::MockSessionObserver - session_observer_mock; + protocol_handler_settings_mock; + ::test::components::protocol_handler_test::MockSessionObserver + session_observer_mock; const size_t init_value = 1000u; ON_CALL(protocol_handler_settings_mock, maximum_payload_size()) @@ -83,9 +81,11 @@ TEST(TelemetryMonitorTest, MessageProcess) { .WillByDefault(Return(init_value)); ON_CALL(protocol_handler_settings_mock, multiframe_waiting_timeout()) .WillByDefault(Return(init_value)); - protocol_handler::ProtocolHandlerImpl protocol_handler_mock( - protocol_handler_settings_mock, session_observer_mock, - connection_handler_mock, transport_manager_mock); + protocol_handler::ProtocolHandlerImpl protocol_handler_mock( + protocol_handler_settings_mock, + session_observer_mock, + connection_handler_mock, + transport_manager_mock); EXPECT_CALL(am_observeble, SetTelemetryObserver(_)); EXPECT_CALL(transport_manager_mock, SetTelemetryObserver(_)); @@ -94,8 +94,8 @@ TEST(TelemetryMonitorTest, MessageProcess) { telemetry_monitor.Start(); telemetry_monitor.set_streamer(&streamer_mock); - telemetry_monitor.Init(&protocol_handler_mock, &am_observeble, - &transport_manager_mock); + telemetry_monitor.Init( + &protocol_handler_mock, &am_observeble, &transport_manager_mock); utils::SharedPtr<telemetry_monitor::MetricWrapper> test_metric; EXPECT_CALL(streamer_mock, PushMessage(test_metric)); telemetry_monitor.SendMetric(test_metric); diff --git a/src/components/telemetry_monitor/test/transport_manager_metric_test.cc b/src/components/telemetry_monitor/test/transport_manager_metric_test.cc index 1219a9b1ab..9e485ce4f1 100644 --- a/src/components/telemetry_monitor/test/transport_manager_metric_test.cc +++ b/src/components/telemetry_monitor/test/transport_manager_metric_test.cc @@ -58,7 +58,8 @@ TEST(TransportManagerMetricWrapper, GetJsonMetric) { TimevalStruct end_time; end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new transport_manager::TMTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new transport_manager::TMTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; metric_test.message_metric->data_size = 1000; @@ -68,8 +69,10 @@ TEST(TransportManagerMetricWrapper, GetJsonMetric) { EXPECT_EQ("null\n", jvalue[strings::utime].toStyledString()); EXPECT_EQ("null\n", jvalue[strings::memory].toStyledString()); - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[strings::end].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[strings::end].asInt64()); EXPECT_EQ(1000, jvalue[strings::data_size].asInt()); } @@ -86,7 +89,8 @@ TEST(TransportManagerMetricWrapper, GetJsonMetricWithGrabResources) { TimevalStruct end_time; end_time.tv_sec = 10; end_time.tv_usec = 0; - metric_test.message_metric = new transport_manager::TMTelemetryObserver::MessageMetric(); + metric_test.message_metric = + new transport_manager::TMTelemetryObserver::MessageMetric(); metric_test.message_metric->begin = start_time; metric_test.message_metric->end = end_time; @@ -94,12 +98,14 @@ TEST(TransportManagerMetricWrapper, GetJsonMetricWithGrabResources) { Json::Value jvalue = metric_test.GetJsonMetric(); EXPECT_EQ("\"TransportManager\"\n", jvalue[strings::logger].toStyledString()); - EXPECT_EQ(date_time::DateTime::getuSecs(start_time), jvalue[strings::begin].asInt64()); - EXPECT_EQ(date_time::DateTime::getuSecs(end_time), jvalue[strings::end].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(start_time), + jvalue[strings::begin].asInt64()); + EXPECT_EQ(date_time::DateTime::getuSecs(end_time), + jvalue[strings::end].asInt64()); EXPECT_EQ(1000, jvalue[strings::data_size].asInt()); - EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(),1); - EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(),1); + EXPECT_NEAR(resources->stime, jvalue[strings::stime].asInt(), 1); + EXPECT_NEAR(resources->utime, jvalue[strings::utime].asInt(), 1); EXPECT_EQ(resources->memory, jvalue[strings::memory].asInt()); delete resources; diff --git a/src/components/telemetry_monitor/test/transport_manager_observer_test.cc b/src/components/telemetry_monitor/test/transport_manager_observer_test.cc index 71de55e47a..866ff25863 100644 --- a/src/components/telemetry_monitor/test/transport_manager_observer_test.cc +++ b/src/components/telemetry_monitor/test/transport_manager_observer_test.cc @@ -46,7 +46,8 @@ using ::testing::_; TEST(TransportManagerObserverTest, MessageProcess) { MockTelemetryMonitor mock_telemetry_monitor; TransportManagerObserver tr_observer(&mock_telemetry_monitor); - protocol_handler::RawMessage* ptr = new ::protocol_handler::RawMessage(0, 0, NULL, 0); + protocol_handler::RawMessage* ptr = + new ::protocol_handler::RawMessage(0, 0, NULL, 0); tr_observer.StartRawMsg(ptr); EXPECT_CALL(mock_telemetry_monitor, SendMetric(_)); tr_observer.StopRawMsg(ptr); diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h index 4d1d474377..cdc820e555 100644 --- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h +++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_connection_factory.h @@ -48,15 +48,14 @@ class TransportAdapterController; */ class BluetoothConnectionFactory : public ServerConnectionFactory { public: - /** * @brief Constructor. * * @param controller Pointer to the device adapter controller. */ BluetoothConnectionFactory(TransportAdapterController* controller); - protected: + protected: /** * @brief Start BT connection factory. */ @@ -68,8 +67,8 @@ class BluetoothConnectionFactory : public ServerConnectionFactory { * @param device_uid Device unique identifier. * @param ap_handle Handle of application. */ - virtual TransportAdapter::Error CreateConnection(const DeviceUID& device_uid, - const ApplicationHandle& app_handle); + virtual TransportAdapter::Error CreateConnection( + const DeviceUID& device_uid, const ApplicationHandle& app_handle); /** * @brief @@ -88,6 +87,7 @@ class BluetoothConnectionFactory : public ServerConnectionFactory { * @brief Destructor. */ virtual ~BluetoothConnectionFactory(); + private: TransportAdapterController* controller_; }; diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h index f28147a3b5..5194873597 100644 --- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h +++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device.h @@ -56,7 +56,6 @@ typedef std::vector<uint8_t> RfcommChannelVector; */ class BluetoothDevice : public Device { public: - /** * @brief Return device unique identifier. * @@ -69,9 +68,11 @@ class BluetoothDevice : public Device { * * @param address Bluetooth address. * @param name Human-readable device name. - * @param rfcomm_channels List of RFCOMM channels where SmartDeviceLink service has been discovered. + * @param rfcomm_channels List of RFCOMM channels where SmartDeviceLink + *service has been discovered. **/ - BluetoothDevice(const bdaddr_t& device_address, const char* device_name, + BluetoothDevice(const bdaddr_t& device_address, + const char* device_name, const RfcommChannelVector& rfcomm_channels); /** @@ -112,7 +113,8 @@ class BluetoothDevice : public Device { bdaddr_t address_; /** - * @brief List of RFCOMM channels where SmartDeviceLink service has been discovered. + * @brief List of RFCOMM channels where SmartDeviceLink service has been + *discovered. **/ RfcommChannelVector rfcomm_channels_; }; diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h index d1bed9b3dc..764b64fef3 100644 --- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h +++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_device_scanner.h @@ -62,11 +62,14 @@ class BluetoothDeviceScanner : public DeviceScanner { /** * @brief Constructor. * @param controller Transport adapter controller - * @param auto_repeat_search true - autorepeated or continous device search, false - search on demand - * @param repeat_search_pause_sec - pause between device searches, 0 means continous search + * @param auto_repeat_search true - autorepeated or continous device search, + * false - search on demand + * @param repeat_search_pause_sec - pause between device searches, 0 means + * continous search */ BluetoothDeviceScanner(TransportAdapterController* controller, - bool auto_repeat_search, int repeat_search_pause_sec); + bool auto_repeat_search, + int repeat_search_pause_sec); /** * @brief Destructor. */ @@ -75,8 +78,8 @@ class BluetoothDeviceScanner : public DeviceScanner { * @brief Main thread initialization. */ void Thread(); - protected: + protected: /** * @brief Start device scanner. * @@ -103,12 +106,13 @@ class BluetoothDeviceScanner : public DeviceScanner { * false - not initialized. */ virtual bool IsInitialised() const; - private: - class BluetoothDeviceScannerDelegate: public threads::ThreadDelegate { + private: + class BluetoothDeviceScannerDelegate : public threads::ThreadDelegate { public: explicit BluetoothDeviceScannerDelegate(BluetoothDeviceScanner* scanner); void threadMain() OVERRIDE; + private: BluetoothDeviceScanner* scanner_; }; @@ -116,7 +120,8 @@ class BluetoothDeviceScanner : public DeviceScanner { typedef std::vector<uint8_t> RfcommChannelVector; /** - * @brief Waits for external scan request or time out for repeated search or terminate request + * @brief Waits for external scan request or time out for repeated search or + * terminate request */ void TimedWaitForDeviceScanRequest(); @@ -126,7 +131,7 @@ class BluetoothDeviceScanner : public DeviceScanner { * @return List of RFCOMM-channels lists */ std::vector<RfcommChannelVector> DiscoverSmartDeviceLinkRFCOMMChannels( - const std::vector<bdaddr_t>& device_addresses); + const std::vector<bdaddr_t>& device_addresses); /** * @brief Finds RFCOMM-channels of SDL enabled applications for given device @@ -134,10 +139,11 @@ class BluetoothDeviceScanner : public DeviceScanner { * @return true - if search was OK, false if it failed */ bool DiscoverSmartDeviceLinkRFCOMMChannels(const bdaddr_t& device_address, - RfcommChannelVector* discovered); + RfcommChannelVector* discovered); /** - * @brief Summarizes the total list of devices (paired and scanned) and notifies controller + * @brief Summarizes the total list of devices (paired and scanned) and + * notifies controller */ void UpdateTotalDeviceList(); @@ -147,10 +153,12 @@ class BluetoothDeviceScanner : public DeviceScanner { void DoInquiry(); /** - * @brief Checks if given devices have SDL service and creates appropriate BluetoothDevice objects + * @brief Checks if given devices have SDL service and creates appropriate + * BluetoothDevice objects * @param bd_address List of bluetooth addresses to check * @param device_handle HCI handle - * @param[out] discovered_devices List of created BluetoothDevice objects to fill + * @param[out] discovered_devices List of created BluetoothDevice objects to + * fill */ void CheckSDLServiceOnDevices(const std::vector<bdaddr_t>& bd_address, int device_handle, diff --git a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h index 3de77ab529..3f524dac0f 100644 --- a/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h +++ b/src/components/transport_manager/include/transport_manager/bluetooth/bluetooth_socket_connection.h @@ -48,7 +48,6 @@ class TransportAdapterController; */ class BluetoothSocketConnection : public ThreadedSocketConnection { public: - /** * @brief Constructor. * @@ -64,8 +63,8 @@ class BluetoothSocketConnection : public ThreadedSocketConnection { * @brief Destructor. */ virtual ~BluetoothSocketConnection(); - protected: + protected: /** * @brief Establish connection. * diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h index 620efff2b1..2640049ecc 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h @@ -59,7 +59,8 @@ class TcpClientListener : public ClientConnectionListener { * @param enable_keepalive If true enables TCP keepalive on accepted *connections */ - TcpClientListener(TransportAdapterController* controller, uint16_t port, + TcpClientListener(TransportAdapterController* controller, + uint16_t port, bool enable_keepalive); /** @@ -70,7 +71,8 @@ class TcpClientListener : public ClientConnectionListener { /** * @brief Run TCP client listener. * - * @return Error information about possible reason of starting TCP listener listener failure. + * @return Error information about possible reason of starting TCP listener + *listener failure. */ virtual TransportAdapter::Error Init(); @@ -101,15 +103,15 @@ class TcpClientListener : public ClientConnectionListener { #ifdef BUILD_TESTS uint16_t port() const { - return port_; + return port_; } int get_socket() const { - return socket_; + return socket_; } threads::Thread* thread() const { - return thread_; + return thread_; } #endif // BUILD_TESTS @@ -129,6 +131,7 @@ class TcpClientListener : public ClientConnectionListener { explicit ListeningThreadDelegate(TcpClientListener* parent); virtual void threadMain(); void exitThreadMain(); + private: TcpClientListener* parent_; }; diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h index 432a0aa760..4d7901f4f0 100644 --- a/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h +++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_socket_connection.h @@ -77,7 +77,8 @@ class TcpSocketConnection : public ThreadedSocketConnection { }; /** - * @brief Class responsible for communication over sockets that originated by server. + * @brief Class responsible for communication over sockets that originated by + * server. */ class TcpServerOiginatedSocketConnection : public ThreadedSocketConnection { public: @@ -89,8 +90,8 @@ class TcpServerOiginatedSocketConnection : public ThreadedSocketConnection { * @param controller Pointer to the device adapter controller. */ TcpServerOiginatedSocketConnection(const DeviceUID& device_uid, - const ApplicationHandle& app_handle, - TransportAdapterController* controller); + const ApplicationHandle& app_handle, + TransportAdapterController* controller); /** * @brief Destructor. diff --git a/src/components/transport_manager/include/transport_manager/telemetry_observer.h b/src/components/transport_manager/include/transport_manager/telemetry_observer.h index 8fe98a1553..1097feaecb 100644 --- a/src/components/transport_manager/include/transport_manager/telemetry_observer.h +++ b/src/components/transport_manager/include/transport_manager/telemetry_observer.h @@ -49,7 +49,7 @@ class TMTelemetryObserver { virtual void StartRawMsg(const protocol_handler::RawMessage* ptr) = 0; virtual void StopRawMsg(const protocol_handler::RawMessage* ptr) = 0; - virtual ~TMTelemetryObserver(){} + virtual ~TMTelemetryObserver() {} }; } // transport_manager #endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TIME_METRIC_OBSERVER_H_ diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h b/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h index 018dd46810..8df2c4d299 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/client_connection_listener.h @@ -35,10 +35,8 @@ #include "transport_manager/transport_adapter/transport_adapter.h" - namespace transport_manager { - namespace transport_adapter { /** @@ -49,7 +47,8 @@ class ClientConnectionListener { /** * @brief Run client connection listener. * - * @return Error information about possible reason of starting client listener failure. + * @return Error information about possible reason of starting client listener + *failure. */ virtual TransportAdapter::Error Init() = 0; @@ -79,8 +78,7 @@ class ClientConnectionListener { /** * @brief Destructor. */ - virtual ~ClientConnectionListener() { - } + virtual ~ClientConnectionListener() {} }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h b/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h index e3f0b3d1d7..537e94b055 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/connection.h @@ -58,7 +58,8 @@ class Connection { * * @return Error Information about possible reason of sending data failure. */ - virtual TransportAdapter::Error SendData(::protocol_handler::RawMessagePtr message) = 0; + virtual TransportAdapter::Error SendData( + ::protocol_handler::RawMessagePtr message) = 0; /** * @brief Disconnect the current connection. @@ -70,4 +71,4 @@ typedef utils::SharedPtr<Connection> ConnectionSPtr; } // namespace transport_adapter } // namespace transport_manager -#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CONNECTION_H_ +#endif // SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_ADAPTER_CONNECTION_H_ diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h b/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h index 36759a9385..6e58f692a9 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/device_scanner.h @@ -76,8 +76,7 @@ class DeviceScanner { /** * @brief Destructor. */ - virtual ~DeviceScanner() { - } + virtual ~DeviceScanner() {} }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h b/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h index 19c37aa6a6..3cd93e1316 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/server_connection_factory.h @@ -41,7 +41,8 @@ namespace transport_manager { namespace transport_adapter { /** - * @brief Implement transport dependent connection that was originated by the user. + * @brief Implement transport dependent connection that was originated by the + * user. */ class ServerConnectionFactory { public: @@ -79,8 +80,7 @@ class ServerConnectionFactory { /** * @brief Destructor. */ - virtual ~ServerConnectionFactory() { - } + virtual ~ServerConnectionFactory() {} }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h b/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h index d764979fbd..ab0c5cbf85 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/threaded_socket_connection.h @@ -140,6 +140,7 @@ class ThreadedSocketConnection : public Connection { explicit SocketConnectionDelegate(ThreadedSocketConnection* connection); void threadMain() OVERRIDE; void exitThreadMain() OVERRIDE; + private: ThreadedSocketConnection* connection_; }; diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h index f0148ad1af..1712f0f181 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_controller.h @@ -42,8 +42,7 @@ namespace transport_adapter { class TransportAdapterController { public: - virtual ~TransportAdapterController() { - } + virtual ~TransportAdapterController() {} /** * @brief Add device to the container(map), if container doesn't hold it yet. @@ -55,7 +54,8 @@ class TransportAdapterController { virtual DeviceSptr AddDevice(DeviceSptr device) = 0; /** - * @brief Search for device in container of devices, if it is not there - adds it. + * @brief Search for device in container of devices, if it is not there - adds + *it. * * @param devices Container(vector) of smart pointers to devices. */ @@ -100,7 +100,8 @@ class TransportAdapterController { const ApplicationHandle& app_handle) = 0; /** - * @brief Make state of specified connection - ESTABLISHED and launch OnConnectDone event in device adapter listener. + * @brief Make state of specified connection - ESTABLISHED and launch + *OnConnectDone event in device adapter listener. * * @param devcie_handle Device unique identifier. * @param app_handle Handle of application. @@ -109,7 +110,8 @@ class TransportAdapterController { const ApplicationHandle& app_handle) = 0; /** - * @brief Delete connection from the container of connections and launch OnConnectFailed event in the device adapter listener. + * @brief Delete connection from the container of connections and launch + *OnConnectFailed event in the device adapter listener. * * @param device_handle Device unique identifier. * @param app_handle Handle of application. @@ -128,7 +130,8 @@ class TransportAdapterController { const ApplicationHandle& app_handle) = 0; /** - * @brief Set specified connection state to FINALISING and launch OnUnexpectedDisconnect event in the device adapter listener. + * @brief Set specified connection state to FINALISING and launch + *OnUnexpectedDisconnect event in the device adapter listener. * * @param device_handle Device unique identifier. * @param app_handle Handle of application. @@ -147,7 +150,8 @@ class TransportAdapterController { const DisconnectDeviceError& error) = 0; /** - * @brief Delete specified connection from the container(map) of connections and launch event in the device adapter listener. + * @brief Delete specified connection from the container(map) of connections + *and launch event in the device adapter listener. * * @param device_handle Device unique identifier. * @param app_handle Handle of application. @@ -155,13 +159,13 @@ class TransportAdapterController { virtual void DisconnectDone(const DeviceUID& device_handle, const ApplicationHandle& app_handle) = 0; - /** - * @brief Launch OnDataReceiveDone event in the device adapter listener. - * - * @param device_handle Device unique identifier. - * @param app_handle Handle of application. - * @param message Smart pointer to the raw message. - */ + /** + * @brief Launch OnDataReceiveDone event in the device adapter listener. + * + * @param device_handle Device unique identifier. + * @param app_handle Handle of application. + * @param message Smart pointer to the raw message. + */ virtual void DataReceiveDone(const DeviceUID& device_handle, const ApplicationHandle& app_handle, ::protocol_handler::RawMessagePtr message) = 0; @@ -198,7 +202,8 @@ class TransportAdapterController { */ virtual void DataSendFailed(const DeviceUID& device_handle, const ApplicationHandle& app_handle, - ::protocol_handler::RawMessagePtr message, const DataSendError&) = 0; + ::protocol_handler::RawMessagePtr message, + const DataSendError&) = 0; }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h index 3c302caf14..0a1eeb6b4a 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener.h @@ -50,11 +50,11 @@ class TransportAdapterListener { /** * @brief Destructor. */ - virtual ~TransportAdapterListener() { - } + virtual ~TransportAdapterListener() {} /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, * launch event ON_SEARCH_DONE in transport manager. * * @param transport_adapter Pointer to the device adapter. @@ -63,11 +63,13 @@ class TransportAdapterListener { const TransportAdapter* transport_adapter) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create search device error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create search device error, * launch event ON_SEARCH_FAIL in transport manager. * * @param transport_adapter Pointer to the device adapter. - * @param error Error class with information about possible reason of search device failure. + * @param error Error class with information about possible reason of search + *device failure. */ virtual void OnSearchDeviceFailed(const TransportAdapter* transport_adapter, const SearchDeviceError& error) = 0; @@ -86,10 +88,12 @@ class TransportAdapterListener { * @brief Reaction to "Find new applications" request * @param adapter Current transport adapter */ - virtual void OnFindNewApplicationsRequest(const TransportAdapter* adapter) = 0; + virtual void OnFindNewApplicationsRequest( + const TransportAdapter* adapter) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, * launch event ON_CONNECT_DONE in transport manager. * * @param device_adater Pointer to the device adapter. @@ -101,13 +105,15 @@ class TransportAdapterListener { const ApplicationHandle& app_handle) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, * launch event ON_CONNECT_FAIL in transport manager. * * @param transport_adapter Pointer to the device adapter. * @param device Device unique identifier. * @param app_id Handle of application. - * @param error Error class with information about possible reason of connect failure. + * @param error Error class with information about possible reason of connect + *failure. */ virtual void OnConnectFailed(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, @@ -126,20 +132,23 @@ class TransportAdapterListener { const ApplicationHandle& app_handle) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, * launch event ON_UNEXPECTED_DISCONNECT in transport manager. * * @param transport_adapter Pointer to the device adapter. * @param device Device unique identifier. * @param app_id Handle of application. - * @param error Error class with information about possible reason of unexpected Disconnect. + * @param error Error class with information about possible reason of + *unexpected Disconnect. */ virtual void OnUnexpectedDisconnect(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, const ApplicationHandle& app_handle, const CommunicationError& error) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, * launch event ON_DISCONNECT_DONE in transport manager. * * @param transport_adapter Pointer to the device adapter. @@ -151,13 +160,15 @@ class TransportAdapterListener { const ApplicationHandle& app_handle) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create Disconnect error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create Disconnect error, * launch event ON_DISCONNECT_FAIL in transport manager. * * @param transport_adapter Pointer to the device adapter. * @param device Device unique identifier. * @param app_id Handle of application. - * @param error Error class with information about possible reason of Disconnect failure. + * @param error Error class with information about possible reason of + *Disconnect failure. */ virtual void OnDisconnectFailed(const TransportAdapter* transport_adapter, const DeviceUID& device_handle, @@ -178,14 +189,17 @@ class TransportAdapterListener { * * @param transport_adapter Pointer to the device adapter. * @param device Device unique identifier. - * @param error Error class with information about possible reason of Disconnect from device failure. + * @param error Error class with information about possible reason of + *Disconnect from device failure. */ virtual void OnDisconnectDeviceFailed( - const TransportAdapter* transport_adapter, const DeviceUID& device_handle, + const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, const DisconnectDeviceError& error) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create error, * launch event ON_RECEIVED_DONE in transport manager. * * @param transport_adapter Pointer to the device adapter. @@ -193,28 +207,33 @@ class TransportAdapterListener { * @param app_id Handle of application. * @param data_container Smart pointer to the raw message. */ - virtual void OnDataSendDone(const TransportAdapter* transport_adapter, - const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr data_container) = 0; + virtual void OnDataSendDone( + const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr data_container) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create data receive error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create data receive error, * launch event ON_RECEIVED_DONE in transport manager. * * @param transport_adapter Pointer to the device adapter. * @param device Device unique identifier. * @param app_id Handle of application. - * @param error Error class with information about possible reason of data receive failure. + * @param error Error class with information about possible reason of data + *receive failure. */ - virtual void OnDataSendFailed(const TransportAdapter* transport_adapter, - const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr data_container, - const DataSendError& error) = 0; + virtual void OnDataSendFailed( + const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr data_container, + const DataSendError& error) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create error, * launch event ON_SEND_DONE in transport manager. * * @param transport_adapter Pointer to the device adapter. @@ -222,13 +241,15 @@ class TransportAdapterListener { * @param app_id Handle of application. * @param data_container Smart pointer to the raw message. */ - virtual void OnDataReceiveDone(const TransportAdapter* transport_adapter, - const DeviceUID& device_handle, - const ApplicationHandle& app_handle, - const ::protocol_handler::RawMessagePtr data_container) = 0; + virtual void OnDataReceiveDone( + const TransportAdapter* transport_adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle, + const ::protocol_handler::RawMessagePtr data_container) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create data send error, + * @brief Search specified device adapter in the container of shared pointers + * to device adapters to be sure it is available, create data send error, * launch event ON_SEND_FAIL in transport manager. */ virtual void OnDataReceiveFailed(const TransportAdapter* transport_adapter, @@ -237,7 +258,8 @@ class TransportAdapterListener { const DataReceiveError& error) = 0; /** - * @brief Search specified device adapter in the container of shared pointers to device adapters to be sure it is available, create error, + * @brief Search specified device adapter in the container of shared pointers + *to device adapters to be sure it is available, create error, * launch event ON_COMMUNICATION_ERROR in transport manager. * * @param transport_adapter Pointer to the device adapter. diff --git a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h index 2a2d6dc401..a0daa7b594 100644 --- a/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h +++ b/src/components/transport_manager/include/transport_manager/transport_adapter/transport_adapter_listener_impl.h @@ -222,10 +222,11 @@ class TransportAdapterListenerImpl * @param app_id Handle of application. * @param data_container Smart pointer to the raw message. */ - virtual void OnDataReceiveDone(const TransportAdapter* adapter, - const DeviceUID& device, - const ApplicationHandle& app_id, - const ::protocol_handler::RawMessagePtr data_container); + virtual void OnDataReceiveDone( + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container); /** * @brief Search specified device adapter in the container of shared pointers @@ -253,21 +254,23 @@ class TransportAdapterListenerImpl * @param app_id Handle of application. * @param data_container Smart pointer to the raw message. */ - virtual void OnDataSendDone(const TransportAdapter* adapter, - const DeviceUID& device, - const ApplicationHandle& app_id, - const ::protocol_handler::RawMessagePtr data_container); + virtual void OnDataSendDone( + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container); /** * @brief Search specified device adapter in the container of shared pointers * to device adapters to be sure it is available, create data send error, * launch event ON_SEND_FAIL in transport manager. */ - virtual void OnDataSendFailed(const TransportAdapter* adapter, - const DeviceUID& device, - const ApplicationHandle& app_id, - const ::protocol_handler::RawMessagePtr data_container, - const DataSendError& error); + virtual void OnDataSendFailed( + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container, + const DataSendError& error); /** * @brief Search specified device adapter in the container of shared pointers diff --git a/src/components/transport_manager/include/transport_manager/usb/common.h b/src/components/transport_manager/include/transport_manager/usb/common.h index 283d224536..1c6011dbb2 100644 --- a/src/components/transport_manager/include/transport_manager/usb/common.h +++ b/src/components/transport_manager/include/transport_manager/usb/common.h @@ -53,14 +53,14 @@ static const uint16_t kAoaPid2 = 0x2d01; static const uint8_t kAoaInterfaceSubclass = 0xff; static const uint16_t kAppleVid = 0x05ac; -static const uint16_t kApplePid1 = 0x1290; // iPhone -static const uint16_t kApplePid2 = 0x1292; // iPhone 3G -static const uint16_t kApplePid3 = 0x1294; // iPhone 3GS -static const uint16_t kApplePid4 = 0x1297; // iPhone 4 -static const uint16_t kApplePid5 = 0x129a; // iPad -static const uint16_t kApplePid6 = 0x129f; // iPad 2 -static const uint16_t kApplePid7 = 0x12a0; // iPhone 4S -static const uint16_t kApplePid8 = 0x12a8; // iPhone 5 +static const uint16_t kApplePid1 = 0x1290; // iPhone +static const uint16_t kApplePid2 = 0x1292; // iPhone 3G +static const uint16_t kApplePid3 = 0x1294; // iPhone 3GS +static const uint16_t kApplePid4 = 0x1297; // iPhone 4 +static const uint16_t kApplePid5 = 0x129a; // iPad +static const uint16_t kApplePid6 = 0x129f; // iPad 2 +static const uint16_t kApplePid7 = 0x12a0; // iPhone 4S +static const uint16_t kApplePid8 = 0x12a8; // iPhone 5 static const int kUsbConfiguration = 1; @@ -70,7 +70,9 @@ class UsbDeviceListener { public: virtual ~UsbDeviceListener() {} - UsbHandlerSptr GetUsbHandler() { return usb_handler_; } + UsbHandlerSptr GetUsbHandler() { + return usb_handler_; + } void SetUsbHandler(UsbHandlerSptr usb_handler) { usb_handler_ = usb_handler; @@ -86,23 +88,24 @@ class UsbDeviceListener { inline bool IsGoogleAccessory(const PlatformUsbDevice* device) { return (kAoaVid == device->vendor_id()) && - ((kAoaPid1 == device->product_id()) || (kAoaPid2 == device->product_id())); + ((kAoaPid1 == device->product_id()) || + (kAoaPid2 == device->product_id())); } inline bool IsAppleIAPDevice(const PlatformUsbDevice* device) { return (kAppleVid == device->vendor_id()) && - ((kApplePid1 == device->product_id()) || - (kApplePid2 == device->product_id()) || - (kApplePid3 == device->product_id()) || - (kApplePid4 == device->product_id()) || - (kApplePid5 == device->product_id()) || - (kApplePid6 == device->product_id()) || - (kApplePid7 == device->product_id())); + ((kApplePid1 == device->product_id()) || + (kApplePid2 == device->product_id()) || + (kApplePid3 == device->product_id()) || + (kApplePid4 == device->product_id()) || + (kApplePid5 == device->product_id()) || + (kApplePid6 == device->product_id()) || + (kApplePid7 == device->product_id())); } inline bool IsAppleIAP2Device(const PlatformUsbDevice* device) { return (kAppleVid == device->vendor_id()) && - (kApplePid8 == device->product_id()); + (kApplePid8 == device->product_id()); } inline bool IsAppleDevice(const PlatformUsbDevice* device) { diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h index b90c504a4b..1aa6881b38 100644 --- a/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h +++ b/src/components/transport_manager/include/transport_manager/usb/libusb/platform_usb_device.h @@ -45,19 +45,32 @@ namespace transport_adapter { class PlatformUsbDevice { public: - uint8_t bus_number() const { return bus_number_; } - uint8_t address() const { return address_; } - uint16_t vendor_id() const { return vendor_id_; } - uint16_t product_id() const { return product_id_; } + uint8_t bus_number() const { + return bus_number_; + } + uint8_t address() const { + return address_; + } + uint16_t vendor_id() const { + return vendor_id_; + } + uint16_t product_id() const { + return product_id_; + } std::string GetManufacturer() const; std::string GetProductName() const; std::string GetSerialNumber() const; - PlatformUsbDevice(uint8_t bus, uint8_t address, + PlatformUsbDevice(uint8_t bus, + uint8_t address, const libusb_device_descriptor& device_descriptor, libusb_device* device_libusb, libusb_device_handle* device_handle_libusb); - libusb_device_handle* GetLibusbHandle() { return libusb_device_handle_; } - libusb_device* GetLibusbDevice() { return libusb_device_; } + libusb_device_handle* GetLibusbHandle() { + return libusb_device_handle_; + } + libusb_device* GetLibusbDevice() { + return libusb_device_; + } private: std::string GetDescString(uint8_t index) const; diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h index 7c1fbd4551..bad1cd7117 100644 --- a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h +++ b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_connection.h @@ -49,12 +49,14 @@ class UsbConnection : public Connection { UsbConnection(const DeviceUID& device_uid, const ApplicationHandle& app_handle, TransportAdapterController* controller, - const UsbHandlerSptr usb_handler, PlatformUsbDevice* device); + const UsbHandlerSptr usb_handler, + PlatformUsbDevice* device); bool Init(); virtual ~UsbConnection(); protected: - virtual TransportAdapter::Error SendData(::protocol_handler::RawMessagePtr message); + virtual TransportAdapter::Error SendData( + ::protocol_handler::RawMessagePtr message); virtual TransportAdapter::Error Disconnect(); private: diff --git a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h index 215b66f6e3..b2ebd3a977 100644 --- a/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h +++ b/src/components/transport_manager/include/transport_manager/usb/libusb/usb_handler.h @@ -72,10 +72,11 @@ class UsbHandler { friend void UsbTransferSequenceCallback(libusb_transfer* transfer); private: - class UsbHandlerDelegate: public threads::ThreadDelegate { + class UsbHandlerDelegate : public threads::ThreadDelegate { public: explicit UsbHandlerDelegate(UsbHandler* handler); void threadMain() OVERRIDE; + private: UsbHandler* handler_; }; @@ -97,10 +98,14 @@ class UsbHandler { libusb_hotplug_callback_handle left_callback_handle_; friend void* UsbHandlerThread(void* data); - friend int ArrivedCallback(libusb_context* context, libusb_device* device, - libusb_hotplug_event event, void* data); - friend int LeftCallback(libusb_context* context, libusb_device* device, - libusb_hotplug_event event, void* data); + friend int ArrivedCallback(libusb_context* context, + libusb_device* device, + libusb_hotplug_event event, + void* data); + friend int LeftCallback(libusb_context* context, + libusb_device* device, + libusb_hotplug_event event, + void* data); }; } // namespace transport_adapter diff --git a/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h b/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h index ab35f862c6..9755a5eacd 100644 --- a/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h +++ b/src/components/transport_manager/include/transport_manager/usb/qnx/platform_usb_device.h @@ -45,19 +45,30 @@ namespace transport_adapter { class PlatformUsbDevice { public: - uint8_t bus_number() const { return bus_number_; } - uint8_t address() const { return address_; } - uint16_t vendor_id() const { return vendor_id_; } - uint16_t product_id() const { return product_id_; } + uint8_t bus_number() const { + return bus_number_; + } + uint8_t address() const { + return address_; + } + uint16_t vendor_id() const { + return vendor_id_; + } + uint16_t product_id() const { + return product_id_; + } std::string GetManufacturer() const; std::string GetProductName() const; std::string GetSerialNumber() const; - PlatformUsbDevice(usbd_device_instance_t* instance, usbd_device* device, + PlatformUsbDevice(usbd_device_instance_t* instance, + usbd_device* device, const usbd_device_descriptor_t& device_descriptor); const usbd_device_instance_t& GetDeviceInstance() { return usbd_device_instance_; } - usbd_device* GetUsbdDevice() { return usbd_device_; } + usbd_device* GetUsbdDevice() { + return usbd_device_; + } private: std::string GetDescString(uint8_t index) const; diff --git a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h index d55c887bd1..e9f7344ee2 100644 --- a/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h +++ b/src/components/transport_manager/include/transport_manager/usb/qnx/usb_connection.h @@ -47,6 +47,7 @@ namespace transport_adapter { class UsbConnection : public Connection { static const uint32_t kInBufferSize = 2048; + public: UsbConnection(const DeviceUID& device_uid, const ApplicationHandle& app_handle, @@ -57,9 +58,12 @@ class UsbConnection : public Connection { bool Init(); virtual ~UsbConnection(); + protected: - virtual TransportAdapter::Error SendData(::protocol_handler::RawMessagePtr message); + virtual TransportAdapter::Error SendData( + ::protocol_handler::RawMessagePtr message); virtual TransportAdapter::Error Disconnect(); + private: friend void InTransferCallback(usbd_urb* urb, usbd_pipe*, void*); friend void OutTransferCallback(usbd_urb* urb, usbd_pipe*, void*); diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h b/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h index c701a86e0a..a3597ff3d4 100644 --- a/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h +++ b/src/components/transport_manager/include/transport_manager/usb/usb_control_transfer.h @@ -46,14 +46,9 @@ class UsbControlOutTransfer; class UsbControlTransfer { public: - enum TransferDirection { - IN, - OUT - }; + enum TransferDirection { IN, OUT }; - enum RequestType { - VENDOR - }; + enum RequestType { VENDOR }; virtual ~UsbControlTransfer() {} virtual TransferDirection Direction() const = 0; @@ -67,21 +62,27 @@ class UsbControlTransfer { class UsbControlInTransfer : public UsbControlTransfer { public: virtual ~UsbControlInTransfer() {} - virtual TransferDirection Direction() const { return IN; } + virtual TransferDirection Direction() const { + return IN; + } virtual bool OnCompleted(unsigned char* data) const = 0; }; class UsbControlOutTransfer : public UsbControlTransfer { public: virtual ~UsbControlOutTransfer() {} - virtual TransferDirection Direction() const { return OUT; } + virtual TransferDirection Direction() const { + return OUT; + } virtual const char* Data() const = 0; }; class UsbControlTransferSequence { public: typedef std::list<UsbControlTransfer*> Transfers; - const Transfers& transfers() const { return transfers_; } + const Transfers& transfers() const { + return transfers_; + } virtual ~UsbControlTransferSequence() { for (Transfers::iterator it = transfers_.begin(); it != transfers_.end(); diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_device.h b/src/components/transport_manager/include/transport_manager/usb/usb_device.h index 48c5867f90..fdcfb6e155 100644 --- a/src/components/transport_manager/include/transport_manager/usb/usb_device.h +++ b/src/components/transport_manager/include/transport_manager/usb/usb_device.h @@ -45,11 +45,14 @@ namespace transport_adapter { class UsbDevice : public Device { public: - UsbDevice(PlatformUsbDevice* usb_device, const std::string& name, + UsbDevice(PlatformUsbDevice* usb_device, + const std::string& name, const DeviceUID& unique_device_id) : Device(name, unique_device_id), usb_device_(usb_device) {} - PlatformUsbDevice* usb_device() const { return usb_device_; } + PlatformUsbDevice* usb_device() const { + return usb_device_; + } protected: virtual ~UsbDevice() {} diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc index 02224baf4e..bb27493701 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_connection_factory.cc @@ -45,20 +45,20 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") BluetoothConnectionFactory::BluetoothConnectionFactory( - TransportAdapterController* controller) - : controller_(controller) { -} + TransportAdapterController* controller) + : controller_(controller) {} TransportAdapter::Error BluetoothConnectionFactory::Init() { return TransportAdapter::OK; } TransportAdapter::Error BluetoothConnectionFactory::CreateConnection( - const DeviceUID& device_uid, const ApplicationHandle& app_handle) { - LOG4CXX_TRACE(logger_, "enter. device_uid: " << &device_uid << ", app_handle: " << - &app_handle); + const DeviceUID& device_uid, const ApplicationHandle& app_handle) { + LOG4CXX_TRACE(logger_, + "enter. device_uid: " << &device_uid + << ", app_handle: " << &app_handle); BluetoothSocketConnection* connection( - new BluetoothSocketConnection(device_uid, app_handle, controller_)); + new BluetoothSocketConnection(device_uid, app_handle, controller_)); TransportAdapter::Error error = connection->Start(); if (TransportAdapter::OK != error) { LOG4CXX_ERROR(logger_, "connection::Start() failed"); @@ -68,15 +68,13 @@ TransportAdapter::Error BluetoothConnectionFactory::CreateConnection( return error; } -void BluetoothConnectionFactory::Terminate() { -} +void BluetoothConnectionFactory::Terminate() {} bool BluetoothConnectionFactory::IsInitialised() const { return true; } -BluetoothConnectionFactory::~BluetoothConnectionFactory() { -} +BluetoothConnectionFactory::~BluetoothConnectionFactory() {} } // namespace transport_adapter } // namespace transport_manager diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_device.cc b/src/components/transport_manager/src/bluetooth/bluetooth_device.cc index c8061a7ac5..038515170d 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_device.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_device.cc @@ -54,19 +54,22 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") bool BluetoothDevice::GetRfcommChannel(const ApplicationHandle app_handle, uint8_t* channel_out) { - LOG4CXX_TRACE(logger_, "enter. app_handle: " << app_handle << ", channel_out: " << - channel_out); + LOG4CXX_TRACE(logger_, + "enter. app_handle: " << app_handle + << ", channel_out: " << channel_out); if (app_handle < 0 || app_handle > std::numeric_limits<uint8_t>::max()) { LOG4CXX_TRACE(logger_, - "exit with FALSE. Condition: app_handle < 0 || app_handle > numeric_limits::max()"); + "exit with FALSE. Condition: app_handle < 0 || app_handle > " + "numeric_limits::max()"); return false; } const uint8_t channel = static_cast<uint8_t>(app_handle); - RfcommChannelVector::const_iterator it = std::find(rfcomm_channels_.begin(), - rfcomm_channels_.end(), - channel); + RfcommChannelVector::const_iterator it = + std::find(rfcomm_channels_.begin(), rfcomm_channels_.end(), channel); if (it == rfcomm_channels_.end()) { - LOG4CXX_TRACE(logger_, "exit with FALSE. Condition: channel not found in RfcommChannelVector"); + LOG4CXX_TRACE( + logger_, + "exit with FALSE. Condition: channel not found in RfcommChannelVector"); return false; } *channel_out = channel; @@ -82,31 +85,31 @@ std::string BluetoothDevice::GetUniqueDeviceId(const bdaddr_t& device_address) { return std::string("BT-") + device_address_string; } -BluetoothDevice::BluetoothDevice(const bdaddr_t& device_address, const char* device_name, +BluetoothDevice::BluetoothDevice(const bdaddr_t& device_address, + const char* device_name, const RfcommChannelVector& rfcomm_channels) - : Device(device_name, GetUniqueDeviceId(device_address)), - address_(device_address), - rfcomm_channels_(rfcomm_channels) { -} + : Device(device_name, GetUniqueDeviceId(device_address)) + , address_(device_address) + , rfcomm_channels_(rfcomm_channels) {} bool BluetoothDevice::IsSameAs(const Device* other) const { LOG4CXX_TRACE(logger_, "enter. device: " << other); bool result = false; const BluetoothDevice* other_bluetooth_device = - dynamic_cast<const BluetoothDevice*>(other); + dynamic_cast<const BluetoothDevice*>(other); if (0 != other_bluetooth_device) { - if (0 - == memcmp(&address_, &other_bluetooth_device->address_, - sizeof(bdaddr_t))) { + if (0 == memcmp(&address_, + &other_bluetooth_device->address_, + sizeof(bdaddr_t))) { result = true; } } if (result) { - LOG4CXX_TRACE(logger_, "exit with TRUE"); + LOG4CXX_TRACE(logger_, "exit with TRUE"); } else { - LOG4CXX_TRACE(logger_, "exit with FALSE"); + LOG4CXX_TRACE(logger_, "exit with FALSE"); } return result; } diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc index c422d895d0..85e6dc3f96 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_device_scanner.cc @@ -92,35 +92,49 @@ int FindPairedDevs(std::vector<bdaddr_t>* result) { result->push_back(address); } } - delete [] buffer; + delete[] buffer; buffer = new char[1028]; } pclose(pipe); LOG4CXX_TRACE(logger_, "exit with 0"); - delete [] buffer; + delete[] buffer; return 0; } } // namespace BluetoothDeviceScanner::BluetoothDeviceScanner( - TransportAdapterController* controller, bool auto_repeat_search, - int auto_repeat_pause_sec) - : controller_(controller), - thread_(NULL), - shutdown_requested_(false), - ready_(true), - device_scan_requested_(false), - device_scan_requested_lock_(), - device_scan_requested_cv_(), - auto_repeat_search_(auto_repeat_search), - auto_repeat_pause_sec_(auto_repeat_pause_sec) { - uint8_t smart_device_link_service_uuid_data[] = { 0x93, 0x6D, 0xA0, 0x1F, - 0x9A, 0xBD, 0x4D, 0x9D, 0x80, 0xC7, 0x02, 0xAF, 0x85, 0xC8, 0x22, 0xA8 - }; + TransportAdapterController* controller, + bool auto_repeat_search, + int auto_repeat_pause_sec) + : controller_(controller) + , thread_(NULL) + , shutdown_requested_(false) + , ready_(true) + , device_scan_requested_(false) + , device_scan_requested_lock_() + , device_scan_requested_cv_() + , auto_repeat_search_(auto_repeat_search) + , auto_repeat_pause_sec_(auto_repeat_pause_sec) { + uint8_t smart_device_link_service_uuid_data[] = {0x93, + 0x6D, + 0xA0, + 0x1F, + 0x9A, + 0xBD, + 0x4D, + 0x9D, + 0x80, + 0xC7, + 0x02, + 0xAF, + 0x85, + 0xC8, + 0x22, + 0xA8}; sdp_uuid128_create(&smart_device_link_service_uuid_, smart_device_link_service_uuid_data); thread_ = threads::CreateThread("BT Device Scaner", - new BluetoothDeviceScannerDelegate(this)); + new BluetoothDeviceScannerDelegate(this)); } BluetoothDeviceScanner::~BluetoothDeviceScanner() { @@ -129,7 +143,6 @@ BluetoothDeviceScanner::~BluetoothDeviceScanner() { threads::DeleteThread(thread_); } - bool BluetoothDeviceScanner::IsInitialised() const { return thread_ && thread_->is_running(); } @@ -137,9 +150,11 @@ bool BluetoothDeviceScanner::IsInitialised() const { void BluetoothDeviceScanner::UpdateTotalDeviceList() { LOG4CXX_AUTO_TRACE(logger_); DeviceVector devices; - devices.insert(devices.end(), paired_devices_with_sdl_.begin(), + devices.insert(devices.end(), + paired_devices_with_sdl_.begin(), paired_devices_with_sdl_.end()); - devices.insert(devices.end(), found_devices_with_sdl_.begin(), + devices.insert(devices.end(), + found_devices_with_sdl_.begin(), found_devices_with_sdl_.end()); controller_->SearchDeviceDone(devices); } @@ -169,12 +184,13 @@ void BluetoothDeviceScanner::DoInquiry() { } } - LOG4CXX_INFO(logger_, "Check rfcomm channel on " - << paired_devices_.size() << " paired devices."); + LOG4CXX_INFO(logger_, + "Check rfcomm channel on " << paired_devices_.size() + << " paired devices."); paired_devices_with_sdl_.clear(); - CheckSDLServiceOnDevices(paired_devices_, device_handle, - &paired_devices_with_sdl_); + CheckSDLServiceOnDevices( + paired_devices_, device_handle, &paired_devices_with_sdl_); UpdateTotalDeviceList(); LOG4CXX_INFO(logger_, "Starting hci_inquiry on device " << device_id); @@ -182,20 +198,23 @@ void BluetoothDeviceScanner::DoInquiry() { const size_t max_devices = 256u; inquiry_info* inquiry_info_list = new inquiry_info[max_devices]; - const int number_of_devices = hci_inquiry(device_id, inquiry_time, - max_devices, 0, &inquiry_info_list, - IREQ_CACHE_FLUSH); + const int number_of_devices = hci_inquiry(device_id, + inquiry_time, + max_devices, + 0, + &inquiry_info_list, + IREQ_CACHE_FLUSH); if (number_of_devices >= 0) { LOG4CXX_INFO(logger_, "hci_inquiry: found " << number_of_devices << " devices"); - std::vector < bdaddr_t > found_devices(number_of_devices); + std::vector<bdaddr_t> found_devices(number_of_devices); for (int i = 0; i < number_of_devices; ++i) { found_devices[i] = inquiry_info_list[i].bdaddr; } found_devices_with_sdl_.clear(); - CheckSDLServiceOnDevices(found_devices, device_handle, - &found_devices_with_sdl_); + CheckSDLServiceOnDevices( + found_devices, device_handle, &found_devices_with_sdl_); } UpdateTotalDeviceList(); controller_->FindNewApplicationsRequest(); @@ -210,12 +229,15 @@ void BluetoothDeviceScanner::DoInquiry() { } void BluetoothDeviceScanner::CheckSDLServiceOnDevices( - const std::vector<bdaddr_t>& bd_addresses, int device_handle, - DeviceVector* discovered_devices) { - LOG4CXX_TRACE(logger_, "enter. bd_addresses: " << &bd_addresses << ", device_handle: " << - device_handle << ", discovered_devices: " << discovered_devices); + const std::vector<bdaddr_t>& bd_addresses, + int device_handle, + DeviceVector* discovered_devices) { + LOG4CXX_TRACE(logger_, + "enter. bd_addresses: " + << &bd_addresses << ", device_handle: " << device_handle + << ", discovered_devices: " << discovered_devices); std::vector<RfcommChannelVector> sdl_rfcomm_channels = - DiscoverSmartDeviceLinkRFCOMMChannels(bd_addresses); + DiscoverSmartDeviceLinkRFCOMMChannels(bd_addresses); for (size_t i = 0; i < bd_addresses.size(); ++i) { if (sdl_rfcomm_channels[i].empty()) { @@ -224,9 +246,12 @@ void BluetoothDeviceScanner::CheckSDLServiceOnDevices( const bdaddr_t& bd_address = bd_addresses[i]; char deviceName[256]; - int hci_read_remote_name_ret = hci_read_remote_name( - device_handle, &bd_address, sizeof(deviceName) / sizeof(deviceName[0]), - deviceName, 0); + int hci_read_remote_name_ret = + hci_read_remote_name(device_handle, + &bd_address, + sizeof(deviceName) / sizeof(deviceName[0]), + deviceName, + 0); if (hci_read_remote_name_ret != 0) { LOG4CXX_ERROR_WITH_ERRNO(logger_, "hci_read_remote_name failed"); @@ -235,8 +260,8 @@ void BluetoothDeviceScanner::CheckSDLServiceOnDevices( sizeof(deviceName) / sizeof(deviceName[0])); } - Device* bluetooth_device = new BluetoothDevice(bd_address, deviceName, - sdl_rfcomm_channels[i]); + Device* bluetooth_device = + new BluetoothDevice(bd_address, deviceName, sdl_rfcomm_channels[i]); if (bluetooth_device) { LOG4CXX_INFO(logger_, "Bluetooth device created successfully"); discovered_devices->push_back(bluetooth_device); @@ -249,7 +274,7 @@ void BluetoothDeviceScanner::CheckSDLServiceOnDevices( std::vector<BluetoothDeviceScanner::RfcommChannelVector> BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( - const std::vector<bdaddr_t>& device_addresses) { + const std::vector<bdaddr_t>& device_addresses) { LOG4CXX_TRACE(logger_, "enter device_addresses: " << &device_addresses); const size_t size = device_addresses.size(); std::vector<RfcommChannelVector> result(size); @@ -264,7 +289,7 @@ BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( continue; } const bool final = DiscoverSmartDeviceLinkRFCOMMChannels( - device_addresses[i], &result[i]); + device_addresses[i], &result[i]); if (final) { processed[i] = true; ++processed_count; @@ -275,18 +300,21 @@ BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( } sleep(attempt_timeout); } - LOG4CXX_TRACE(logger_, "exit with vector<RfcommChannelVector>: size = " << result.size()); + LOG4CXX_TRACE( + logger_, + "exit with vector<RfcommChannelVector>: size = " << result.size()); return result; } bool BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( - const bdaddr_t& device_address, RfcommChannelVector* channels) { - LOG4CXX_TRACE(logger_, "enter. device_address: " << &device_address << ", channels: " << - channels); - static bdaddr_t any_address = { { 0, 0, 0, 0, 0, 0 } }; + const bdaddr_t& device_address, RfcommChannelVector* channels) { + LOG4CXX_TRACE(logger_, + "enter. device_address: " << &device_address + << ", channels: " << channels); + static bdaddr_t any_address = {{0, 0, 0, 0, 0, 0}}; sdp_session_t* sdp_session = sdp_connect( - &any_address, &device_address, SDP_RETRY_IF_BUSY | SDP_WAIT_ON_CLOSE); + &any_address, &device_address, SDP_RETRY_IF_BUSY | SDP_WAIT_ON_CLOSE); if (sdp_session == 0) { bool result = !(errno == 31 || errno == 16 || errno == 117 || errno == 114); if (result) { @@ -297,14 +325,16 @@ bool BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( return result; } - sdp_list_t* search_list = sdp_list_append(0, - &smart_device_link_service_uuid_); + sdp_list_t* search_list = + sdp_list_append(0, &smart_device_link_service_uuid_); uint32_t range = 0x0000ffff; sdp_list_t* attr_list = sdp_list_append(0, &range); sdp_list_t* response_list = 0; - if (0 == sdp_service_search_attr_req(sdp_session, search_list, - SDP_ATTR_REQ_RANGE, attr_list, + if (0 == sdp_service_search_attr_req(sdp_session, + search_list, + SDP_ATTR_REQ_RANGE, + attr_list, &response_list)) { for (sdp_list_t* r = response_list; 0 != r; r = r->next) { sdp_record_t* sdp_record = static_cast<sdp_record_t*>(r->data); @@ -352,21 +382,23 @@ bool BluetoothDeviceScanner::DiscoverSmartDeviceLinkRFCOMMChannels( std::stringstream rfcomm_channels_string; for (RfcommChannelVector::const_iterator it = channels->begin(); - it != channels->end(); ++it) { + it != channels->end(); + ++it) { if (it != channels->begin()) { rfcomm_channels_string << ", "; } rfcomm_channels_string << static_cast<uint32_t>(*it); } - LOG4CXX_INFO(logger_, - "SmartDeviceLink service was discovered on device " - << BluetoothDevice::GetUniqueDeviceId(device_address) - << " at channel(s): " << rfcomm_channels_string.str().c_str()); + LOG4CXX_INFO( + logger_, + "SmartDeviceLink service was discovered on device " + << BluetoothDevice::GetUniqueDeviceId(device_address) + << " at channel(s): " << rfcomm_channels_string.str().c_str()); } else { LOG4CXX_INFO(logger_, "SmartDeviceLink service was not discovered on device " - << BluetoothDevice::GetUniqueDeviceId(device_address)); + << BluetoothDevice::GetUniqueDeviceId(device_address)); } LOG4CXX_TRACE(logger_, "exit with TRUE"); return true; @@ -410,7 +442,8 @@ void BluetoothDeviceScanner::TimedWaitForDeviceScanRequest() { sync_primitives::AutoLock auto_lock(device_scan_requested_lock_); while (!(device_scan_requested_ || shutdown_requested_)) { const sync_primitives::ConditionalVariable::WaitStatus wait_status = - device_scan_requested_cv_.WaitFor(auto_lock, auto_repeat_pause_sec_ * 1000); + device_scan_requested_cv_.WaitFor(auto_lock, + auto_repeat_pause_sec_ * 1000); if (wait_status == sync_primitives::ConditionalVariable::kTimeout) { LOG4CXX_INFO(logger_, "Bluetooth scanner timeout, performing scan"); device_scan_requested_ = true; @@ -421,7 +454,7 @@ void BluetoothDeviceScanner::TimedWaitForDeviceScanRequest() { TransportAdapter::Error BluetoothDeviceScanner::Init() { LOG4CXX_AUTO_TRACE(logger_); - if(!thread_->start()) { + if (!thread_->start()) { LOG4CXX_ERROR(logger_, "Bluetooth device scanner thread start failed"); return TransportAdapter::FAIL; } @@ -468,10 +501,9 @@ TransportAdapter::Error BluetoothDeviceScanner::Scan() { return ret; } -BluetoothDeviceScanner::BluetoothDeviceScannerDelegate::BluetoothDeviceScannerDelegate( - BluetoothDeviceScanner* scanner) - : scanner_(scanner) { -} +BluetoothDeviceScanner::BluetoothDeviceScannerDelegate:: + BluetoothDeviceScannerDelegate(BluetoothDeviceScanner* scanner) + : scanner_(scanner) {} void BluetoothDeviceScanner::BluetoothDeviceScannerDelegate::threadMain() { LOG4CXX_AUTO_TRACE(logger_); @@ -481,4 +513,3 @@ void BluetoothDeviceScanner::BluetoothDeviceScannerDelegate::threadMain() { } // namespace transport_adapter } // namespace transport_manager - diff --git a/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc b/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc index d6f9f26317..5f1eed4c5e 100644 --- a/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc +++ b/src/components/transport_manager/src/bluetooth/bluetooth_socket_connection.cc @@ -51,13 +51,12 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") BluetoothSocketConnection::BluetoothSocketConnection( - const DeviceUID& device_uid, const ApplicationHandle& app_handle, - TransportAdapterController* controller) - : ThreadedSocketConnection(device_uid, app_handle, controller) { -} + const DeviceUID& device_uid, + const ApplicationHandle& app_handle, + TransportAdapterController* controller) + : ThreadedSocketConnection(device_uid, app_handle, controller) {} -BluetoothSocketConnection::~BluetoothSocketConnection() { -} +BluetoothSocketConnection::~BluetoothSocketConnection() {} bool BluetoothSocketConnection::Establish(ConnectError** error) { LOG4CXX_AUTO_TRACE(logger_); @@ -65,21 +64,22 @@ bool BluetoothSocketConnection::Establish(ConnectError** error) { DeviceSptr device = controller()->FindDevice(device_handle()); BluetoothDevice* bluetooth_device = - static_cast<BluetoothDevice*>(device.get()); + static_cast<BluetoothDevice*>(device.get()); uint8_t rfcomm_channel; if (!bluetooth_device->GetRfcommChannel(application_handle(), &rfcomm_channel)) { LOG4CXX_DEBUG(logger_, - "Application " << application_handle() << " not found"); + "Application " << application_handle() << " not found"); *error = new ConnectError(); LOG4CXX_TRACE(logger_, "exit with FALSE"); return false; } - struct sockaddr_rc remoteSocketAddress = { 0 }; + struct sockaddr_rc remoteSocketAddress = {0}; remoteSocketAddress.rc_family = AF_BLUETOOTH; - memcpy(&remoteSocketAddress.rc_bdaddr, &bluetooth_device->address(), + memcpy(&remoteSocketAddress.rc_bdaddr, + &bluetooth_device->address(), sizeof(bdaddr_t)); remoteSocketAddress.rc_channel = rfcomm_channel; @@ -92,13 +92,14 @@ bool BluetoothSocketConnection::Establish(ConnectError** error) { rfcomm_socket = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM); if (-1 == rfcomm_socket) { LOG4CXX_ERROR_WITH_ERRNO(logger_, - "Failed to create RFCOMM socket for device " << device_handle()); + "Failed to create RFCOMM socket for device " + << device_handle()); *error = new ConnectError(); LOG4CXX_TRACE(logger_, "exit with FALSE"); return false; } connect_status = ::connect(rfcomm_socket, - (struct sockaddr*) &remoteSocketAddress, + (struct sockaddr*)&remoteSocketAddress, sizeof(remoteSocketAddress)); if (0 == connect_status) { LOG4CXX_DEBUG(logger_, "rfcomm Connect ok"); @@ -116,9 +117,11 @@ bool BluetoothSocketConnection::Establish(ConnectError** error) { } while (--attempts > 0); LOG4CXX_INFO(logger_, "rfcomm Connect attempts finished"); if (0 != connect_status) { - LOG4CXX_DEBUG(logger_, - "Failed to Connect to remote device " << BluetoothDevice::GetUniqueDeviceId( - remoteSocketAddress.rc_bdaddr) << " for session " << this); + LOG4CXX_DEBUG( + logger_, + "Failed to Connect to remote device " + << BluetoothDevice::GetUniqueDeviceId(remoteSocketAddress.rc_bdaddr) + << " for session " << this); *error = new ConnectError(); LOG4CXX_TRACE(logger_, "exit with FALSE"); return false; diff --git a/src/components/transport_manager/src/tcp/tcp_client_listener.cc b/src/components/transport_manager/src/tcp/tcp_client_listener.cc index 28a3c389da..a075b1afb7 100644 --- a/src/components/transport_manager/src/tcp/tcp_client_listener.cc +++ b/src/components/transport_manager/src/tcp/tcp_client_listener.cc @@ -42,12 +42,12 @@ #include <sys/sysctl.h> #include <sys/socket.h> #ifdef __linux__ -# include <linux/tcp.h> +#include <linux/tcp.h> #else // __linux__ -# include <sys/time.h> -# include <netinet/in.h> -# include <netinet/tcp.h> -# include <netinet/tcp_var.h> +#include <sys/time.h> +#include <netinet/in.h> +#include <netinet/tcp.h> +#include <netinet/tcp_var.h> #endif // __linux__ #include <sstream> @@ -66,12 +66,12 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TcpClientListener::TcpClientListener(TransportAdapterController* controller, const uint16_t port, const bool enable_keepalive) - : port_(port), - enable_keepalive_(enable_keepalive), - controller_(controller), - thread_(0), - socket_(-1), - thread_stop_requested_(false) { + : port_(port) + , enable_keepalive_(enable_keepalive) + , controller_(controller) + , thread_(0) + , socket_(-1) + , thread_stop_requested_(false) { thread_ = threads::CreateThread("TcpClientListener", new ListeningThreadDelegate(this)); } @@ -86,7 +86,7 @@ TransportAdapter::Error TcpClientListener::Init() { return TransportAdapter::FAIL; } - sockaddr_in server_address = { 0 }; + sockaddr_in server_address = {0}; server_address.sin_family = AF_INET; server_address.sin_port = htons(port_); server_address.sin_addr.s_addr = INADDR_ANY; @@ -94,7 +94,8 @@ TransportAdapter::Error TcpClientListener::Init() { int optval = 1; setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)); - if (bind(socket_, reinterpret_cast<sockaddr*>(&server_address), + if (bind(socket_, + reinterpret_cast<sockaddr*>(&server_address), sizeof(server_address)) != 0) { LOG4CXX_ERROR_WITH_ERRNO(logger_, "bind() failed"); return TransportAdapter::FAIL; @@ -148,8 +149,8 @@ void SetKeepaliveOptions(const int fd) { setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, &keepidle, sizeof(keepidle)); setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, &keepcnt, sizeof(keepcnt)); setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, &keepintvl, sizeof(keepintvl)); - setsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &user_timeout, - sizeof(user_timeout)); + setsockopt( + fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &user_timeout, sizeof(user_timeout)); #elif defined(__QNX__) // __linux__ // TODO(KKolodiy): Out of order! const int kMidLength = 4; @@ -177,7 +178,7 @@ void SetKeepaliveOptions(const int fd) { tval.tv_sec = keepidle; setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &yes, sizeof(yes)); setsockopt(fd, IPPROTO_TCP, TCP_KEEPALIVE, &tval, sizeof(tval)); -#endif // __QNX__ +#endif // __QNX__ } void TcpClientListener::Loop() { @@ -185,9 +186,8 @@ void TcpClientListener::Loop() { while (!thread_stop_requested_) { sockaddr_in client_address; socklen_t client_address_size = sizeof(client_address); - const int connection_fd = accept(socket_, - (struct sockaddr*) &client_address, - &client_address_size); + const int connection_fd = accept( + socket_, (struct sockaddr*)&client_address, &client_address_size); if (thread_stop_requested_) { LOG4CXX_DEBUG(logger_, "thread_stop_requested_"); close(connection_fd); @@ -206,7 +206,8 @@ void TcpClientListener::Loop() { } char device_name[32]; - strncpy(device_name, inet_ntoa(client_address.sin_addr), + strncpy(device_name, + inet_ntoa(client_address.sin_addr), sizeof(device_name) / sizeof(device_name[0])); LOG4CXX_INFO(logger_, "Connected client " << device_name); @@ -214,16 +215,15 @@ void TcpClientListener::Loop() { SetKeepaliveOptions(connection_fd); } - TcpDevice* tcp_device = new TcpDevice(client_address.sin_addr.s_addr, - device_name); + TcpDevice* tcp_device = + new TcpDevice(client_address.sin_addr.s_addr, device_name); DeviceSptr device = controller_->AddDevice(tcp_device); tcp_device = static_cast<TcpDevice*>(device.get()); - const ApplicationHandle app_handle = tcp_device->AddIncomingApplication( - connection_fd); + const ApplicationHandle app_handle = + tcp_device->AddIncomingApplication(connection_fd); - TcpSocketConnection* connection( - new TcpSocketConnection(device->unique_device_id(), app_handle, - controller_)); + TcpSocketConnection* connection(new TcpSocketConnection( + device->unique_device_id(), app_handle, controller_)); connection->set_socket(connection_fd); const TransportAdapter::Error error = connection->Start(); if (error != TransportAdapter::OK) { @@ -237,11 +237,12 @@ void TcpClientListener::StopLoop() { thread_stop_requested_ = true; // We need to connect to the listening socket to unblock accept() call int byesocket = socket(AF_INET, SOCK_STREAM, 0); - sockaddr_in server_address = { 0 }; + sockaddr_in server_address = {0}; server_address.sin_family = AF_INET; server_address.sin_port = htons(port_); server_address.sin_addr.s_addr = INADDR_ANY; - connect(byesocket, reinterpret_cast<sockaddr*>(&server_address), + connect(byesocket, + reinterpret_cast<sockaddr*>(&server_address), sizeof(server_address)); shutdown(byesocket, SHUT_RDWR); close(byesocket); @@ -250,8 +251,9 @@ void TcpClientListener::StopLoop() { TransportAdapter::Error TcpClientListener::StartListening() { LOG4CXX_AUTO_TRACE(logger_); if (thread_->is_running()) { - LOG4CXX_WARN(logger_, - "TransportAdapter::BAD_STATE. Listener has already been started"); + LOG4CXX_WARN( + logger_, + "TransportAdapter::BAD_STATE. Listener has already been started"); return TransportAdapter::BAD_STATE; } @@ -273,8 +275,7 @@ void TcpClientListener::ListeningThreadDelegate::threadMain() { TcpClientListener::ListeningThreadDelegate::ListeningThreadDelegate( TcpClientListener* parent) - : parent_(parent) { -} + : parent_(parent) {} TransportAdapter::Error TcpClientListener::StopListening() { LOG4CXX_AUTO_TRACE(logger_); diff --git a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc index 7c6c06ddc0..22653e8343 100644 --- a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc +++ b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc @@ -42,8 +42,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TcpConnectionFactory::TcpConnectionFactory( TransportAdapterController* controller) - : controller_(controller) { -} + : controller_(controller) {} TransportAdapter::Error TcpConnectionFactory::Init() { return TransportAdapter::OK; @@ -52,12 +51,12 @@ TransportAdapter::Error TcpConnectionFactory::Init() { TransportAdapter::Error TcpConnectionFactory::CreateConnection( const DeviceUID& device_uid, const ApplicationHandle& app_handle) { LOG4CXX_AUTO_TRACE(logger_); - LOG4CXX_DEBUG( - logger_, - "DeviceUID: " << &device_uid << ", ApplicationHandle: " << &app_handle); + LOG4CXX_DEBUG(logger_, + "DeviceUID: " << &device_uid + << ", ApplicationHandle: " << &app_handle); TcpServerOiginatedSocketConnection* connection( - new TcpServerOiginatedSocketConnection(device_uid, app_handle, - controller_)); + new TcpServerOiginatedSocketConnection( + device_uid, app_handle, controller_)); controller_->ConnectionCreated(connection, device_uid, app_handle); if (connection->Start() == TransportAdapter::OK) { LOG4CXX_DEBUG(logger_, "TCP connection initialised"); @@ -68,15 +67,13 @@ TransportAdapter::Error TcpConnectionFactory::CreateConnection( } } -void TcpConnectionFactory::Terminate() { -} +void TcpConnectionFactory::Terminate() {} bool TcpConnectionFactory::IsInitialised() const { return true; } -TcpConnectionFactory::~TcpConnectionFactory() { -} +TcpConnectionFactory::~TcpConnectionFactory() {} } // namespace transport_adapter } // namespace transport_manager diff --git a/src/components/transport_manager/src/tcp/tcp_device.cc b/src/components/transport_manager/src/tcp/tcp_device.cc index 3bd2a9a06a..d3f132759a 100644 --- a/src/components/transport_manager/src/tcp/tcp_device.cc +++ b/src/components/transport_manager/src/tcp/tcp_device.cc @@ -33,18 +33,16 @@ #include "utils/logger.h" #include "transport_manager/tcp/tcp_device.h" - namespace transport_manager { namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") - TcpDevice::TcpDevice(const in_addr_t& in_addr, const std::string& name) - : Device(name, name), - applications_mutex_(), - in_addr_(in_addr), - last_handle_(0) { + : Device(name, name) + , applications_mutex_() + , in_addr_(in_addr) + , last_handle_(0) { LOG4CXX_AUTO_TRACE(logger_); } @@ -69,7 +67,9 @@ ApplicationList TcpDevice::GetApplicationList() const { sync_primitives::AutoLock locker(applications_mutex_); ApplicationList app_list; for (std::map<ApplicationHandle, Application>::const_iterator it = - applications_.begin(); it != applications_.end(); ++it) { + applications_.begin(); + it != applications_.end(); + ++it) { app_list.push_back(it->first); } return app_list; @@ -117,8 +117,8 @@ TcpDevice::~TcpDevice() { int TcpDevice::GetApplicationSocket(const ApplicationHandle app_handle) const { LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "ApplicationHandle: " << app_handle); - std::map<ApplicationHandle, Application>::const_iterator it = applications_ - .find(app_handle); + std::map<ApplicationHandle, Application>::const_iterator it = + applications_.find(app_handle); if (applications_.end() == it) { LOG4CXX_WARN(logger_, "Application was not found"); return -1; @@ -134,8 +134,8 @@ int TcpDevice::GetApplicationSocket(const ApplicationHandle app_handle) const { int TcpDevice::GetApplicationPort(const ApplicationHandle app_handle) const { LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "ApplicationHandle: " << app_handle); - std::map<ApplicationHandle, Application>::const_iterator it = applications_ - .find(app_handle); + std::map<ApplicationHandle, Application>::const_iterator it = + applications_.find(app_handle); if (applications_.end() == it) { LOG4CXX_WARN(logger_, "Application was not found"); return -1; diff --git a/src/components/transport_manager/src/tcp/tcp_socket_connection.cc b/src/components/transport_manager/src/tcp/tcp_socket_connection.cc index c5d0e88d84..acab9f555f 100644 --- a/src/components/transport_manager/src/tcp/tcp_socket_connection.cc +++ b/src/components/transport_manager/src/tcp/tcp_socket_connection.cc @@ -51,24 +51,21 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TcpSocketConnection::TcpSocketConnection(const DeviceUID& device_uid, const ApplicationHandle& app_handle, TransportAdapterController* controller) - : ThreadedSocketConnection(device_uid, app_handle, controller) { -} + : ThreadedSocketConnection(device_uid, app_handle, controller) {} -TcpSocketConnection::~TcpSocketConnection() { -} +TcpSocketConnection::~TcpSocketConnection() {} bool TcpSocketConnection::Establish(ConnectError** error) { return true; } TcpServerOiginatedSocketConnection::TcpServerOiginatedSocketConnection( - const DeviceUID& device_uid, const ApplicationHandle& app_handle, + const DeviceUID& device_uid, + const ApplicationHandle& app_handle, TransportAdapterController* controller) - : ThreadedSocketConnection(device_uid, app_handle, controller) { -} + : ThreadedSocketConnection(device_uid, app_handle, controller) {} -TcpServerOiginatedSocketConnection::~TcpServerOiginatedSocketConnection() { -} +TcpServerOiginatedSocketConnection::~TcpServerOiginatedSocketConnection() {} bool TcpServerOiginatedSocketConnection::Establish(ConnectError** error) { LOG4CXX_AUTO_TRACE(logger_); @@ -84,9 +81,9 @@ bool TcpServerOiginatedSocketConnection::Establish(ConnectError** error) { const int port = tcp_device->GetApplicationPort(application_handle()); if (-1 == port) { - LOG4CXX_ERROR( - logger_, - "Application port for " << application_handle() << " not found"); + LOG4CXX_ERROR(logger_, + "Application port for " << application_handle() + << " not found"); *error = new ConnectError(); return false; } @@ -98,17 +95,17 @@ bool TcpServerOiginatedSocketConnection::Establish(ConnectError** error) { return false; } - struct sockaddr_in addr = { 0 }; + struct sockaddr_in addr = {0}; addr.sin_family = AF_INET; addr.sin_addr.s_addr = tcp_device->in_addr(); addr.sin_port = htons(port); LOG4CXX_DEBUG(logger_, - "Connecting " << inet_ntoa(addr.sin_addr) << ":" << port); - if (::connect(socket, (struct sockaddr*) &addr, sizeof(addr)) < 0) { - LOG4CXX_ERROR( - logger_, - "Failed to connect for application " << application_handle() << ", error " << errno); + "Connecting " << inet_ntoa(addr.sin_addr) << ":" << port); + if (::connect(socket, (struct sockaddr*)&addr, sizeof(addr)) < 0) { + LOG4CXX_ERROR(logger_, + "Failed to connect for application " << application_handle() + << ", error " << errno); *error = new ConnectError(); ::close(socket); return false; diff --git a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc index f520841a47..65afdf4fc0 100644 --- a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc +++ b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc @@ -49,19 +49,20 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") ThreadedSocketConnection::ThreadedSocketConnection( - const DeviceUID& device_id, const ApplicationHandle& app_handle, + const DeviceUID& device_id, + const ApplicationHandle& app_handle, TransportAdapterController* controller) - : read_fd_(-1), - write_fd_(-1), - controller_(controller), - frames_to_send_(), - frames_to_send_mutex_(), - socket_(-1), - terminate_flag_(false), - unexpected_disconnect_(false), - device_uid_(device_id), - app_handle_(app_handle), - thread_(NULL) { + : read_fd_(-1) + , write_fd_(-1) + , controller_(controller) + , frames_to_send_() + , frames_to_send_mutex_() + , socket_(-1) + , terminate_flag_(false) + , unexpected_disconnect_(false) + , device_uid_(device_id) + , app_handle_(app_handle) + , thread_(NULL) { const std::string thread_name = std::string("Socket ") + device_handle(); thread_ = threads::CreateThread(thread_name.c_str(), new SocketConnectionDelegate(this)); @@ -100,8 +101,8 @@ TransportAdapter::Error ThreadedSocketConnection::Start() { LOG4CXX_ERROR(logger_, "pipe creation failed"); return TransportAdapter::FAIL; } - const int fcntl_ret = fcntl(read_fd_, F_SETFL, - fcntl(read_fd_, F_GETFL) | O_NONBLOCK); + const int fcntl_ret = + fcntl(read_fd_, F_SETFL, fcntl(read_fd_, F_GETFL) | O_NONBLOCK); if (0 != fcntl_ret) { LOG4CXX_ERROR(logger_, "fcntl failed"); return TransportAdapter::FAIL; @@ -119,8 +120,8 @@ void ThreadedSocketConnection::Finalize() { LOG4CXX_AUTO_TRACE(logger_); if (unexpected_disconnect_) { LOG4CXX_DEBUG(logger_, "unexpected_disconnect"); - controller_->ConnectionAborted(device_handle(), application_handle(), - CommunicationError()); + controller_->ConnectionAborted( + device_handle(), application_handle(), CommunicationError()); } else { LOG4CXX_DEBUG(logger_, "not unexpected_disconnect"); controller_->ConnectionFinished(device_handle(), application_handle()); @@ -179,8 +180,8 @@ void ThreadedSocketConnection::threadMain() { LOG4CXX_INFO(logger_, "removing message"); ::protocol_handler::RawMessagePtr message = frames_to_send_.front(); frames_to_send_.pop(); - controller_->DataSendFailed(device_handle(), application_handle(), - message, DataSendError()); + controller_->DataSendFailed( + device_handle(), application_handle(), message, DataSendError()); } } @@ -199,8 +200,8 @@ void ThreadedSocketConnection::Transmit() { const bool is_queue_empty_on_poll = IsFramesToSendQueueEmpty(); - poll_fds[0].events = POLLIN | POLLPRI - | (is_queue_empty_on_poll ? 0 : POLLOUT); + poll_fds[0].events = + POLLIN | POLLPRI | (is_queue_empty_on_poll ? 0 : POLLOUT); poll_fds[1].fd = read_fd_; poll_fds[1].events = POLLIN | POLLPRI; @@ -210,10 +211,10 @@ void ThreadedSocketConnection::Transmit() { Abort(); return; } - LOG4CXX_DEBUG( - logger_, - "poll is ok " << this << " revents0: " << std::hex << poll_fds[0].revents << - " revents1:" << std::hex << poll_fds[1].revents); + LOG4CXX_DEBUG(logger_, + "poll is ok " << this << " revents0: " << std::hex + << poll_fds[0].revents << " revents1:" << std::hex + << poll_fds[1].revents); // error check if (0 != (poll_fds[1].revents & (POLLERR | POLLHUP | POLLNVAL))) { LOG4CXX_ERROR(logger_, @@ -276,13 +277,13 @@ bool ThreadedSocketConnection::Receive() { bytes_read = recv(socket_, buffer, sizeof(buffer), MSG_DONTWAIT); if (bytes_read > 0) { - LOG4CXX_DEBUG( - logger_, - "Received " << bytes_read << " bytes for connection " << this); + LOG4CXX_DEBUG(logger_, + "Received " << bytes_read << " bytes for connection " + << this); ::protocol_handler::RawMessagePtr frame( new protocol_handler::RawMessage(0, 0, buffer, bytes_read)); - controller_->DataReceiveDone(device_handle(), application_handle(), - frame); + controller_->DataReceiveDone( + device_handle(), application_handle(), frame); } else if (bytes_read < 0) { if (EAGAIN != errno && EWOULDBLOCK != errno) { LOG4CXX_ERROR_WITH_ERRNO(logger_, @@ -311,8 +312,8 @@ bool ThreadedSocketConnection::Send() { while (!frames_to_send_local.empty()) { LOG4CXX_INFO(logger_, "frames_to_send is not empty"); ::protocol_handler::RawMessagePtr frame = frames_to_send_local.front(); - const ssize_t bytes_sent = ::send(socket_, frame->data() + offset, - frame->data_size() - offset, 0); + const ssize_t bytes_sent = + ::send(socket_, frame->data() + offset, frame->data_size() - offset, 0); if (bytes_sent >= 0) { LOG4CXX_DEBUG(logger_, "bytes_sent >= 0"); @@ -327,8 +328,8 @@ bool ThreadedSocketConnection::Send() { LOG4CXX_ERROR_WITH_ERRNO(logger_, "Send failed for connection " << this); frames_to_send_local.pop(); offset = 0; - controller_->DataSendFailed(device_handle(), application_handle(), frame, - DataSendError()); + controller_->DataSendFailed( + device_handle(), application_handle(), frame, DataSendError()); } } @@ -337,8 +338,7 @@ bool ThreadedSocketConnection::Send() { ThreadedSocketConnection::SocketConnectionDelegate::SocketConnectionDelegate( ThreadedSocketConnection* connection) - : connection_(connection) { -} + : connection_(connection) {} void ThreadedSocketConnection::SocketConnectionDelegate::threadMain() { LOG4CXX_AUTO_TRACE(logger_); diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc index b11358144a..2ab19ade86 100644 --- a/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc +++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_listener_impl.cc @@ -42,236 +42,334 @@ namespace transport_manager { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") TransportAdapterListenerImpl::TransportAdapterListenerImpl( - TransportManager* manager, TransportAdapter* adapter) : - transport_manager_(manager), transport_adapter_(adapter) { -} + TransportManager* manager, TransportAdapter* adapter) + : transport_manager_(manager), transport_adapter_(adapter) {} void TransportAdapterListenerImpl::OnSearchDeviceDone( - const TransportAdapter* adapter) { + const TransportAdapter* adapter) { LOG4CXX_TRACE(logger_, "enter. adapter* " << adapter); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE, - transport_adapter_, "", 0, ::protocol_handler::RawMessagePtr(), BaseErrorPtr()); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_DONE, + transport_adapter_, + "", + 0, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr()); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnSearchDeviceFailed( - const TransportAdapter* adapter, const SearchDeviceError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", error: " << &error); + const TransportAdapter* adapter, const SearchDeviceError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", error: " << &error); SearchDeviceError* err = new SearchDeviceError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL, - transport_adapter_, "", 0, ::protocol_handler::RawMessagePtr(), BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_SEARCH_FAIL, + transport_adapter_, + "", + 0, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDeviceListUpdated( - const TransportAdapter* adapter) { + const TransportAdapter* adapter) { LOG4CXX_TRACE(logger_, "enter. adapter* " << adapter); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED, - transport_adapter_, "", 0, ::protocol_handler::RawMessagePtr(), BaseErrorPtr()); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_DEVICE_LIST_UPDATED, + transport_adapter_, + "", + 0, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr()); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnFindNewApplicationsRequest( - const TransportAdapter* adapter) { + const TransportAdapter* adapter) { LOG4CXX_TRACE(logger_, "enter. adapter* " << adapter); const TransportAdapterEvent event( - TransportAdapterListenerImpl::ON_FIND_NEW_APPLICATIONS_REQUEST, - transport_adapter_, "", 0, ::protocol_handler::RawMessagePtr(), BaseErrorPtr()); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::ON_FIND_NEW_APPLICATIONS_REQUEST, + transport_adapter_, + "", + 0, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr()); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnConnectDone( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& application_id) { - LOG4CXX_TRACE(logger_, "enter adapter*: " << adapter << ", device: " << &device << - ", application_id: " << &application_id); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& application_id) { + LOG4CXX_TRACE(logger_, + "enter adapter*: " << adapter << ", device: " << &device + << ", application_id: " << &application_id); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE, - transport_adapter_, device, application_id, ::protocol_handler::RawMessagePtr(), - BaseErrorPtr(new BaseError())); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_DONE, + transport_adapter_, + device, + application_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(new BaseError())); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnConnectFailed( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const ConnectError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", error: " << &error); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ConnectError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", error: " << &error); ConnectError* err = new ConnectError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL, - transport_adapter_, device, app_id, ::protocol_handler::RawMessagePtr(), BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_CONNECT_FAIL, + transport_adapter_, + device, + app_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDisconnectDone( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE, - transport_adapter_, device, app_id, ::protocol_handler::RawMessagePtr(), - BaseErrorPtr(new BaseError())); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_DONE, + transport_adapter_, + device, + app_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(new BaseError())); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDisconnectFailed( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const DisconnectError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", error: " << &error); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const DisconnectError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", error: " << &error); DisconnectError* err = new DisconnectError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL, - transport_adapter_, device, app_id, ::protocol_handler::RawMessagePtr(), BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_DISCONNECT_FAIL, + transport_adapter_, + device, + app_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDisconnectDeviceDone( - const TransportAdapter* adapter, const DeviceUID& device) { -} + const TransportAdapter* adapter, const DeviceUID& device) {} void TransportAdapterListenerImpl::OnDisconnectDeviceFailed( - const TransportAdapter* adapter, const DeviceUID& device, - const DisconnectDeviceError& error) { -} + const TransportAdapter* adapter, + const DeviceUID& device, + const DisconnectDeviceError& error) {} void TransportAdapterListenerImpl::OnDataReceiveDone( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const ::protocol_handler::RawMessagePtr data_container) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", data_container: " << data_container); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", data_container: " << data_container); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE, - transport_adapter_, device, app_id, data_container, - BaseErrorPtr(new BaseError())); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_DONE, + transport_adapter_, + device, + app_id, + data_container, + BaseErrorPtr(new BaseError())); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDataReceiveFailed( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const DataReceiveError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", error: " << &error); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const DataReceiveError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", error: " << &error); DataReceiveError* err = new DataReceiveError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL, - transport_adapter_, device, app_id, ::protocol_handler::RawMessagePtr(), BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_RECEIVED_FAIL, + transport_adapter_, + device, + app_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDataSendDone( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const ::protocol_handler::RawMessagePtr data_container) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", data_container: " << data_container); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", data_container: " << data_container); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE, - transport_adapter_, device, app_id, data_container, - new BaseError()); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_DONE, + transport_adapter_, + device, + app_id, + data_container, + new BaseError()); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnDataSendFailed( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id, const ::protocol_handler::RawMessagePtr data_container, - const DataSendError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id << ", data_container: " << data_container << ", error: " - << &error); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id, + const ::protocol_handler::RawMessagePtr data_container, + const DataSendError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id + << ", data_container: " << data_container + << ", error: " << &error); DataSendError* err = new DataSendError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL, - transport_adapter_, device, app_id, data_container, BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_SEND_FAIL, + transport_adapter_, + device, + app_id, + data_container, + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnConnectRequested( - const TransportAdapter* adapter, const DeviceUID& device_handle, - const ApplicationHandle& app_handle) { -} + const TransportAdapter* adapter, + const DeviceUID& device_handle, + const ApplicationHandle& app_handle) {} void TransportAdapterListenerImpl::OnUnexpectedDisconnect( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& application, const CommunicationError& error) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application: " << &application << ", error: " << &error); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& application, + const CommunicationError& error) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application: " << &application + << ", error: " << &error); CommunicationError* err = new CommunicationError(error); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT, - transport_adapter_, device, application, ::protocol_handler::RawMessagePtr(), BaseErrorPtr(err)); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_UNEXPECTED_DISCONNECT, + transport_adapter_, + device, + application, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(err)); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } void TransportAdapterListenerImpl::OnCommunicationError( - const TransportAdapter* adapter, const DeviceUID& device, - const ApplicationHandle& app_id) { - LOG4CXX_TRACE(logger_, "enter. adapter: " << adapter << ", device: " << &device << - ", application_id: " << &app_id); + const TransportAdapter* adapter, + const DeviceUID& device, + const ApplicationHandle& app_id) { + LOG4CXX_TRACE(logger_, + "enter. adapter: " << adapter << ", device: " << &device + << ", application_id: " << &app_id); const TransportAdapterEvent event( - TransportAdapterListenerImpl::EventTypeEnum::ON_COMMUNICATION_ERROR, - transport_adapter_, device, app_id, ::protocol_handler::RawMessagePtr(), - BaseErrorPtr(new BaseError())); - if (transport_manager_!= NULL && transport_manager::E_SUCCESS - != transport_manager_->ReceiveEventFromDevice(event)) { + TransportAdapterListenerImpl::EventTypeEnum::ON_COMMUNICATION_ERROR, + transport_adapter_, + device, + app_id, + ::protocol_handler::RawMessagePtr(), + BaseErrorPtr(new BaseError())); + if (transport_manager_ != NULL && + transport_manager::E_SUCCESS != + transport_manager_->ReceiveEventFromDevice(event)) { LOG4CXX_WARN(logger_, "Failed to receive event from device"); } LOG4CXX_TRACE(logger_, "exit"); } -} // namespace transport_manager +} // namespace transport_manager diff --git a/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc b/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc index 1ca1a54b32..33709cf0f6 100644 --- a/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc +++ b/src/components/transport_manager/src/usb/libusb/platform_usb_device.cc @@ -41,27 +41,29 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") - PlatformUsbDevice::PlatformUsbDevice( - uint8_t bus_number, uint8_t address, - const libusb_device_descriptor& device_descriptor, - libusb_device* device_libusb, libusb_device_handle* device_handle_libusb) - : bus_number_(bus_number), - address_(address), - vendor_id_(device_descriptor.idVendor), - product_id_(device_descriptor.idProduct), - device_descriptor_(device_descriptor), - libusb_device_handle_(device_handle_libusb), - libusb_device_(device_libusb) {} + uint8_t bus_number, + uint8_t address, + const libusb_device_descriptor& device_descriptor, + libusb_device* device_libusb, + libusb_device_handle* device_handle_libusb) + : bus_number_(bus_number) + , address_(address) + , vendor_id_(device_descriptor.idVendor) + , product_id_(device_descriptor.idProduct) + , device_descriptor_(device_descriptor) + , libusb_device_handle_(device_handle_libusb) + , libusb_device_(device_libusb) {} std::string PlatformUsbDevice::GetDescString(uint8_t index) const { LOG4CXX_TRACE(logger_, "enter. index: " << int(index)); unsigned char buf[128]; const int libusb_ret = libusb_get_string_descriptor_ascii( - libusb_device_handle_, index, buf, sizeof(buf)); + libusb_device_handle_, index, buf, sizeof(buf)); if (libusb_ret < 0) { - LOG4CXX_ERROR(logger_, "Failed to get USB string descriptor: " - << libusb_error_name(libusb_ret)); + LOG4CXX_ERROR(logger_, + "Failed to get USB string descriptor: " + << libusb_error_name(libusb_ret)); LOG4CXX_TRACE(logger_, "exit with empty string"); return ""; } diff --git a/src/components/transport_manager/src/usb/libusb/usb_connection.cc b/src/components/transport_manager/src/usb/libusb/usb_connection.cc index b8096514bc..409209b2b2 100644 --- a/src/components/transport_manager/src/usb/libusb/usb_connection.cc +++ b/src/components/transport_manager/src/usb/libusb/usb_connection.cc @@ -48,32 +48,30 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") - UsbConnection::UsbConnection(const DeviceUID& device_uid, const ApplicationHandle& app_handle, TransportAdapterController* controller, const UsbHandlerSptr usb_handler, PlatformUsbDevice* device) - : device_uid_(device_uid), - app_handle_(app_handle), - controller_(controller), - usb_handler_(usb_handler), - libusb_device_(device->GetLibusbDevice()), - device_handle_(device->GetLibusbHandle()), - in_endpoint_(0), - in_endpoint_max_packet_size_(0), - out_endpoint_(0), - out_endpoint_max_packet_size_(0), - in_buffer_(NULL), - in_transfer_(NULL), - out_transfer_(0), - out_messages_(), - current_out_message_(), - bytes_sent_(0), - disconnecting_(false), - waiting_in_transfer_cancel_(false), - waiting_out_transfer_cancel_(false) { -} + : device_uid_(device_uid) + , app_handle_(app_handle) + , controller_(controller) + , usb_handler_(usb_handler) + , libusb_device_(device->GetLibusbDevice()) + , device_handle_(device->GetLibusbHandle()) + , in_endpoint_(0) + , in_endpoint_max_packet_size_(0) + , out_endpoint_(0) + , out_endpoint_max_packet_size_(0) + , in_buffer_(NULL) + , in_transfer_(NULL) + , out_transfer_(0) + , out_messages_() + , current_out_message_() + , bytes_sent_(0) + , disconnecting_(false) + , waiting_in_transfer_cancel_(false) + , waiting_out_transfer_cancel_(false) {} UsbConnection::~UsbConnection() { LOG4CXX_TRACE(logger_, "enter with this" << this); @@ -94,22 +92,30 @@ void OutTransferCallback(libusb_transfer* transfer) { bool UsbConnection::PostInTransfer() { LOG4CXX_TRACE(logger_, "enter"); - libusb_fill_bulk_transfer(in_transfer_, device_handle_, in_endpoint_, - in_buffer_, in_endpoint_max_packet_size_, - InTransferCallback, this, 0); + libusb_fill_bulk_transfer(in_transfer_, + device_handle_, + in_endpoint_, + in_buffer_, + in_endpoint_max_packet_size_, + InTransferCallback, + this, + 0); const int libusb_ret = libusb_submit_transfer(in_transfer_); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: " - << libusb_error_name(libusb_ret)); - LOG4CXX_TRACE(logger_, - "exit with FALSE. Condition: LIBUSB_SUCCESS != libusb_submit_transfer"); + LOG4CXX_ERROR( + logger_, + "libusb_submit_transfer failed: " << libusb_error_name(libusb_ret)); + LOG4CXX_TRACE( + logger_, + "exit with FALSE. Condition: LIBUSB_SUCCESS != libusb_submit_transfer"); return false; } LOG4CXX_TRACE(logger_, "exit with TRUE"); return true; } -std::string hex_data(const unsigned char* const buffer, const int actual_length) { +std::string hex_data(const unsigned char* const buffer, + const int actual_length) { std::ostringstream hexdata; for (int i = 0; i < actual_length; ++i) { hexdata << " " << std::hex << std::setw(2) << std::setfill('0') @@ -122,23 +128,26 @@ void UsbConnection::OnInTransfer(libusb_transfer* transfer) { LOG4CXX_TRACE(logger_, "enter with Libusb_transfer*: " << transfer); if (transfer->status == LIBUSB_TRANSFER_COMPLETED) { LOG4CXX_DEBUG(logger_, - "USB incoming transfer, size:" << transfer->actual_length - << ", data:" << hex_data(transfer->buffer, transfer->actual_length)); + "USB incoming transfer, size:" + << transfer->actual_length << ", data:" + << hex_data(transfer->buffer, transfer->actual_length)); ::protocol_handler::RawMessagePtr data(new protocol_handler::RawMessage( - 0, 0, in_buffer_, transfer->actual_length)); + 0, 0, in_buffer_, transfer->actual_length)); controller_->DataReceiveDone(device_uid_, app_handle_, data); } else { - LOG4CXX_ERROR(logger_, "USB incoming transfer failed: " - << libusb_error_name(transfer->status)); - controller_->DataReceiveFailed(device_uid_, app_handle_, - DataReceiveError()); + LOG4CXX_ERROR(logger_, + "USB incoming transfer failed: " + << libusb_error_name(transfer->status)); + controller_->DataReceiveFailed( + device_uid_, app_handle_, DataReceiveError()); } if (disconnecting_) { waiting_in_transfer_cancel_ = false; } else { if (!PostInTransfer()) { - LOG4CXX_ERROR(logger_, "USB incoming transfer failed with " - << "LIBUSB_TRANSFER_NO_DEVICE. Abort connection."); + LOG4CXX_ERROR(logger_, + "USB incoming transfer failed with " + << "LIBUSB_TRANSFER_NO_DEVICE. Abort connection."); AbortConnection(); } } @@ -166,17 +175,24 @@ bool UsbConnection::PostOutTransfer() { LOG4CXX_TRACE(logger_, "exit with FALSE. Condition: 0 == out_transfer_"); return false; } - libusb_fill_bulk_transfer(out_transfer_, device_handle_, out_endpoint_, + libusb_fill_bulk_transfer(out_transfer_, + device_handle_, + out_endpoint_, current_out_message_->data() + bytes_sent_, current_out_message_->data_size() - bytes_sent_, - OutTransferCallback, this, 0); + OutTransferCallback, + this, + 0); const int libusb_ret = libusb_submit_transfer(out_transfer_); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: " - << libusb_error_name(libusb_ret) << ". Abort connection."); + LOG4CXX_ERROR( + logger_, + "libusb_submit_transfer failed: " << libusb_error_name(libusb_ret) + << ". Abort connection."); AbortConnection(); - LOG4CXX_TRACE(logger_, "exit with FALSE. Condition: " - << "LIBUSB_SUCCESS != libusb_fill_bulk_transfer"); + LOG4CXX_TRACE(logger_, + "exit with FALSE. Condition: " + << "LIBUSB_SUCCESS != libusb_fill_bulk_transfer"); return false; } LOG4CXX_TRACE(logger_, "exit with TRUE"); @@ -189,16 +205,18 @@ void UsbConnection::OnOutTransfer(libusb_transfer* transfer) { if (transfer->status == LIBUSB_TRANSFER_COMPLETED) { bytes_sent_ += transfer->actual_length; if (bytes_sent_ == current_out_message_->data_size()) { - LOG4CXX_DEBUG(logger_, "USB out transfer, data sent: " - << current_out_message_.get()); + LOG4CXX_DEBUG( + logger_, + "USB out transfer, data sent: " << current_out_message_.get()); controller_->DataSendDone(device_uid_, app_handle_, current_out_message_); PopOutMessage(); } } else { - LOG4CXX_ERROR(logger_, "USB out transfer failed: " - << libusb_error_name(transfer->status)); - controller_->DataSendFailed(device_uid_, app_handle_, current_out_message_, - DataSendError()); + LOG4CXX_ERROR( + logger_, + "USB out transfer failed: " << libusb_error_name(transfer->status)); + controller_->DataSendFailed( + device_uid_, app_handle_, current_out_message_, DataSendError()); PopOutMessage(); } if (!current_out_message_.valid()) { @@ -209,11 +227,13 @@ void UsbConnection::OnOutTransfer(libusb_transfer* transfer) { LOG4CXX_TRACE(logger_, "exit"); } -TransportAdapter::Error UsbConnection::SendData(::protocol_handler::RawMessagePtr message) { +TransportAdapter::Error UsbConnection::SendData( + ::protocol_handler::RawMessagePtr message) { LOG4CXX_TRACE(logger_, "enter with RawMessagePtr: " << message.get()); if (disconnecting_) { - LOG4CXX_TRACE(logger_, "exit with TransportAdapter::BAD_STATE. Condition: " - << "disconnecting_"); + LOG4CXX_TRACE(logger_, + "exit with TransportAdapter::BAD_STATE. Condition: " + << "disconnecting_"); return TransportAdapter::BAD_STATE; } sync_primitives::AutoLock locker(out_messages_mutex_); @@ -222,9 +242,11 @@ TransportAdapter::Error UsbConnection::SendData(::protocol_handler::RawMessagePt } else { current_out_message_ = message; if (!PostOutTransfer()) { - controller_->DataSendFailed(device_uid_, app_handle_, message, - DataSendError()); - LOG4CXX_TRACE(logger_, "exit with TransportAdapter::FAIL. Condition: !PostOutTransfer()"); + controller_->DataSendFailed( + device_uid_, app_handle_, message, DataSendError()); + LOG4CXX_TRACE( + logger_, + "exit with TransportAdapter::FAIL. Condition: !PostOutTransfer()"); return TransportAdapter::FAIL; } } @@ -240,19 +262,22 @@ void UsbConnection::Finalise() { disconnecting_ = true; if (out_transfer_) { waiting_out_transfer_cancel_ = true; - if ( LIBUSB_SUCCESS != libusb_cancel_transfer(out_transfer_)) { + if (LIBUSB_SUCCESS != libusb_cancel_transfer(out_transfer_)) { waiting_out_transfer_cancel_ = false; } } if (in_transfer_) { waiting_in_transfer_cancel_ = true; - if ( LIBUSB_SUCCESS != libusb_cancel_transfer(in_transfer_)) { + if (LIBUSB_SUCCESS != libusb_cancel_transfer(in_transfer_)) { waiting_in_transfer_cancel_ = false; } } - for (std::list<protocol_handler::RawMessagePtr>::iterator it = out_messages_.begin(); - it != out_messages_.end(); it = out_messages_.erase(it)) { - controller_->DataSendFailed(device_uid_, app_handle_, *it, DataSendError()); + for (std::list<protocol_handler::RawMessagePtr>::iterator it = + out_messages_.begin(); + it != out_messages_.end(); + it = out_messages_.erase(it)) { + controller_->DataSendFailed( + device_uid_, app_handle_, *it, DataSendError()); } } while (waiting_in_transfer_cancel_ || waiting_out_transfer_cancel_) { @@ -263,7 +288,8 @@ void UsbConnection::Finalise() { void UsbConnection::AbortConnection() { LOG4CXX_TRACE(logger_, "enter"); - controller_->ConnectionAborted(device_uid_, app_handle_, CommunicationError()); + controller_->ConnectionAborted( + device_uid_, app_handle_, CommunicationError()); Disconnect(); LOG4CXX_TRACE(logger_, "exit"); } @@ -292,8 +318,8 @@ bool UsbConnection::Init() { controller_->ConnectDone(device_uid_, app_handle_); if (!PostInTransfer()) { LOG4CXX_ERROR(logger_, "PostInTransfer failed. Call ConnectionAborted"); - controller_->ConnectionAborted(device_uid_, app_handle_, - CommunicationError()); + controller_->ConnectionAborted( + device_uid_, app_handle_, CommunicationError()); LOG4CXX_TRACE(logger_, "exit with FALSE. Condition: !PostInTransfer()"); return false; } @@ -306,11 +332,13 @@ bool UsbConnection::FindEndpoints() { LOG4CXX_TRACE(logger_, "enter"); struct libusb_config_descriptor* config; const int libusb_ret = - libusb_get_active_config_descriptor(libusb_device_, &config); + libusb_get_active_config_descriptor(libusb_device_, &config); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_ERROR(logger_, "libusb_get_active_config_descriptor failed: " - << libusb_error_name(libusb_ret)); - LOG4CXX_TRACE(logger_, "exit with FALSE. Condition: LIBUSB_SUCCESS != libusb_ret"); + LOG4CXX_ERROR(logger_, + "libusb_get_active_config_descriptor failed: " + << libusb_error_name(libusb_ret)); + LOG4CXX_TRACE(logger_, + "exit with FALSE. Condition: LIBUSB_SUCCESS != libusb_ret"); return false; } @@ -323,10 +351,10 @@ bool UsbConnection::FindEndpoints() { const libusb_interface_descriptor& iface_desc = interface.altsetting[i]; for (int i = 0; i < iface_desc.bNumEndpoints; ++i) { const libusb_endpoint_descriptor& endpoint_desc = - iface_desc.endpoint[i]; + iface_desc.endpoint[i]; const uint8_t endpoint_dir = - endpoint_desc.bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK; + endpoint_desc.bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK; if (find_in_endpoint && endpoint_dir == LIBUSB_ENDPOINT_IN) { in_endpoint_ = endpoint_desc.bEndpointAddress; in_endpoint_max_packet_size_ = endpoint_desc.wMaxPacketSize; diff --git a/src/components/transport_manager/src/usb/libusb/usb_handler.cc b/src/components/transport_manager/src/usb/libusb/usb_handler.cc index 776bb56c5d..c62e80d1be 100644 --- a/src/components/transport_manager/src/usb/libusb/usb_handler.cc +++ b/src/components/transport_manager/src/usb/libusb/usb_handler.cc @@ -76,15 +76,15 @@ class UsbHandler::ControlTransferSequenceState { }; UsbHandler::UsbHandler() - : shutdown_requested_(false), - thread_(NULL), - usb_device_listeners_(), - devices_(), - transfer_sequences_(), - device_handles_to_close_(), - libusb_context_(NULL), - arrived_callback_handle_(), - left_callback_handle_() { + : shutdown_requested_(false) + , thread_(NULL) + , usb_device_listeners_() + , devices_() + , transfer_sequences_() + , device_handles_to_close_() + , libusb_context_(NULL) + , arrived_callback_handle_() + , left_callback_handle_() { thread_ = threads::CreateThread("UsbHandler", new UsbHandlerDelegate(this)); } @@ -113,7 +113,8 @@ void UsbHandler::DeviceArrived(libusb_device* device_libusb) { libusb_device_descriptor descriptor; int libusb_ret = libusb_get_device_descriptor(device_libusb, &descriptor); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_ERROR(logger_, "libusb_get_device_descriptor failed: " << libusb_ret); + LOG4CXX_ERROR(logger_, + "libusb_get_device_descriptor failed: " << libusb_ret); LOG4CXX_TRACE(logger_, "exit. Condition: LIBUSB_SUCCESS != libusb_ret"); return; } @@ -121,7 +122,8 @@ void UsbHandler::DeviceArrived(libusb_device* device_libusb) { libusb_device_handle* device_handle_libusb; libusb_ret = libusb_open(device_libusb, &device_handle_libusb); if (libusb_ret != LIBUSB_SUCCESS) { - LOG4CXX_ERROR(logger_, "libusb_open failed: " << libusb_error_name(libusb_ret)); + LOG4CXX_ERROR(logger_, + "libusb_open failed: " << libusb_error_name(libusb_ret)); LOG4CXX_TRACE(logger_, "exit. Condition: libusb_ret != LIBUSB_SUCCESS"); return; } @@ -129,17 +131,20 @@ void UsbHandler::DeviceArrived(libusb_device* device_libusb) { int configuration; libusb_ret = libusb_get_configuration(device_handle_libusb, &configuration); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_INFO(logger_, "libusb_get_configuration failed: " << libusb_error_name( - libusb_ret)); + LOG4CXX_INFO( + logger_, + "libusb_get_configuration failed: " << libusb_error_name(libusb_ret)); LOG4CXX_TRACE(logger_, "exit. Condition: LIBUSB_SUCCESS != libusb_ret"); return; } if (configuration != kUsbConfiguration) { - libusb_ret = libusb_set_configuration(device_handle_libusb, kUsbConfiguration); + libusb_ret = + libusb_set_configuration(device_handle_libusb, kUsbConfiguration); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_INFO(logger_, "libusb_set_configuration failed: " << libusb_error_name( - libusb_ret)); + LOG4CXX_INFO( + logger_, + "libusb_set_configuration failed: " << libusb_error_name(libusb_ret)); LOG4CXX_TRACE(logger_, "exit. Condition: LIBUSB_SUCCESS != libusb_ret"); return; } @@ -147,20 +152,25 @@ void UsbHandler::DeviceArrived(libusb_device* device_libusb) { libusb_ret = libusb_claim_interface(device_handle_libusb, 0); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_INFO(logger_, "libusb_claim_interface failed: " << libusb_error_name(libusb_ret)); + LOG4CXX_INFO( + logger_, + "libusb_claim_interface failed: " << libusb_error_name(libusb_ret)); CloseDeviceHandle(device_handle_libusb); LOG4CXX_TRACE(logger_, "exit. Condition: LIBUSB_SUCCESS != libusb_ret"); return; } - PlatformUsbDevice* device(new PlatformUsbDevice(bus_number, device_address, - descriptor, device_libusb, - device_handle_libusb)); + PlatformUsbDevice* device(new PlatformUsbDevice(bus_number, + device_address, + descriptor, + device_libusb, + device_handle_libusb)); devices_.push_back(device); for (std::list<UsbDeviceListener*>::iterator it = - usb_device_listeners_.begin(); - it != usb_device_listeners_.end(); ++it) { + usb_device_listeners_.begin(); + it != usb_device_listeners_.end(); + ++it) { (*it)->OnDeviceArrived(device); } LOG4CXX_TRACE(logger_, "exit"); @@ -181,8 +191,9 @@ void UsbHandler::DeviceLeft(libusb_device* device_libusb) { } for (std::list<UsbDeviceListener*>::iterator it = - usb_device_listeners_.begin(); - it != usb_device_listeners_.end(); ++it) { + usb_device_listeners_.begin(); + it != usb_device_listeners_.end(); + ++it) { (*it)->OnDeviceLeft(device); } @@ -202,12 +213,13 @@ void UsbHandler::DeviceLeft(libusb_device* device_libusb) { } void UsbHandler::StartControlTransferSequence( - UsbControlTransferSequence* sequence, PlatformUsbDevice* device) { - LOG4CXX_TRACE(logger_, "enter. UsbControlTransferSequence* " << sequence << - "PlatformUsbDevice* " << device); + UsbControlTransferSequence* sequence, PlatformUsbDevice* device) { + LOG4CXX_TRACE(logger_, + "enter. UsbControlTransferSequence* " + << sequence << "PlatformUsbDevice* " << device); TransferSequences::iterator it = transfer_sequences_.insert( - transfer_sequences_.end(), - new ControlTransferSequenceState(this, sequence, device)); + transfer_sequences_.end(), + new ControlTransferSequenceState(this, sequence, device)); SubmitControlTransfer(*it); LOG4CXX_TRACE(logger_, "exit"); } @@ -216,26 +228,32 @@ void UsbHandler::CloseDeviceHandle(libusb_device_handle* device_handle) { device_handles_to_close_.push_back(device_handle); } -int ArrivedCallback(libusb_context* context, libusb_device* device, - libusb_hotplug_event event, void* data) { - LOG4CXX_TRACE(logger_, "enter. libusb device arrived (bus number " - << static_cast<int>(libusb_get_bus_number(device)) - << ", device address " - << static_cast<int>( - libusb_get_device_address(device)) << ")"); +int ArrivedCallback(libusb_context* context, + libusb_device* device, + libusb_hotplug_event event, + void* data) { + LOG4CXX_TRACE(logger_, + "enter. libusb device arrived (bus number " + << static_cast<int>(libusb_get_bus_number(device)) + << ", device address " + << static_cast<int>(libusb_get_device_address(device)) + << ")"); UsbHandler* usb_handler = static_cast<UsbHandler*>(data); usb_handler->DeviceArrived(device); LOG4CXX_TRACE(logger_, "exit with 0"); return 0; } -int LeftCallback(libusb_context* context, libusb_device* device, - libusb_hotplug_event event, void* data) { - LOG4CXX_TRACE(logger_, "enter libusb device left (bus number " - << static_cast<int>(libusb_get_bus_number(device)) - << ", device address " - << static_cast<int>( - libusb_get_device_address(device)) << ")"); +int LeftCallback(libusb_context* context, + libusb_device* device, + libusb_hotplug_event event, + void* data) { + LOG4CXX_TRACE(logger_, + "enter libusb device left (bus number " + << static_cast<int>(libusb_get_bus_number(device)) + << ", device address " + << static_cast<int>(libusb_get_device_address(device)) + << ")"); UsbHandler* usb_handler = static_cast<UsbHandler*>(data); usb_handler->DeviceLeft(device); LOG4CXX_TRACE(logger_, "exit with 0"); @@ -249,49 +267,63 @@ TransportAdapter::Error UsbHandler::Init() { if (LIBUSB_SUCCESS != libusb_ret) { LOG4CXX_ERROR(logger_, "libusb_init failed: " << libusb_ret); LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS != libusb_ret"); + "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS " + "!= libusb_ret"); return TransportAdapter::FAIL; } if (!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)) { LOG4CXX_ERROR(logger_, "LIBUSB_CAP_HAS_HOTPLUG not supported"); LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::FAIL. Condition: !libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)"); + "exit with TransportAdapter::FAIL. Condition: " + "!libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG)"); return TransportAdapter::FAIL; } - libusb_ret = libusb_hotplug_register_callback( - libusb_context_, LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED, - LIBUSB_HOTPLUG_ENUMERATE, LIBUSB_HOTPLUG_MATCH_ANY, - LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY, ArrivedCallback, this, - &arrived_callback_handle_); + libusb_ret = + libusb_hotplug_register_callback(libusb_context_, + LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED, + LIBUSB_HOTPLUG_ENUMERATE, + LIBUSB_HOTPLUG_MATCH_ANY, + LIBUSB_HOTPLUG_MATCH_ANY, + LIBUSB_HOTPLUG_MATCH_ANY, + ArrivedCallback, + this, + &arrived_callback_handle_); if (LIBUSB_SUCCESS != libusb_ret) { LOG4CXX_ERROR(logger_, "libusb_hotplug_register_callback failed: " << libusb_ret); LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS != libusb_ret"); + "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS " + "!= libusb_ret"); return TransportAdapter::FAIL; } - libusb_ret = libusb_hotplug_register_callback( - libusb_context_, LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT, - static_cast<libusb_hotplug_flag>(0), LIBUSB_HOTPLUG_MATCH_ANY, - LIBUSB_HOTPLUG_MATCH_ANY, LIBUSB_HOTPLUG_MATCH_ANY, LeftCallback, this, - &left_callback_handle_); + libusb_ret = + libusb_hotplug_register_callback(libusb_context_, + LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT, + static_cast<libusb_hotplug_flag>(0), + LIBUSB_HOTPLUG_MATCH_ANY, + LIBUSB_HOTPLUG_MATCH_ANY, + LIBUSB_HOTPLUG_MATCH_ANY, + LeftCallback, + this, + &left_callback_handle_); if (LIBUSB_SUCCESS != libusb_ret) { LOG4CXX_ERROR(logger_, "libusb_hotplug_register_callback failed: " << libusb_ret); LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS != libusb_ret"); + "exit with TransportAdapter::FAIL. Condition: LIBUSB_SUCCESS " + "!= libusb_ret"); return TransportAdapter::FAIL; } if (!thread_->start()) { - LOG4CXX_ERROR(logger_, "USB device scanner thread start failed, error code"); - LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::FAIL."); + LOG4CXX_ERROR(logger_, + "USB device scanner thread start failed, error code"); + LOG4CXX_TRACE(logger_, "exit with TransportAdapter::FAIL."); return TransportAdapter::FAIL; } return TransportAdapter::OK; @@ -315,7 +347,7 @@ void UsbHandler::Thread() { } for (std::list<libusb_device_handle*>::iterator it = - device_handles_to_close_.begin(); + device_handles_to_close_.begin(); it != device_handles_to_close_.end(); it = device_handles_to_close_.erase(it)) { libusb_close(*it); @@ -327,14 +359,16 @@ void UsbHandler::Thread() { void UsbTransferSequenceCallback(libusb_transfer* transfer) { LOG4CXX_TRACE(logger_, "enter. libusb_transfer* " << transfer); UsbHandler::ControlTransferSequenceState* sequence_state = - static_cast<UsbHandler::ControlTransferSequenceState*>(transfer->user_data); + static_cast<UsbHandler::ControlTransferSequenceState*>( + transfer->user_data); sequence_state->usb_handler()->ControlTransferCallback(transfer); LOG4CXX_TRACE(logger_, "exit"); } void UsbHandler::SubmitControlTransfer( - ControlTransferSequenceState* sequence_state) { - LOG4CXX_TRACE(logger_, "enter. ControlTransferSequenceState* " << sequence_state); + ControlTransferSequenceState* sequence_state) { + LOG4CXX_TRACE(logger_, + "enter. ControlTransferSequenceState* " << sequence_state); UsbControlTransfer* transfer = sequence_state->CurrentTransfer(); if (NULL == transfer) { LOG4CXX_TRACE(logger_, "exit. Condition: NULL == transfer"); @@ -366,7 +400,7 @@ void UsbHandler::SubmitControlTransfer( const uint16_t length = transfer->Length(); unsigned char* buffer = - static_cast<unsigned char*>(malloc(length + LIBUSB_CONTROL_SETUP_SIZE)); + static_cast<unsigned char*>(malloc(length + LIBUSB_CONTROL_SETUP_SIZE)); if (NULL == buffer) { LOG4CXX_ERROR(logger_, "buffer allocation failed"); libusb_free_transfer(libusb_transfer); @@ -375,22 +409,26 @@ void UsbHandler::SubmitControlTransfer( return; } - libusb_fill_control_setup(buffer, request_type | endpoint_direction, request, - value, index, length); + libusb_fill_control_setup( + buffer, request_type | endpoint_direction, request, value, index, length); if (0 != length && endpoint_direction == LIBUSB_ENDPOINT_OUT) { const char* data = static_cast<UsbControlOutTransfer*>(transfer)->Data(); memcpy(buffer + LIBUSB_CONTROL_SETUP_SIZE, data, length); } - libusb_fill_control_transfer( - libusb_transfer, sequence_state->device()->GetLibusbHandle(), buffer, - UsbTransferSequenceCallback, sequence_state, 0); + libusb_fill_control_transfer(libusb_transfer, + sequence_state->device()->GetLibusbHandle(), + buffer, + UsbTransferSequenceCallback, + sequence_state, + 0); libusb_transfer->flags = LIBUSB_TRANSFER_FREE_BUFFER; const int libusb_ret = libusb_submit_transfer(libusb_transfer); if (LIBUSB_SUCCESS != libusb_ret) { - LOG4CXX_ERROR(logger_, "libusb_submit_transfer failed: " - << libusb_error_name(libusb_ret)); + LOG4CXX_ERROR( + logger_, + "libusb_submit_transfer failed: " << libusb_error_name(libusb_ret)); libusb_free_transfer(libusb_transfer); sequence_state->Finish(); } @@ -400,7 +438,7 @@ void UsbHandler::SubmitControlTransfer( void UsbHandler::ControlTransferCallback(libusb_transfer* transfer) { LOG4CXX_TRACE(logger_, "enter. libusb_transfer* " << transfer); ControlTransferSequenceState* sequence_state = - static_cast<ControlTransferSequenceState*>(transfer->user_data); + static_cast<ControlTransferSequenceState*>(transfer->user_data); if (transfer->status == LIBUSB_TRANSFER_COMPLETED) { LOG4CXX_INFO(logger_, "USB control transfer completed"); UsbControlTransfer* current_transfer = sequence_state->CurrentTransfer(); @@ -408,8 +446,8 @@ void UsbHandler::ControlTransferCallback(libusb_transfer* transfer) { if (current_transfer && current_transfer->Direction() == UsbControlTransfer::IN) { submit_next = - static_cast<UsbControlInTransfer*>(current_transfer) - ->OnCompleted(libusb_control_transfer_get_data(transfer)); + static_cast<UsbControlInTransfer*>(current_transfer) + ->OnCompleted(libusb_control_transfer_get_data(transfer)); } sequence_state->Next(); @@ -427,13 +465,14 @@ void UsbHandler::ControlTransferCallback(libusb_transfer* transfer) { } UsbHandler::ControlTransferSequenceState::ControlTransferSequenceState( - UsbHandler* usb_handler, UsbControlTransferSequence* sequence, - PlatformUsbDevice* device) - : usb_handler_(usb_handler), - device_(device), - finished_(false), - sequence_(sequence), - current_transfer_(sequence->transfers().begin()) {} + UsbHandler* usb_handler, + UsbControlTransferSequence* sequence, + PlatformUsbDevice* device) + : usb_handler_(usb_handler) + , device_(device) + , finished_(false) + , sequence_(sequence) + , current_transfer_(sequence->transfers().begin()) {} UsbHandler::ControlTransferSequenceState::~ControlTransferSequenceState() { delete sequence_; @@ -448,16 +487,21 @@ UsbControlTransfer* UsbHandler::ControlTransferSequenceState::Next() { if (++current_transfer_ == sequence_->transfers().end()) { Finish(); LOG4CXX_TRACE(logger_, - "exit with NULL. Condition: ++current_transfer_ == sequence_->transfers().end()"); + "exit with NULL. Condition: ++current_transfer_ == " + "sequence_->transfers().end()"); return NULL; } else { - LOG4CXX_TRACE(logger_, "exit with UsbControlTransfer* " << *current_transfer_ << - ".Condition: ++current_transfer_ !== sequence_->transfers().end()"); + LOG4CXX_TRACE(logger_, + "exit with UsbControlTransfer* " + << *current_transfer_ + << ".Condition: ++current_transfer_ !== " + "sequence_->transfers().end()"); return *current_transfer_; } } -UsbControlTransfer* UsbHandler::ControlTransferSequenceState::CurrentTransfer() { +UsbControlTransfer* +UsbHandler::ControlTransferSequenceState::CurrentTransfer() { return finished_ ? NULL : *current_transfer_; } @@ -465,10 +509,8 @@ void UsbHandler::ControlTransferSequenceState::Finish() { finished_ = true; } -UsbHandler::UsbHandlerDelegate::UsbHandlerDelegate( - UsbHandler* handler) - : handler_(handler) { -} +UsbHandler::UsbHandlerDelegate::UsbHandlerDelegate(UsbHandler* handler) + : handler_(handler) {} void UsbHandler::UsbHandlerDelegate::threadMain() { LOG4CXX_AUTO_TRACE(logger_); diff --git a/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc b/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc index 132fe52cae..e85ab12b10 100644 --- a/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc +++ b/src/components/transport_manager/src/usb/qnx/platform_usb_device.cc @@ -44,15 +44,16 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") PlatformUsbDevice::PlatformUsbDevice( - usbd_device_instance_t* instance, usbd_device* device, + usbd_device_instance_t* instance, + usbd_device* device, const usbd_device_descriptor_t& device_descriptor) - : bus_number_(instance->path), - address_(instance->devno), - vendor_id_(instance->ident.vendor), - product_id_(instance->ident.device), - device_descriptor_(device_descriptor), - usbd_device_instance_(*instance), - usbd_device_(device) {} + : bus_number_(instance->path) + , address_(instance->devno) + , vendor_id_(instance->ident.vendor) + , product_id_(instance->ident.device) + , device_descriptor_(device_descriptor) + , usbd_device_instance_(*instance) + , usbd_device_(device) {} std::string PlatformUsbDevice::GetDescString(uint8_t index) const { char* str = usbd_string(usbd_device_, index, 0); diff --git a/src/components/transport_manager/src/usb/qnx/usb_connection.cc b/src/components/transport_manager/src/usb/qnx/usb_connection.cc index a3844b2e04..516a367ebc 100644 --- a/src/components/transport_manager/src/usb/qnx/usb_connection.cc +++ b/src/components/transport_manager/src/usb/qnx/usb_connection.cc @@ -52,30 +52,31 @@ UsbConnection::UsbConnection(const DeviceUID& device_uid, TransportAdapterController* controller, const UsbHandlerSptr libusb_handler, PlatformUsbDevice* device) - : device_uid_(device_uid), - app_handle_(app_handle), - controller_(controller), - libusb_handler_(libusb_handler), - usbd_device_(device->GetUsbdDevice()), - in_pipe_(NULL), - out_pipe_(NULL), - in_buffer_(NULL), - out_buffer_(NULL), - in_urb_(NULL), - out_urb_(NULL), - out_messages_(), - current_out_message_(), - out_messages_mutex_(), - bytes_sent_(0), - disconnecting_(false), - pending_in_transfer_(false), - pending_out_transfer_(false) { -} + : device_uid_(device_uid) + , app_handle_(app_handle) + , controller_(controller) + , libusb_handler_(libusb_handler) + , usbd_device_(device->GetUsbdDevice()) + , in_pipe_(NULL) + , out_pipe_(NULL) + , in_buffer_(NULL) + , out_buffer_(NULL) + , in_urb_(NULL) + , out_urb_(NULL) + , out_messages_() + , current_out_message_() + , out_messages_mutex_() + , bytes_sent_(0) + , disconnecting_(false) + , pending_in_transfer_(false) + , pending_out_transfer_(false) {} UsbConnection::~UsbConnection() { Finalise(); - if (in_urb_) usbd_free_urb(in_urb_); - if (out_urb_) usbd_free_urb(out_urb_); + if (in_urb_) + usbd_free_urb(in_urb_); + if (out_urb_) + usbd_free_urb(out_urb_); if (in_pipe_) { const int close_pipe_rc = usbd_close_pipe(in_pipe_); @@ -121,9 +122,9 @@ void UsbConnection::OnInTransfer(usbd_urb* urb) { LOG4CXX_ERROR(logger_, "Get in urb status failed: " << urb_status_rc); error = true; } - LOG4CXX_INFO(logger_, "USB in transfer, status " << std::hex << status - << ", length " << std::dec - << len); + LOG4CXX_INFO(logger_, + "USB in transfer, status " << std::hex << status << ", length " + << std::dec << len); if (!error) { switch (status) { @@ -139,18 +140,19 @@ void UsbConnection::OnInTransfer(usbd_urb* urb) { if (error) { LOG4CXX_ERROR(logger_, "USB in transfer failed"); - controller_->DataReceiveFailed(device_uid_, app_handle_, - DataReceiveError()); + controller_->DataReceiveFailed( + device_uid_, app_handle_, DataReceiveError()); } else { - ::protocol_handler::RawMessagePtr msg(new protocol_handler::RawMessage(0, 0, in_buffer_, len)); + ::protocol_handler::RawMessagePtr msg( + new protocol_handler::RawMessage(0, 0, in_buffer_, len)); controller_->DataReceiveDone(device_uid_, app_handle_, msg); } pending_in_transfer_ = false; if (!disconnecting_) { if (!PostInTransfer()) { - controller_->ConnectionAborted(device_uid_, app_handle_, - CommunicationError()); + controller_->ConnectionAborted( + device_uid_, app_handle_, CommunicationError()); Disconnect(); } } @@ -173,8 +175,8 @@ bool UsbConnection::PostOutTransfer() { usbd_setup_bulk(out_urb_, URB_DIR_OUT, out_buffer_, len); LOG4CXX_INFO(logger_, "out transfer :" << len); pending_out_transfer_ = true; - const int io_rc = usbd_io(out_urb_, out_pipe_, OutTransferCallback, this, - USBD_TIME_INFINITY); + const int io_rc = usbd_io( + out_urb_, out_pipe_, OutTransferCallback, this, USBD_TIME_INFINITY); if (EOK != io_rc) { pending_out_transfer_ = false; usbd_free(out_buffer_); @@ -194,9 +196,9 @@ void UsbConnection::OnOutTransfer(usbd_urb* urb) { LOG4CXX_ERROR(logger_, "Get out urb status failed: " << urb_status_rc); error = true; } - LOG4CXX_INFO(logger_, "USB out transfer, status " << std::hex << status - << ", length " << std::dec - << len); + LOG4CXX_INFO(logger_, + "USB out transfer, status " << std::hex << status << ", length " + << std::dec << len); if (!error) { switch (status) { @@ -214,14 +216,15 @@ void UsbConnection::OnOutTransfer(usbd_urb* urb) { if (error) { LOG4CXX_ERROR(logger_, "USB out transfer failed"); - controller_->DataSendFailed(device_uid_, app_handle_, current_out_message_, - DataSendError()); + controller_->DataSendFailed( + device_uid_, app_handle_, current_out_message_, DataSendError()); PopOutMessage(); } else { bytes_sent_ += len; if (bytes_sent_ == current_out_message_->data_size()) { - LOG4CXX_INFO(logger_, "USB out transfer, data sent: " - << current_out_message_.get()); + LOG4CXX_INFO( + logger_, + "USB out transfer, data sent: " << current_out_message_.get()); controller_->DataSendDone(device_uid_, app_handle_, current_out_message_); PopOutMessage(); } @@ -234,7 +237,8 @@ void UsbConnection::OnOutTransfer(usbd_urb* urb) { } } -TransportAdapter::Error UsbConnection::SendData(::protocol_handler::RawMessagePtr message) { +TransportAdapter::Error UsbConnection::SendData( + ::protocol_handler::RawMessagePtr message) { if (disconnecting_) { return TransportAdapter::BAD_STATE; } @@ -244,8 +248,8 @@ TransportAdapter::Error UsbConnection::SendData(::protocol_handler::RawMessagePt } else { current_out_message_ = message; if (!PostOutTransfer()) { - controller_->DataSendFailed(device_uid_, app_handle_, message, - DataSendError()); + controller_->DataSendFailed( + device_uid_, app_handle_, message, DataSendError()); } } return TransportAdapter::OK; @@ -257,11 +261,14 @@ void UsbConnection::Finalise() { disconnecting_ = true; usbd_abort_pipe(in_pipe_); usbd_abort_pipe(out_pipe_); - for (std::list<protocol_handler::RawMessagePtr>::iterator it = out_messages_.begin(); - it != out_messages_.end(); it = out_messages_.erase(it)) { + for (std::list<protocol_handler::RawMessagePtr>::iterator it = + out_messages_.begin(); + it != out_messages_.end(); + it = out_messages_.erase(it)) { controller_->DataSendFailed(device_uid_, app_handle_, *it, DataSendError()); } - while (pending_in_transfer_ || pending_out_transfer_) sched_yield(); + while (pending_in_transfer_ || pending_out_transfer_) + sched_yield(); } TransportAdapter::Error UsbConnection::Disconnect() { @@ -272,7 +279,8 @@ TransportAdapter::Error UsbConnection::Disconnect() { } bool UsbConnection::Init() { - if (!OpenEndpoints()) return false; + if (!OpenEndpoints()) + return false; in_urb_ = usbd_alloc_urb(NULL); out_urb_ = usbd_alloc_urb(NULL); @@ -290,8 +298,8 @@ bool UsbConnection::Init() { controller_->ConnectDone(device_uid_, app_handle_); if (!PostInTransfer()) { - controller_->ConnectionAborted(device_uid_, app_handle_, - CommunicationError()); + controller_->ConnectionAborted( + device_uid_, app_handle_, CommunicationError()); return true; } @@ -315,21 +323,25 @@ bool UsbConnection::OpenEndpoints() { int cfg = 0; bool found = false; while (!found) { - config_desc = - usbd_parse_descriptors(usbd_device_, device_desc_node, - USB_DESC_CONFIGURATION, cfg++, &cfg_desc_node); + config_desc = usbd_parse_descriptors(usbd_device_, + device_desc_node, + USB_DESC_CONFIGURATION, + cfg++, + &cfg_desc_node); if (config_desc == NULL) { break; } - LOG4CXX_INFO(logger_, "USB configuration " - << static_cast<int>(config_desc->configuration - .bConfigurationValue)); + LOG4CXX_INFO(logger_, + "USB configuration " << static_cast<int>( + config_desc->configuration.bConfigurationValue)); int iface = 0; usbd_desc_node* iface_desc_node; while (!found) { - iface_desc = - usbd_parse_descriptors(usbd_device_, cfg_desc_node, - USB_DESC_INTERFACE, iface++, &iface_desc_node); + iface_desc = usbd_parse_descriptors(usbd_device_, + cfg_desc_node, + USB_DESC_INTERFACE, + iface++, + &iface_desc_node); if (iface_desc == NULL) { break; } @@ -338,11 +350,11 @@ bool UsbConnection::OpenEndpoints() { #endif const uint8_t interface_subclass = iface_desc->interface.bInterfaceSubClass; - LOG4CXX_INFO(logger_, "USB interface number " - << static_cast<int>(interface_number) - << ", subclass " << std::hex - << static_cast<int>(interface_subclass) - << std::dec); + LOG4CXX_INFO(logger_, + "USB interface number " + << static_cast<int>(interface_number) << ", subclass " + << std::hex << static_cast<int>(interface_subclass) + << std::dec); if (interface_subclass != 0xff) { continue; } @@ -352,15 +364,16 @@ bool UsbConnection::OpenEndpoints() { while (true) { usbd_descriptors_t* endpoint_desc = usbd_parse_descriptors( usbd_device_, iface_desc_node, USB_DESC_ENDPOINT, endpoint++, NULL); - if (NULL == endpoint_desc) break; + if (NULL == endpoint_desc) + break; const uint8_t attributes = endpoint_desc->endpoint.bmAttributes; if ((attributes & 0x03) == USB_ATTRIB_BULK) { const uint8_t endpoint_address = endpoint_desc->endpoint.bEndpointAddress; - LOG4CXX_INFO(logger_, "Endpoint with address " - << std::hex - << static_cast<int>(endpoint_address) - << std::dec << " found"); + LOG4CXX_INFO(logger_, + "Endpoint with address " + << std::hex << static_cast<int>(endpoint_address) + << std::dec << " found"); if (endpoint_address & USB_ENDPOINT_IN) { if (NULL == in_endpoint_desc) { in_endpoint_desc = endpoint_desc; @@ -378,7 +391,8 @@ bool UsbConnection::OpenEndpoints() { } } - if (!found) return false; + if (!found) + return false; int open_pipe_rc = usbd_open_pipe(usbd_device_, in_endpoint_desc, &in_pipe_); if (EOK != open_pipe_rc) { diff --git a/src/components/transport_manager/src/usb/qnx/usb_handler.cc b/src/components/transport_manager/src/usb/qnx/usb_handler.cc index d78b6c8184..2336a05f16 100644 --- a/src/components/transport_manager/src/usb/qnx/usb_handler.cc +++ b/src/components/transport_manager/src/usb/qnx/usb_handler.cc @@ -53,10 +53,10 @@ UsbHandler* usb_handler; } UsbHandler::UsbHandler() - : usb_device_listeners_(), - devices_(), - usbd_general_connection_(NULL), - usbd_aoa_connection_(NULL) { + : usb_device_listeners_() + , devices_() + , usbd_general_connection_(NULL) + , usbd_aoa_connection_(NULL) { usb_handler = this; } @@ -65,15 +65,15 @@ UsbHandler::~UsbHandler() { if (usbd_general_connection_) { const int disconnect_rc = usbd_disconnect(usbd_general_connection_); if (EOK != disconnect_rc) { - LOG4CXX_ERROR(logger_, "usbd_disconnect failed, error code " - << disconnect_rc); + LOG4CXX_ERROR(logger_, + "usbd_disconnect failed, error code " << disconnect_rc); } } if (usbd_aoa_connection_) { const int disconnect_rc = usbd_disconnect(usbd_aoa_connection_); if (EOK != disconnect_rc) { - LOG4CXX_ERROR(logger_, "usbd_disconnect failed, error code " - << disconnect_rc); + LOG4CXX_ERROR(logger_, + "usbd_disconnect failed, error code " << disconnect_rc); } } } @@ -87,7 +87,8 @@ void UsbHandler::DeviceArrived(usbd_connection* connection, usbd_device_instance_t* instance) { for (Devices::const_iterator it = devices_.begin(); it != devices_.end(); ++it) { - if ((*it)->GetDeviceInstance() == *instance) return; + if ((*it)->GetDeviceInstance() == *instance) + return; } usbd_device* device_usbd = 0; const int attach_rc = usbd_attach(connection, instance, 0, &device_usbd); @@ -109,7 +110,8 @@ void UsbHandler::DeviceArrived(usbd_connection* connection, devices_.push_back(device); for (std::list<UsbDeviceListener*>::iterator it = usb_device_listeners_.begin(); - it != usb_device_listeners_.end(); ++it) { + it != usb_device_listeners_.end(); + ++it) { (*it)->OnDeviceArrived(device); } } @@ -128,7 +130,8 @@ void UsbHandler::DeviceLeft(usbd_device_instance_t* instance) { for (std::list<UsbDeviceListener*>::iterator it = usb_device_listeners_.begin(); - it != usb_device_listeners_.end(); ++it) { + it != usb_device_listeners_.end(); + ++it) { (*it)->OnDeviceLeft(device); } @@ -163,7 +166,8 @@ void UsbHandler::StartControlTransferSequence( for (UsbControlTransferSequence::Transfers::const_iterator it = sequence->transfers().begin(); - it != sequence->transfers().end(); ++it) { + it != sequence->transfers().end(); + ++it) { UsbControlTransfer* transfer = *it; usbd_urb* urb = usbd_alloc_urb(NULL); @@ -187,15 +191,21 @@ void UsbHandler::StartControlTransferSequence( UsbControlOutTransfer* out_transfer = static_cast<UsbControlOutTransfer*>(transfer); std::copy(out_transfer->Data(), - out_transfer->Data() + out_transfer->Length(), buf); + out_transfer->Data() + out_transfer->Length(), + buf); } else { assert(0); } assert(transfer->Type() == UsbControlTransfer::VENDOR); - usbd_setup_vendor(urb, flags, transfer->Request(), USB_TYPE_VENDOR, - transfer->Value(), transfer->Index(), buf, + usbd_setup_vendor(urb, + flags, + transfer->Request(), + USB_TYPE_VENDOR, + transfer->Value(), + transfer->Index(), + buf, transfer->Length()); const int io_rc = usbd_io(urb, usb_pipe, 0, 0, USBD_TIME_DEFAULT); @@ -211,7 +221,8 @@ void UsbHandler::StartControlTransferSequence( } usbd_free(buf); usbd_free_urb(urb); - if (!submit_next) break; + if (!submit_next) + break; } usbd_close_pipe(usb_pipe); @@ -220,56 +231,66 @@ void UsbHandler::StartControlTransferSequence( void ArrivedCallback(usbd_connection* connection, usbd_device_instance_t* instance) { - if (kAoaVid == instance->ident.vendor) return; - LOG4CXX_INFO(logger_, "USB device arrived (path " - << static_cast<int>(instance->path) << ", devno " - << static_cast<int>(instance->devno) << ", config " - << static_cast<int>(instance->config) << ", iface " - << static_cast<int>(instance->iface) << ")"); + if (kAoaVid == instance->ident.vendor) + return; + LOG4CXX_INFO(logger_, + "USB device arrived (path " + << static_cast<int>(instance->path) << ", devno " + << static_cast<int>(instance->devno) << ", config " + << static_cast<int>(instance->config) << ", iface " + << static_cast<int>(instance->iface) << ")"); usb_handler->DeviceArrived(connection, instance); } void ArrivedAoaCallback(usbd_connection* connection, usbd_device_instance_t* instance) { - if (kAoaVid != instance->ident.vendor) return; - LOG4CXX_INFO(logger_, "USB AOA device arrived (path " - << static_cast<int>(instance->path) << ", devno " - << static_cast<int>(instance->devno) << ", config " - << static_cast<int>(instance->config) << ", iface " - << static_cast<int>(instance->iface) << ")"); + if (kAoaVid != instance->ident.vendor) + return; + LOG4CXX_INFO(logger_, + "USB AOA device arrived (path " + << static_cast<int>(instance->path) << ", devno " + << static_cast<int>(instance->devno) << ", config " + << static_cast<int>(instance->config) << ", iface " + << static_cast<int>(instance->iface) << ")"); usb_handler->DeviceArrived(connection, instance); } void LeftCallback(usbd_connection* connection, usbd_device_instance_t* instance) { - if (kAoaVid == instance->ident.vendor) return; - LOG4CXX_INFO(logger_, "USB device left (path " - << static_cast<int>(instance->path) << ", devno " - << static_cast<int>(instance->devno) << ", config " - << static_cast<int>(instance->config) << ", iface " - << static_cast<int>(instance->iface) << ")"); + if (kAoaVid == instance->ident.vendor) + return; + LOG4CXX_INFO(logger_, + "USB device left (path " + << static_cast<int>(instance->path) << ", devno " + << static_cast<int>(instance->devno) << ", config " + << static_cast<int>(instance->config) << ", iface " + << static_cast<int>(instance->iface) << ")"); usb_handler->DeviceLeft(instance); } void LeftAoaCallback(usbd_connection* connection, usbd_device_instance_t* instance) { - if (kAoaVid != instance->ident.vendor) return; - LOG4CXX_INFO(logger_, "USB AOA device left (path " - << static_cast<int>(instance->path) << ", devno " - << static_cast<int>(instance->devno) << ", config " - << static_cast<int>(instance->config) << ", iface " - << static_cast<int>(instance->iface) << ")"); + if (kAoaVid != instance->ident.vendor) + return; + LOG4CXX_INFO(logger_, + "USB AOA device left (path " + << static_cast<int>(instance->path) << ", devno " + << static_cast<int>(instance->devno) << ", config " + << static_cast<int>(instance->config) << ", iface " + << static_cast<int>(instance->iface) << ")"); usb_handler->DeviceLeft(instance); } TransportAdapter::Error UsbHandler::Init() { { - usbd_device_ident_t interest = { - USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD, kAoaInterfaceSubclass, - USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD}; + usbd_device_ident_t interest = {USBD_CONNECT_WILDCARD, + USBD_CONNECT_WILDCARD, + kAoaInterfaceSubclass, + USBD_CONNECT_WILDCARD, + USBD_CONNECT_WILDCARD}; usbd_funcs_t funcs = {_USBDI_NFUNCS, ArrivedCallback, LeftCallback, NULL}; - usbd_connect_parm_t cparms = {NULL, USB_VERSION, USBD_VERSION, 0, 0, - NULL, 0, &interest, &funcs}; + usbd_connect_parm_t cparms = { + NULL, USB_VERSION, USBD_VERSION, 0, 0, NULL, 0, &interest, &funcs}; const int connect_rc = usbd_connect(&cparms, &usbd_general_connection_); @@ -279,13 +300,15 @@ TransportAdapter::Error UsbHandler::Init() { } } { - usbd_device_ident_t interest = { - kAoaVid, USBD_CONNECT_WILDCARD, USBD_CONNECT_WILDCARD, - kAoaInterfaceSubclass, USBD_CONNECT_WILDCARD}; - usbd_funcs_t funcs = {_USBDI_NFUNCS, ArrivedAoaCallback, - LeftAoaCallback, NULL}; - usbd_connect_parm_t cparms = {NULL, USB_VERSION, USBD_VERSION, 0, 0, - NULL, 0, &interest, &funcs}; + usbd_device_ident_t interest = {kAoaVid, + USBD_CONNECT_WILDCARD, + USBD_CONNECT_WILDCARD, + kAoaInterfaceSubclass, + USBD_CONNECT_WILDCARD}; + usbd_funcs_t funcs = { + _USBDI_NFUNCS, ArrivedAoaCallback, LeftAoaCallback, NULL}; + usbd_connect_parm_t cparms = { + NULL, USB_VERSION, USBD_VERSION, 0, 0, NULL, 0, &interest, &funcs}; const int connect_rc = usbd_connect(&cparms, &usbd_aoa_connection_); diff --git a/src/components/transport_manager/src/usb/usb_connection_factory.cc b/src/components/transport_manager/src/usb/usb_connection_factory.cc index 4562473536..28992d8f40 100644 --- a/src/components/transport_manager/src/usb/usb_connection_factory.cc +++ b/src/components/transport_manager/src/usb/usb_connection_factory.cc @@ -47,8 +47,8 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") UsbConnectionFactory::UsbConnectionFactory( - TransportAdapterController* controller) - : controller_(controller), usb_handler_() {} + TransportAdapterController* controller) + : controller_(controller), usb_handler_() {} TransportAdapter::Error UsbConnectionFactory::Init() { return TransportAdapter::OK; @@ -59,30 +59,38 @@ void UsbConnectionFactory::SetUsbHandler(const UsbHandlerSptr usb_handler) { } TransportAdapter::Error UsbConnectionFactory::CreateConnection( - const DeviceUID& device_uid, const ApplicationHandle& app_handle) { - LOG4CXX_TRACE(logger_, "enter DeviceUID: " << &device_uid << ", ApplicationHandle: " << - &app_handle); + const DeviceUID& device_uid, const ApplicationHandle& app_handle) { + LOG4CXX_TRACE(logger_, + "enter DeviceUID: " << &device_uid + << ", ApplicationHandle: " << &app_handle); DeviceSptr device = controller_->FindDevice(device_uid); if (!device.valid()) { LOG4CXX_ERROR(logger_, "device " << device_uid << " not found"); - LOG4CXX_TRACE(logger_, - "exit with TransportAdapter::BAD_PARAM. Condition: !device.valid()"); + LOG4CXX_TRACE( + logger_, + "exit with TransportAdapter::BAD_PARAM. Condition: !device.valid()"); return TransportAdapter::BAD_PARAM; } UsbDevice* usb_device = static_cast<UsbDevice*>(device.get()); - UsbConnection* usb_connection = - new UsbConnection(device_uid, app_handle, controller_, usb_handler_, - usb_device->usb_device()); + UsbConnection* usb_connection = new UsbConnection(device_uid, + app_handle, + controller_, + usb_handler_, + usb_device->usb_device()); controller_->ConnectionCreated(usb_connection, device_uid, app_handle); if (usb_connection->Init()) { LOG4CXX_INFO(logger_, "USB connection initialised"); - LOG4CXX_TRACE(logger_, "exit with TransportAdapter::OK. Condition: USB connection initialised"); + LOG4CXX_TRACE(logger_, + "exit with TransportAdapter::OK. Condition: USB connection " + "initialised"); return TransportAdapter::OK; } else { - LOG4CXX_TRACE(logger_, "exit with TransportAdapter::FAIL. Condition: USB connection NOT initialised"); + LOG4CXX_TRACE(logger_, + "exit with TransportAdapter::FAIL. Condition: USB connection " + "NOT initialised"); return TransportAdapter::FAIL; } } diff --git a/src/components/transport_manager/src/usb/usb_device_scanner.cc b/src/components/transport_manager/src/usb/usb_device_scanner.cc index dfc9f4697c..092fd29f1a 100644 --- a/src/components/transport_manager/src/usb/usb_device_scanner.cc +++ b/src/components/transport_manager/src/usb/usb_device_scanner.cc @@ -47,8 +47,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") class AoaInitSequence : public UsbControlTransferSequence { public: AoaInitSequence(); - virtual ~AoaInitSequence() { - } + virtual ~AoaInitSequence() {} private: class AoaGetProtocolRequest; @@ -88,15 +87,12 @@ void UsbDeviceScanner::OnDeviceLeft(PlatformUsbDevice* device) { } UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller) - : controller_(controller) { -} + : controller_(controller) {} -UsbDeviceScanner::~UsbDeviceScanner() { -} +UsbDeviceScanner::~UsbDeviceScanner() {} class AoaInitSequence::AoaGetProtocolRequest : public UsbControlInTransfer { - virtual ~AoaGetProtocolRequest() { - } + virtual ~AoaGetProtocolRequest() {} virtual RequestType Type() const { return VENDOR; } @@ -126,14 +122,10 @@ class AoaInitSequence::AoaGetProtocolRequest : public UsbControlInTransfer { class AoaInitSequence::AoaSendIdString : public UsbControlOutTransfer { public: AoaSendIdString(uint16_t index, const char* string, uint16_t length) - : index_(index), - string_(string), - length_(length) { - } + : index_(index), string_(string), length_(length) {} private: - virtual ~AoaSendIdString() { - } + virtual ~AoaSendIdString() {} virtual RequestType Type() const { return VENDOR; } @@ -158,8 +150,7 @@ class AoaInitSequence::AoaSendIdString : public UsbControlOutTransfer { }; class AoaInitSequence::AoaTurnIntoAccessoryMode : public UsbControlOutTransfer { - virtual ~AoaTurnIntoAccessoryMode() { - } + virtual ~AoaTurnIntoAccessoryMode() {} virtual RequestType Type() const { return VENDOR; } @@ -187,8 +178,7 @@ static char version[] = "1.0"; static char uri[] = "http://www.smartdevicelink.org"; static char serial_num[] = "N000000"; -AoaInitSequence::AoaInitSequence() - : UsbControlTransferSequence() { +AoaInitSequence::AoaInitSequence() : UsbControlTransferSequence() { AddTransfer(new AoaGetProtocolRequest); AddTransfer(new AoaSendIdString(0, manufacturer, sizeof(manufacturer))); AddTransfer(new AoaSendIdString(1, model_name, sizeof(model_name))); @@ -212,13 +202,13 @@ void UsbDeviceScanner::SupportedDeviceFound(PlatformUsbDevice* device) { devices_mutex_.Acquire(); devices_.push_back(device); devices_mutex_.Release(); - LOG4CXX_DEBUG( - logger_, - "USB device (bus number " << static_cast<int>(device->bus_number()) - << ", address " << static_cast<int>(device->address()) - << ") identified as: " << device->GetManufacturer() - << ", " << device->GetProductName() - << ", serial: " << device->GetSerialNumber()); + LOG4CXX_DEBUG(logger_, + "USB device (bus number " + << static_cast<int>(device->bus_number()) << ", address " + << static_cast<int>(device->address()) + << ") identified as: " << device->GetManufacturer() << ", " + << device->GetProductName() + << ", serial: " << device->GetSerialNumber()); UpdateList(); } @@ -235,9 +225,9 @@ void UsbDeviceScanner::UpdateList() { DeviceVector device_vector; devices_mutex_.Acquire(); for (Devices::const_iterator it = devices_.begin(); it != devices_.end(); - ++it) { - const std::string device_name = (*it)->GetManufacturer() + " " - + (*it)->GetProductName(); + ++it) { + const std::string device_name = + (*it)->GetManufacturer() + " " + (*it)->GetProductName(); std::ostringstream oss; oss << (*it)->GetManufacturer() << ":" << (*it)->GetProductName() << ":" << (*it)->GetSerialNumber(); @@ -251,8 +241,7 @@ void UsbDeviceScanner::UpdateList() { controller_->SearchDeviceDone(device_vector); } -void UsbDeviceScanner::Terminate() { -} +void UsbDeviceScanner::Terminate() {} bool UsbDeviceScanner::IsInitialised() const { return true; diff --git a/src/components/transport_manager/test/raw_message_matcher.cc b/src/components/transport_manager/test/raw_message_matcher.cc index 289009d0c1..130ddc96c8 100644 --- a/src/components/transport_manager/test/raw_message_matcher.cc +++ b/src/components/transport_manager/test/raw_message_matcher.cc @@ -37,25 +37,25 @@ namespace test { namespace components { namespace transport_manager { -RawMessageMatcher::RawMessageMatcher(RawMessagePtr ptr) - : ptr_(ptr) {} +RawMessageMatcher::RawMessageMatcher(RawMessagePtr ptr) : ptr_(ptr) {} bool RawMessageMatcher::MatchAndExplain(const RawMessagePtr msg, - MatchResultListener* listener) const { + MatchResultListener* listener) const { if (msg->data_size() != ptr_->data_size()) { - return ::std::equal(msg->data(), msg->data() + msg->data_size(), ptr_->data()); + return ::std::equal( + msg->data(), msg->data() + msg->data_size(), ptr_->data()); } else return false; } void RawMessageMatcher::DescribeTo(::std::ostream* os) const { - *os << "data_ is " ; + *os << "data_ is "; ::std::ostream_iterator<unsigned char> out(*os); ::std::copy(ptr_->data(), ptr_->data() + ptr_->data_size(), out); } void RawMessageMatcher::DescribeNegationTo(::std::ostream* os) const { - *os << "data_ is not " ; + *os << "data_ is not "; ::std::ostream_iterator<unsigned char> out(*os); ::std::copy(ptr_->data(), ptr_->data() + ptr_->data_size(), out); } diff --git a/src/components/transport_manager/test/tcp_device_test.cc b/src/components/transport_manager/test/tcp_device_test.cc index 961ebe6954..55fa5ac5d3 100644 --- a/src/components/transport_manager/test/tcp_device_test.cc +++ b/src/components/transport_manager/test/tcp_device_test.cc @@ -45,7 +45,9 @@ class TestDevice : public Device { public: TestDevice(const uint32_t& in_addr, const std::string& name) : Device(name, name), in_addr_(in_addr) {} - bool IsSameAs(const Device* other_device) const { return true; } + bool IsSameAs(const Device* other_device) const { + return true; + } ApplicationList GetApplicationList() const { ApplicationList app_list; return app_list; diff --git a/src/components/utils/include/utils/appenders_loader.h b/src/components/utils/include/utils/appenders_loader.h index 03d3217994..65556e6862 100644 --- a/src/components/utils/include/utils/appenders_loader.h +++ b/src/components/utils/include/utils/appenders_loader.h @@ -40,6 +40,7 @@ class AppendersLoader { AppendersLoader(); ~AppendersLoader(); bool Loaded() const; + private: void* handle_; }; diff --git a/src/components/utils/include/utils/back_trace.h b/src/components/utils/include/utils/back_trace.h index f2410e36bc..180714e5a6 100644 --- a/src/components/utils/include/utils/back_trace.h +++ b/src/components/utils/include/utils/back_trace.h @@ -68,8 +68,8 @@ class Backtrace { std::vector<void*> backtrace_; }; -std::ostream& operator<< (std::ostream& os, const Backtrace& bt); +std::ostream& operator<<(std::ostream& os, const Backtrace& bt); -} // namespace utils +} // namespace utils -#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BACK_TRACE_H_ +#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BACK_TRACE_H_ diff --git a/src/components/utils/include/utils/bitstream.h b/src/components/utils/include/utils/bitstream.h index 6b9d6337ef..13eacc6cb1 100644 --- a/src/components/utils/include/utils/bitstream.h +++ b/src/components/utils/include/utils/bitstream.h @@ -57,12 +57,21 @@ class BitStream { // Mark stream as badly-formed. // Should be called by Extract* family of procedures if they decide // that stream is invalid - void MarkBad() { bad_ = true; } + void MarkBad() { + bad_ = true; + } // Predicates to check whether there were errors while parsing // Stream is good when it is created - bool IsGood() { return !bad_; } - bool IsBad() { return bad_; } - operator bool() { return IsGood(); } + bool IsGood() { + return !bad_; + } + bool IsBad() { + return bad_; + } + operator bool() { + return IsGood(); + } + private: // These two functions are used for internal stream checks only // Stream parser procedures must not define their logic depending on @@ -78,13 +87,13 @@ class BitStream { // Extract single value, amount of bits read from stream depends on T size // If there is not enough data in the stream, stream is marked bad - template<typename T> + template <typename T> void Extract(T& val); // Read single value, amount of bits read from stream is signaled by |bits| // parameter. T must be wide enough to hold this amount of bits. // If there is not enough data in the stream, stream is marked bad - template<typename T> + template <typename T> void ExtractBits(T& val, size_t bits); // Extract |length| bytes from the stream. Stream read position @@ -94,10 +103,11 @@ class BitStream { private: const uint8_t* bytes_; - const size_t bytes_count_; + const size_t bytes_count_; size_t byte_offset_; size_t bit_offset_; bool bad_; + private: friend void Extract(BitStream*, uint8_t*); friend void Extract(BitStream*, uint8_t*, size_t); @@ -105,7 +115,6 @@ class BitStream { friend void Extract(BitStream*, uint32_t*, size_t); friend void Extract(BitStream*, std::string*, size_t); friend void Extract(BitStream*, std::vector<uint8_t>*, size_t); - }; // Extract single byte from stream @@ -133,16 +142,15 @@ void Extract(BitStream* bs, std::string* str, size_t length); // vector |data|. If stream is too short it is marked bad. void Extract(BitStream* bs, std::vector<uint8_t>* data, size_t length); - // Template member definitions -template<typename T> +template <typename T> void BitStream::Extract(T& val) { // Slow but simple implementation // It's a space for bit stream reading optimization ExtractBits(val, sizeof(val) * CHAR_BIT); } -template<typename T> +template <typename T> void BitStream::ExtractBits(T& val, size_t bits) { DCHECK(sizeof(val) * CHAR_BIT >= bits); if (IsGood()) { @@ -164,7 +172,6 @@ void BitStream::ExtractBits(T& val, size_t bits) { } } -} // namespace utils - +} // namespace utils -#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BITSTREAM_H_ +#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_BITSTREAM_H_ diff --git a/src/components/utils/include/utils/convert_utils.h b/src/components/utils/include/utils/convert_utils.h index b3e849d6bd..0609164a60 100644 --- a/src/components/utils/include/utils/convert_utils.h +++ b/src/components/utils/include/utils/convert_utils.h @@ -60,7 +60,6 @@ unsigned long long int ConvertUInt64ToLongLongUInt(const uint64_t value); */ uint64_t ConvertLongLongUIntToUInt64(const unsigned long long int value); - /** * Convert one number value to another type value */ diff --git a/src/components/utils/include/utils/file_system.h b/src/components/utils/include/utils/file_system.h index 0757a17110..5862241c9c 100644 --- a/src/components/utils/include/utils/file_system.h +++ b/src/components/utils/include/utils/file_system.h @@ -41,7 +41,6 @@ namespace file_system { - /** * @brief Get available disc space. * @@ -165,7 +164,8 @@ bool DeleteFile(const std::string& name); * @brief Removes directory. * * @param name path to directory. - * @param is_recursively true if you need delete directory recursively, otherwise false. + * @param is_recursively true if you need delete directory recursively, + *otherwise false. * @return returns true if the directory is successfully deleted. */ bool RemoveDirectory(const std::string& directory_name, @@ -220,8 +220,7 @@ bool WriteBinaryFile(const std::string& name, * @param result read data * @return returns true if the operation is successfully. */ -bool ReadBinaryFile(const std::string& name, - std::vector<uint8_t>& result); +bool ReadBinaryFile(const std::string& name, std::vector<uint8_t>& result); bool ReadFile(const std::string& name, std::string& result); @@ -255,8 +254,7 @@ uint64_t GetFileModificationTime(const std::string& path); * @param dst Destination file path * @return if result success return true */ -bool CopyFile(const std::string& src, - const std::string& dst); +bool CopyFile(const std::string& src, const std::string& dst); /** * @brief Move file from source to destination @@ -265,8 +263,7 @@ bool CopyFile(const std::string& src, * @param dst Destination file path * @return if result success return true */ -bool MoveFile(const std::string& src, - const std::string& dst); +bool MoveFile(const std::string& src, const std::string& dst); void remove_directory_content(const std::string& directory_name); diff --git a/src/components/utils/include/utils/helpers.h b/src/components/utils/include/utils/helpers.h index f16acfc90a..17d4af27a1 100644 --- a/src/components/utils/include/utils/helpers.h +++ b/src/components/utils/include/utils/helpers.h @@ -31,12 +31,13 @@ */ #ifndef SRC_COMPONENTS_UTILS_INCLUDE_UTILS_HELPERS_H #define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_HELPERS_H -#include<algorithm> +#include <algorithm> /** * These helpers allows to simplify compare strategy between some objects. * Suppose user has some enum with value E with some numbers of possible values * enum E {V1, V2, V3, V5}; - * So we want to know if some user-input value is belong to one of the enum's subset. + * So we want to know if some user-input value is belong to one of the enum's + *subset. * Usually user has to do next routine * * E input_value = V3; @@ -56,71 +57,72 @@ */ namespace helpers { - template<typename T> - bool EQ (T what, T to) { - return what == to; - } - - template<typename T> - bool NEQ (T what, T to) { - return !EQ<T>(what, to); - } +template <typename T> +bool EQ(T what, T to) { + return what == to; +} - template<class U = bool> - bool ALL (U what, U to) { - return what && to; - } +template <typename T> +bool NEQ(T what, T to) { + return !EQ<T>(what, to); +} - template<class U = bool> - bool ONE (U what, U to) { - return what || to; - } +template <class U = bool> +bool ALL(U what, U to) { + return what && to; +} - template <typename T, - bool (*CompareType)(T ,T), - bool (*CmpStrategy)(bool ,bool)> - bool Compare (T what, T to) { - return CompareType(what, to); - } +template <class U = bool> +bool ONE(U what, U to) { + return what || to; +} - template <typename T, - bool (*CompareType)(T ,T), - bool (*CmpStrategy)(bool, bool)> - bool Compare(T what, T to, T to1) { - return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to), - Compare<T, CompareType, CmpStrategy>(what, to1)); - } +template <typename T, + bool (*CompareType)(T, T), + bool (*CmpStrategy)(bool, bool)> +bool Compare(T what, T to) { + return CompareType(what, to); +} - template <typename T, - bool (*CompareType)(T ,T), - bool (*CmpStrategy)(bool, bool)> - bool Compare(T what, T to, T to1, T to2) { - return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to, to1), - Compare<T, CompareType, CmpStrategy>(what, to2)); - } +template <typename T, + bool (*CompareType)(T, T), + bool (*CmpStrategy)(bool, bool)> +bool Compare(T what, T to, T to1) { + return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to), + Compare<T, CompareType, CmpStrategy>(what, to1)); +} - template <typename T, - bool (*CompareType)(T ,T), - bool (*CmpStrategy)(bool, bool)> - bool Compare(T what, T to, T to1, T to2, T to3) { - return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to, to1, to2), - Compare<T, CompareType, CmpStrategy>(what, to3)); - } +template <typename T, + bool (*CompareType)(T, T), + bool (*CmpStrategy)(bool, bool)> +bool Compare(T what, T to, T to1, T to2) { + return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to, to1), + Compare<T, CompareType, CmpStrategy>(what, to2)); +} - template <typename T, - bool (*CompareType)(T ,T), - bool (*CmpStrategy)(bool, bool)> - bool Compare(T what, T to, T to1, T to2, T to3, T to4) { - return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to, to1, to2, to3), - Compare<T, CompareType, CmpStrategy>(what, to4)); - } +template <typename T, + bool (*CompareType)(T, T), + bool (*CmpStrategy)(bool, bool)> +bool Compare(T what, T to, T to1, T to2, T to3) { + return CmpStrategy(Compare<T, CompareType, CmpStrategy>(what, to, to1, to2), + Compare<T, CompareType, CmpStrategy>(what, to3)); +} +template <typename T, + bool (*CompareType)(T, T), + bool (*CmpStrategy)(bool, bool)> +bool Compare(T what, T to, T to1, T to2, T to3, T to4) { + return CmpStrategy( + Compare<T, CompareType, CmpStrategy>(what, to, to1, to2, to3), + Compare<T, CompareType, CmpStrategy>(what, to4)); +} - template<typename Container> - bool in_range(const Container& container, const typename Container::value_type& value) { - return - std::find(container.begin(), container.end(), value) != container.end(); - } +template <typename Container> +bool in_range(const Container& container, + const typename Container::value_type& value) { + return std::find(container.begin(), container.end(), value) != + container.end(); +} } -#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_HELPERS_H +#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_HELPERS_H diff --git a/src/components/utils/include/utils/log_message_loop_thread.h b/src/components/utils/include/utils/log_message_loop_thread.h index 80816877b6..deea1a07c0 100644 --- a/src/components/utils/include/utils/log_message_loop_thread.h +++ b/src/components/utils/include/utils/log_message_loop_thread.h @@ -53,21 +53,20 @@ typedef struct { typedef std::queue<LogMessage> LogMessageQueue; -typedef threads::MessageLoopThread<LogMessageQueue> LogMessageLoopThreadTemplate; +typedef threads::MessageLoopThread<LogMessageQueue> + LogMessageLoopThreadTemplate; class LogMessageHandler : public LogMessageLoopThreadTemplate::Handler { public: virtual void Handle(const LogMessage message) OVERRIDE; }; -class LogMessageLoopThread : - public LogMessageLoopThreadTemplate { - +class LogMessageLoopThread : public LogMessageLoopThreadTemplate { public: LogMessageLoopThread(); - ~LogMessageLoopThread(); + ~LogMessageLoopThread(); -DISALLOW_COPY_AND_ASSIGN(LogMessageLoopThread); + DISALLOW_COPY_AND_ASSIGN(LogMessageLoopThread); }; } // namespace logger diff --git a/src/components/utils/include/utils/qdb_wrapper/sql_database.h b/src/components/utils/include/utils/qdb_wrapper/sql_database.h index 54c89f678c..ba5c8a722a 100644 --- a/src/components/utils/include/utils/qdb_wrapper/sql_database.h +++ b/src/components/utils/include/utils/qdb_wrapper/sql_database.h @@ -90,6 +90,7 @@ class SQLDatabase { * Call backup for opened DB */ bool Backup(); + protected: /** * Gets connection to the SQLite database diff --git a/src/components/utils/include/utils/qdb_wrapper/sql_error.h b/src/components/utils/include/utils/qdb_wrapper/sql_error.h index 79706cc0ef..25fd558308 100644 --- a/src/components/utils/include/utils/qdb_wrapper/sql_error.h +++ b/src/components/utils/include/utils/qdb_wrapper/sql_error.h @@ -39,8 +39,8 @@ namespace utils { namespace dbms { typedef enum Error { - OK = 0, /* Successful result */ - ERROR /* Error */ + OK = 0, /* Successful result */ + ERROR /* Error */ } Error; /** diff --git a/src/components/utils/include/utils/qdb_wrapper/sql_query.h b/src/components/utils/include/utils/qdb_wrapper/sql_query.h index 34fbfc61c7..f1da6ccad9 100644 --- a/src/components/utils/include/utils/qdb_wrapper/sql_query.h +++ b/src/components/utils/include/utils/qdb_wrapper/sql_query.h @@ -238,7 +238,7 @@ class SQLQuery { /** * The result of query */ - qdb_result_t *result_; + qdb_result_t* result_; /** * The current row in result for select diff --git a/src/components/utils/include/utils/resource_usage.h b/src/components/utils/include/utils/resource_usage.h index ff90b2c22f..4dd8a7eafd 100644 --- a/src/components/utils/include/utils/resource_usage.h +++ b/src/components/utils/include/utils/resource_usage.h @@ -44,8 +44,8 @@ #include "utils/logger.h" -#define MAX_COMM_LEN 128 -#define MAX_CMDLINE_LEN 128 +#define MAX_COMM_LEN 128 +#define MAX_CMDLINE_LEN 128 namespace utils { @@ -56,7 +56,7 @@ struct ResourseUsage { }; class Resources { - public: + public: typedef uint32_t MemInfo; #if defined(__QNXNTO__) typedef procfs_info PidStats; @@ -108,19 +108,18 @@ class Resources { unsigned long long delayacct_blkio_ticks; unsigned long guest_time; long int cguest_time; - }; + }; #else #endif - public: - /* - * @brief Returns current resource usage of process - * @return Raw pointer on ResourseUsage if success, otherwise return NULL - */ + public: + /* + * @brief Returns current resource usage of process + * @return Raw pointer on ResourseUsage if success, otherwise return NULL + */ static ResourseUsage* getCurrentResourseUsage(); -private: - + private: #ifdef BUILD_TESTS friend class ResourceUsagePrivateTest; FRIEND_TEST(ResourceUsagePrivateTest, ReadStatFileTest); @@ -134,7 +133,8 @@ private: /* * @brief reads /proc/PID/stat file on linux * do not work on QNX ( return false, output wan't be changed ) - * @param output - storage for result string ( there will be separated content of /proc/PID/stat ) + * @param output - storage for result string ( there will be separated content + * of /proc/PID/stat ) * @return true on succes false onb fail */ static bool ReadStatFile(std::string& output); @@ -171,9 +171,6 @@ private: */ static const char* proc; }; - } - - #endif /* SRC_COMPONENTS_UTILS_INCLUDE_UTILS_RESOURCE_USAGE_H_ */ diff --git a/src/components/utils/include/utils/signals.h b/src/components/utils/include/utils/signals.h index b8b71b95e3..48120d53cd 100644 --- a/src/components/utils/include/utils/signals.h +++ b/src/components/utils/include/utils/signals.h @@ -34,7 +34,7 @@ #define SRC_COMPONENTS_UTILS_INCLUDE_UTILS_SIGNALS_H_ #ifdef __QNXNTO__ -typedef void (*sighandler_t) (int); +typedef void (*sighandler_t)(int); #else #include <signal.h> #endif diff --git a/src/components/utils/include/utils/singleton.h b/src/components/utils/include/utils/singleton.h index fff7294d1c..b73780ee1d 100644 --- a/src/components/utils/include/utils/singleton.h +++ b/src/components/utils/include/utils/singleton.h @@ -43,15 +43,13 @@ namespace deleters { class DummyDeleter { public: - void grab(void* pointer) { - } + void grab(void* pointer) {} }; -template<typename T> +template <typename T> class Deleter { public: - Deleter() : pointer_(0) { - } + Deleter() : pointer_(0) {} ~Deleter() { if (pointer_) { delete pointer_; @@ -60,69 +58,68 @@ class Deleter { void grab(T* pointer) { pointer_ = pointer; } + private: T* pointer_; }; } // namespace deleters -template<typename T, class Deleter = deleters::DummyDeleter> +template <typename T, class Deleter = deleters::DummyDeleter> class Singleton { -/** - * @brief Singleton template - * Singleton classes must derive from this template specialized with class itself: - * - * class MySingleton : public Singleton<MySingleton> {...}; - * - * All such classes must declare instance() method as friend - * by adding FRIEND_BASE_SINGLETON_CLASS macro from macro.h to class definition: - * - * FRIEND_BASE_SINGLETON_CLASS(MySingleton); - * - * Instance of this class (if created) can be deleted by Deleter destructor - * which is called after main() (or from exit()) - * This requires T destructor to be accessible for Deleter (e.g. public) - * Deleter template parameter can be specified with any class - * with public default constructor, destructor and method - * void grab(T*); - * However, default Deleter specification does nothing - * - * Also instance can be deleted explicitly by calling destroy() method - * - * Both instance() and destroy() methods are thread safe - * but not thread safety between simultaneous calls - * of instance() and destroy() is cared about - */ + /** + * @brief Singleton template + * Singleton classes must derive from this template specialized with class + *itself: + * + * class MySingleton : public Singleton<MySingleton> {...}; + * + * All such classes must declare instance() method as friend + * by adding FRIEND_BASE_SINGLETON_CLASS macro from macro.h to class + *definition: + * + * FRIEND_BASE_SINGLETON_CLASS(MySingleton); + * + * Instance of this class (if created) can be deleted by Deleter destructor + * which is called after main() (or from exit()) + * This requires T destructor to be accessible for Deleter (e.g. public) + * Deleter template parameter can be specified with any class + * with public default constructor, destructor and method + * void grab(T*); + * However, default Deleter specification does nothing + * + * Also instance can be deleted explicitly by calling destroy() method + * + * Both instance() and destroy() methods are thread safe + * but not thread safety between simultaneous calls + * of instance() and destroy() is cared about + */ public: -/** - * @brief Returns the singleton of class - */ + /** + * @brief Returns the singleton of class + */ static T* instance(); -/** - * @brief Destroys the singleton (if it had been created) - */ + /** + * @brief Destroys the singleton (if it had been created) + */ static void destroy(); -/** - * @brief Checks whether the singleton exists - */ + /** + * @brief Checks whether the singleton exists + */ static bool exists(); private: - static T** instance_pointer(); static Deleter* deleter(); static sync_primitives::Lock lock_; }; - -template<typename T, class Deleter> +template <typename T, class Deleter> sync_primitives::Lock Singleton<T, Deleter>::lock_; - -template<typename T, class Deleter> +template <typename T, class Deleter> T* Singleton<T, Deleter>::instance() { - T* local_instance; atomic_pointer_assign(local_instance, *instance_pointer()); memory_barrier(); @@ -142,9 +139,8 @@ T* Singleton<T, Deleter>::instance() { return local_instance; } -template<typename T, class Deleter> +template <typename T, class Deleter> void Singleton<T, Deleter>::destroy() { - T* local_instance; atomic_pointer_assign(local_instance, *instance_pointer()); memory_barrier(); @@ -162,18 +158,18 @@ void Singleton<T, Deleter>::destroy() { } } -template<typename T, class Deleter> +template <typename T, class Deleter> bool Singleton<T, Deleter>::exists() { return *instance_pointer() != 0; } -template<typename T, class Deleter> +template <typename T, class Deleter> T** Singleton<T, Deleter>::instance_pointer() { static T* instance = 0; return &instance; } -template<typename T, class Deleter> +template <typename T, class Deleter> Deleter* Singleton<T, Deleter>::deleter() { static Deleter deleter; return &deleter; diff --git a/src/components/utils/include/utils/sqlite_wrapper/sql_error.h b/src/components/utils/include/utils/sqlite_wrapper/sql_error.h index 70e73820f8..8a53e12169 100644 --- a/src/components/utils/include/utils/sqlite_wrapper/sql_error.h +++ b/src/components/utils/include/utils/sqlite_wrapper/sql_error.h @@ -39,37 +39,37 @@ namespace utils { namespace dbms { typedef enum Error { - OK = 0, /* Successful result */ - ERROR, /* SQL error or missing database */ - INTERNAL, /* Internal logic error in SQLite */ - PERM, /* Access permission denied */ - ABORT, /* Callback routine requested an abort */ - BUSY, /* The database file is locked */ - LOCKED, /* A table in the database is locked */ - NOMEM, /* A malloc() failed */ - READONLY, /* Attempt to write a readonly database */ - INTERRUPT, /* Operation terminated by sqlite3_interrupt()*/ - IOERR, /* Some kind of disk I/O error occurred */ - CORRUPT, /* The database disk image is malformed */ - NOTFOUND, /* Unknown opcode in sqlite3_file_control() */ - FULL, /* Insertion failed because database is full */ - CANTOPEN, /* Unable to open the database file */ - PROTOCOL, /* Database lock protocol error */ - EMPTY, /* Database is empty */ - SCHEMA, /* The database schema changed */ - TOOBIG, /* String or BLOB exceeds size limit */ - CONSTRAINT, /* Abort due to constraint violation */ - MISMATCH, /* Data type mismatch */ - MISUSE, /* Library used incorrectly */ - NOLFS, /* Uses OS features not supported on host */ - AUTH, /* Authorization denied */ - FORMAT, /* Auxiliary database format error */ - RANGE, /* 2nd parameter to sqlite3_bind out of range */ - NOTADB, /* File opened that is not a database file */ - NOTICE, /* Notifications from sqlite3_log() */ - WARNING, /* Warnings from sqlite3_log() */ - ROW = 100, /* sqlite3_step() has another row ready */ - DONE = 101 /* sqlite3_step() has finished executing */ + OK = 0, /* Successful result */ + ERROR, /* SQL error or missing database */ + INTERNAL, /* Internal logic error in SQLite */ + PERM, /* Access permission denied */ + ABORT, /* Callback routine requested an abort */ + BUSY, /* The database file is locked */ + LOCKED, /* A table in the database is locked */ + NOMEM, /* A malloc() failed */ + READONLY, /* Attempt to write a readonly database */ + INTERRUPT, /* Operation terminated by sqlite3_interrupt()*/ + IOERR, /* Some kind of disk I/O error occurred */ + CORRUPT, /* The database disk image is malformed */ + NOTFOUND, /* Unknown opcode in sqlite3_file_control() */ + FULL, /* Insertion failed because database is full */ + CANTOPEN, /* Unable to open the database file */ + PROTOCOL, /* Database lock protocol error */ + EMPTY, /* Database is empty */ + SCHEMA, /* The database schema changed */ + TOOBIG, /* String or BLOB exceeds size limit */ + CONSTRAINT, /* Abort due to constraint violation */ + MISMATCH, /* Data type mismatch */ + MISUSE, /* Library used incorrectly */ + NOLFS, /* Uses OS features not supported on host */ + AUTH, /* Authorization denied */ + FORMAT, /* Auxiliary database format error */ + RANGE, /* 2nd parameter to sqlite3_bind out of range */ + NOTADB, /* File opened that is not a database file */ + NOTICE, /* Notifications from sqlite3_log() */ + WARNING, /* Warnings from sqlite3_log() */ + ROW = 100, /* sqlite3_step() has another row ready */ + DONE = 101 /* sqlite3_step() has finished executing */ } Error; /** diff --git a/src/components/utils/include/utils/stl_utils.h b/src/components/utils/include/utils/stl_utils.h index 70fbadbd5e..4a4e3d2fe8 100644 --- a/src/components/utils/include/utils/stl_utils.h +++ b/src/components/utils/include/utils/stl_utils.h @@ -40,45 +40,48 @@ namespace utils { * Utility class that automatically deletes STL collection of * freestore objects */ -template<class T> +template <class T> class StlCollectionDeleter { public: typedef T Collection; - StlCollectionDeleter(T* collection) - : collection_(collection) { + StlCollectionDeleter(T* collection) : collection_(collection) { DCHECK(collection_); } ~StlCollectionDeleter() { - for (typename Collection::iterator i = collection_->begin(), end = - collection_->end(); i != end; ++i) { + for (typename Collection::iterator i = collection_->begin(), + end = collection_->end(); + i != end; + ++i) { delete *i; *i = NULL; } } + private: Collection* collection_; }; -template<class T> +template <class T> class StlMapDeleter { public: typedef T Collection; - StlMapDeleter(T* collection) - : collection_(collection) { + StlMapDeleter(T* collection) : collection_(collection) { DCHECK(collection_); } ~StlMapDeleter() { - for (typename Collection::iterator i = collection_->begin(), end = - collection_->end(); i != end; ++i) { + for (typename Collection::iterator i = collection_->begin(), + end = collection_->end(); + i != end; + ++i) { delete i->second; i->second = NULL; } - } + private: Collection* collection_; }; } // namespace utils -#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_STL_UTILS_H_ +#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_STL_UTILS_H_ diff --git a/src/components/utils/include/utils/threads/pulse_thread_delegate.h b/src/components/utils/include/utils/threads/pulse_thread_delegate.h index 207b64caaf..623e12b261 100644 --- a/src/components/utils/include/utils/threads/pulse_thread_delegate.h +++ b/src/components/utils/include/utils/threads/pulse_thread_delegate.h @@ -42,9 +42,11 @@ namespace threads { /** * @brief This ThreadDelegate derivative is designed * to implement threads waiting for QNX Pulse messages - * When constucted, an instance of this class creates QNX channel and connects to it + * When constucted, an instance of this class creates QNX channel and connects + * to it * In exitThreadMain() channel is disconnected and destroyed - * In threadMain() endless loop event is armed via pure virtual method ArmEvent() + * In threadMain() endless loop event is armed via pure virtual method + * ArmEvent() * and thread blocks on MsgReceivePulse() waiting for Pulse * When Pulse comes, OnPulse() pure virtual method is invoked * Subclassed must implement ArmEvent() for events of interest @@ -52,39 +54,42 @@ namespace threads { */ class PulseThreadDelegate : public ThreadDelegate { public: -/** - * @brief default constructor - */ + /** + * @brief default constructor + */ PulseThreadDelegate(); virtual void threadMain(); virtual void exitThreadMain(); protected: -/** - * @brief This method is to be implemented to arm events of interest - * @param event pointer to structure sigevent - * @return If this method returns true, thread is blocked on MsgReceivePulse() waiting for Pulse - */ + /** + * @brief This method is to be implemented to arm events of interest + * @param event pointer to structure sigevent + * @return If this method returns true, thread is blocked on + * MsgReceivePulse() waiting for Pulse + */ virtual bool ArmEvent(struct sigevent* event) = 0; -/** - * @brief This method is invoked from threadMain() when Pulse comes - */ + /** + * @brief This method is invoked from threadMain() when Pulse comes + */ virtual void OnPulse() = 0; /** * This method is to be initialize child class * @return If this method returns false, thread will be stopped */ - virtual bool Init() { return true; } + virtual bool Init() { + return true; + } -/** - * Finalizes thread - * Can free resources - */ + /** + * Finalizes thread + * Can free resources + */ virtual void Finalize() {} private: - enum {PULSE_CODE = _PULSE_CODE_MINAVAIL + 1}; + enum { PULSE_CODE = _PULSE_CODE_MINAVAIL + 1 }; volatile bool run_; int chid_; diff --git a/src/components/utils/include/utils/threads/thread_manager.h b/src/components/utils/include/utils/threads/thread_manager.h index d72abb428f..3f53c902c4 100644 --- a/src/components/utils/include/utils/threads/thread_manager.h +++ b/src/components/utils/include/utils/threads/thread_manager.h @@ -51,7 +51,7 @@ #include "utils/threads/thread_delegate.h" namespace threads { - class Thread; +class Thread; /* * This class is here currently to remember names associated to threads. @@ -69,12 +69,13 @@ class ThreadManager : public utils::Singleton<ThreadManager> { }; ThreadManager() {} MessageQueue<ThreadDesc> threads_to_terminate; + private: DISALLOW_COPY_AND_ASSIGN(ThreadManager); FRIEND_BASE_SINGLETON_CLASS(ThreadManager); }; -} // namespace threads +} // namespace threads -#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_MANAGER_H_ +#endif // SRC_COMPONENTS_UTILS_INCLUDE_UTILS_THREADS_THREAD_MANAGER_H_ diff --git a/src/components/utils/include/utils/threads/thread_validator.h b/src/components/utils/include/utils/threads/thread_validator.h index dc2d138e2e..2e7dac02ab 100644 --- a/src/components/utils/include/utils/threads/thread_validator.h +++ b/src/components/utils/include/utils/threads/thread_validator.h @@ -68,11 +68,11 @@ class SingleThreadSimpleValidator { // of classes being checked for absence of concurrent access void AssertRunningOnCreationThread() const; PlatformThreadHandle creation_thread_id() const; + private: const PlatformThreadHandle creation_thread_id_; }; - /* * This is bit more sophisticated debug helper which allows * objects being checked to be transferred between threads. @@ -97,10 +97,11 @@ class SingleThreadValidator { // of classes being checked for absence of unintended concurrent // access void AssertRunningOnValidThread() const; + private: mutable PlatformThreadHandle owning_thread_id_; }; -} // namespace threads +} // namespace threads -#endif // SRC_COMPONENTS_UTILS_INCLUDE_THREADS_THREAD_VALIDATOR_H_ +#endif // SRC_COMPONENTS_UTILS_INCLUDE_THREADS_THREAD_VALIDATOR_H_ diff --git a/src/components/utils/include/utils/timer.h b/src/components/utils/include/utils/timer.h index 69b2d08a4d..837e7ed598 100644 --- a/src/components/utils/include/utils/timer.h +++ b/src/components/utils/include/utils/timer.h @@ -65,7 +65,7 @@ class Timer { * Stops timer if it's running */ ~Timer(); - + /** * @brief Starts timer with specified timeout * @param timeout Timer timeout diff --git a/src/components/utils/src/auto_trace.cc b/src/components/utils/src/auto_trace.cc index 606e8330cb..0379630319 100644 --- a/src/components/utils/src/auto_trace.cc +++ b/src/components/utils/src/auto_trace.cc @@ -38,32 +38,28 @@ namespace logger { -AutoTrace::AutoTrace( - log4cxx::LoggerPtr logger, - const log4cxx::spi::LocationInfo& location) : - logger_(logger), location_(location) { - if (logger::logs_enabled() && - logger_->isTraceEnabled()) { +AutoTrace::AutoTrace(log4cxx::LoggerPtr logger, + const log4cxx::spi::LocationInfo& location) + : logger_(logger), location_(location) { + if (logger::logs_enabled() && logger_->isTraceEnabled()) { push_log(logger_, ::log4cxx::Level::getTrace(), "Enter", apr_time_now(), location_, - ::log4cxx::spi::LoggingEvent::getCurrentThreadName() - ); + ::log4cxx::spi::LoggingEvent::getCurrentThreadName()); } } AutoTrace::~AutoTrace() { - if (logger::logs_enabled() && - logger_->isTraceEnabled()) { + if (logger::logs_enabled() && logger_->isTraceEnabled()) { push_log(logger_, ::log4cxx::Level::getTrace(), "Exit", apr_time_now(), - location_, // the location corresponds rather to creation of autotrace object than to deletion - ::log4cxx::spi::LoggingEvent::getCurrentThreadName() - ); + location_, // the location corresponds rather to creation of + // autotrace object than to deletion + ::log4cxx::spi::LoggingEvent::getCurrentThreadName()); } } diff --git a/src/components/utils/src/back_trace.cc b/src/components/utils/src/back_trace.cc index f49c60b467..c587643cc6 100644 --- a/src/components/utils/src/back_trace.cc +++ b/src/components/utils/src/back_trace.cc @@ -67,16 +67,16 @@ string demangle(const char* symbol) { Backtrace::Backtrace(int32_t count, int32_t skip_top) : thread_id_(threads::Thread::CurrentId()) { - int32_t skip = skip_top + 1; // Skip this constructor - vector<void*> full_trace (count + skip); + int32_t skip = skip_top + 1; // Skip this constructor + vector<void*> full_trace(count + skip); int32_t captured = backtrace(&full_trace.front(), count + skip); int32_t first_call = std::min(captured, skip); int32_t last_call = std::min(first_call + count, captured); - backtrace_.assign(full_trace.begin() + first_call, full_trace.begin() + last_call); + backtrace_.assign(full_trace.begin() + first_call, + full_trace.begin() + last_call); } -Backtrace::~Backtrace() { -} +Backtrace::~Backtrace() {} vector<string> Backtrace::CallStack() const { vector<string> callstack; @@ -93,15 +93,16 @@ threads::PlatformThreadHandle Backtrace::ThreadId() const { return thread_id_; } -ostream& operator<< (ostream& os, const Backtrace& bt) { +ostream& operator<<(ostream& os, const Backtrace& bt) { const vector<string> symbols = bt.CallStack(); - os<<"Stack trace ("<<bt.ThreadId()<<")\n"; + os << "Stack trace (" << bt.ThreadId() << ")\n"; if (symbols.empty()) { - os<<"Not available"<<std::endl; - } else for (size_t i = 0; i < symbols.size(); ++i) { - os<<symbols[i]<<std::endl; - } + os << "Not available" << std::endl; + } else + for (size_t i = 0; i < symbols.size(); ++i) { + os << symbols[i] << std::endl; + } return os; } -} // namespace utils +} // namespace utils diff --git a/src/components/utils/src/bitstream.cc b/src/components/utils/src/bitstream.cc index ae353b44c6..e0cc502d54 100644 --- a/src/components/utils/src/bitstream.cc +++ b/src/components/utils/src/bitstream.cc @@ -34,15 +34,13 @@ namespace utils { BitStream::BitStream(uint8_t* bytes, size_t bytes_count) - : bytes_(bytes), - bytes_count_(bytes_count), - byte_offset_(0), - bit_offset_(0), - bad_(false) { -} + : bytes_(bytes) + , bytes_count_(bytes_count) + , byte_offset_(0) + , bit_offset_(0) + , bad_(false) {} -BitStream::~BitStream() { -} +BitStream::~BitStream() {} size_t BitStream::FullBytesLeft() { size_t left = bytes_count_ - byte_offset_; @@ -104,7 +102,7 @@ void Extract(BitStream* bs, std::string* str, size_t length) { bs->MarkBad(); return; } - str->resize(length+1); + str->resize(length + 1); void* stringdata = &(*str)[0]; bs->ExtractBytes(stringdata, length); str->resize(length); @@ -129,4 +127,3 @@ void Extract(BitStream* bs, std::vector<uint8_t>* data, size_t length) { } } // namespace utils - diff --git a/src/components/utils/src/conditional_variable_posix.cc b/src/components/utils/src/conditional_variable_posix.cc index 1fde18b1f9..50ebc74556 100644 --- a/src/components/utils/src/conditional_variable_posix.cc +++ b/src/components/utils/src/conditional_variable_posix.cc @@ -49,44 +49,43 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") ConditionalVariable::ConditionalVariable() { pthread_condattr_t attrs; - int initialized = pthread_condattr_init(&attrs); + int initialized = pthread_condattr_init(&attrs); if (initialized != 0) - LOG4CXX_ERROR(logger_, "Failed to initialize " - "conditional variable attributes"); + LOG4CXX_ERROR(logger_, + "Failed to initialize " + "conditional variable attributes"); pthread_condattr_setclock(&attrs, CLOCK_MONOTONIC); initialized = pthread_cond_init(&cond_var_, &attrs); if (initialized != 0) - LOG4CXX_ERROR(logger_, "Failed to initialize " - "conditional variable"); + LOG4CXX_ERROR(logger_, + "Failed to initialize " + "conditional variable"); int rv = pthread_condattr_destroy(&attrs); if (rv != 0) - LOG4CXX_ERROR(logger_, "Failed to destroy " - "conditional variable attributes"); + LOG4CXX_ERROR(logger_, + "Failed to destroy " + "conditional variable attributes"); } ConditionalVariable::~ConditionalVariable() { pthread_cond_destroy(&cond_var_); - } void ConditionalVariable::NotifyOne() { int signaled = pthread_cond_signal(&cond_var_); if (signaled != 0) LOG4CXX_ERROR(logger_, "Failed to signal conditional variable"); - } void ConditionalVariable::Broadcast() { int signaled = pthread_cond_broadcast(&cond_var_); if (signaled != 0) LOG4CXX_ERROR(logger_, "Failed to broadcast conditional variable"); - } bool ConditionalVariable::Wait(Lock& lock) { lock.AssertTakenAndMarkFree(); - int wait_status = pthread_cond_wait(&cond_var_, - &lock.mutex_); + int wait_status = pthread_cond_wait(&cond_var_, &lock.mutex_); lock.AssertFreeAndMarkTaken(); if (wait_status != 0) { LOG4CXX_ERROR(logger_, "Failed to wait for conditional variable"); @@ -98,8 +97,7 @@ bool ConditionalVariable::Wait(Lock& lock) { bool ConditionalVariable::Wait(AutoLock& auto_lock) { Lock& lock = auto_lock.GetLock(); lock.AssertTakenAndMarkFree(); - int wait_status = pthread_cond_wait(&cond_var_, - &lock.mutex_); + int wait_status = pthread_cond_wait(&cond_var_, &lock.mutex_); lock.AssertFreeAndMarkTaken(); if (wait_status != 0) { LOG4CXX_ERROR(logger_, "Failed to wait for conditional variable"); @@ -109,24 +107,23 @@ bool ConditionalVariable::Wait(AutoLock& auto_lock) { } ConditionalVariable::WaitStatus ConditionalVariable::WaitFor( - AutoLock& auto_lock, uint32_t milliseconds){ + AutoLock& auto_lock, uint32_t milliseconds) { struct timespec now; clock_gettime(CLOCK_MONOTONIC, &now); timespec wait_interval; - wait_interval.tv_sec = now.tv_sec + - (milliseconds / kMillisecondsPerSecond); - wait_interval.tv_nsec = now.tv_nsec + + wait_interval.tv_sec = now.tv_sec + (milliseconds / kMillisecondsPerSecond); + wait_interval.tv_nsec = + now.tv_nsec + (milliseconds % kMillisecondsPerSecond) * kNanosecondsPerMillisecond; wait_interval.tv_sec += wait_interval.tv_nsec / kNanosecondsPerSecond; wait_interval.tv_nsec %= kNanosecondsPerSecond; Lock& lock = auto_lock.GetLock(); lock.AssertTakenAndMarkFree(); - int timedwait_status = pthread_cond_timedwait(&cond_var_, - &lock.mutex_, - &wait_interval); + int timedwait_status = + pthread_cond_timedwait(&cond_var_, &lock.mutex_, &wait_interval); lock.AssertFreeAndMarkTaken(); WaitStatus wait_status = kNoTimeout; - switch(timedwait_status) { + switch (timedwait_status) { case 0: { wait_status = kNoTimeout; break; @@ -140,10 +137,13 @@ ConditionalVariable::WaitStatus ConditionalVariable::WaitFor( break; } default: { - LOG4CXX_ERROR(logger_, "Failed to timewait for conditional variable timedwait_status: " << timedwait_status); + LOG4CXX_ERROR( + logger_, + "Failed to timewait for conditional variable timedwait_status: " + << timedwait_status); } } return wait_status; } -} // namespace sync_primitives +} // namespace sync_primitives diff --git a/src/components/utils/src/convert_utils.cc b/src/components/utils/src/convert_utils.cc index 50a32f3da0..319b231a96 100644 --- a/src/components/utils/src/convert_utils.cc +++ b/src/components/utils/src/convert_utils.cc @@ -52,13 +52,15 @@ int64_t utils::ConvertLongLongIntToInt64(const long long int value) { return static_cast<int64_t>(value); } -unsigned long long int utils::ConvertUInt64ToLongLongUInt(const uint64_t value) { +unsigned long long int utils::ConvertUInt64ToLongLongUInt( + const uint64_t value) { DCHECK(value >= std::numeric_limits<unsigned long long int>::min()); DCHECK(value <= std::numeric_limits<unsigned long long int>::max()); return static_cast<unsigned long long int>(value); } -uint64_t utils::ConvertLongLongUIntToUInt64(const unsigned long long int value) { +uint64_t utils::ConvertLongLongUIntToUInt64( + const unsigned long long int value) { DCHECK_OR_RETURN( value >= std::numeric_limits<uint64_t>::min(), std::min<uint64_t>(value, std::numeric_limits<uint64_t>::min())); diff --git a/src/components/utils/src/date_time.cc b/src/components/utils/src/date_time.cc index 9313874f48..fdf0926eb2 100644 --- a/src/components/utils/src/date_time.cc +++ b/src/components/utils/src/date_time.cc @@ -34,41 +34,41 @@ #include <stdint.h> #include "utils/date_time.h" - namespace date_time { - TimevalStruct DateTime::getCurrentTime() { - TimevalStruct currentTime; - timezone timeZone; +TimevalStruct DateTime::getCurrentTime() { + TimevalStruct currentTime; + timezone timeZone; - gettimeofday(¤tTime, &timeZone); + gettimeofday(¤tTime, &timeZone); - return currentTime; - } + return currentTime; +} -int64_t date_time::DateTime::getSecs(const TimevalStruct &time) { - const TimevalStruct times = ConvertionUsecs(time); - return static_cast<int64_t>(times.tv_sec); +int64_t date_time::DateTime::getSecs(const TimevalStruct& time) { + const TimevalStruct times = ConvertionUsecs(time); + return static_cast<int64_t>(times.tv_sec); } -int64_t DateTime::getmSecs(const TimevalStruct &time) { +int64_t DateTime::getmSecs(const TimevalStruct& time) { const TimevalStruct times = ConvertionUsecs(time); - return static_cast<int64_t>(times.tv_sec) * MILLISECONDS_IN_SECOND - + times.tv_usec / MICROSECONDS_IN_MILLISECOND; + return static_cast<int64_t>(times.tv_sec) * MILLISECONDS_IN_SECOND + + times.tv_usec / MICROSECONDS_IN_MILLISECOND; } -int64_t DateTime::getuSecs(const TimevalStruct &time) { +int64_t DateTime::getuSecs(const TimevalStruct& time) { const TimevalStruct times = ConvertionUsecs(time); - return static_cast<int64_t>(times.tv_sec) * MILLISECONDS_IN_SECOND - * MICROSECONDS_IN_MILLISECOND + times.tv_usec; + return static_cast<int64_t>(times.tv_sec) * MILLISECONDS_IN_SECOND * + MICROSECONDS_IN_MILLISECOND + + times.tv_usec; } int64_t DateTime::calculateTimeSpan(const TimevalStruct& sinceTime) { return calculateTimeDiff(getCurrentTime(), sinceTime); } -int64_t DateTime::calculateTimeDiff(const TimevalStruct &time1, - const TimevalStruct &time2){ +int64_t DateTime::calculateTimeDiff(const TimevalStruct& time1, + const TimevalStruct& time2) { const TimevalStruct times1 = ConvertionUsecs(time1); const TimevalStruct times2 = ConvertionUsecs(time2); TimevalStruct ret; @@ -80,10 +80,10 @@ int64_t DateTime::calculateTimeDiff(const TimevalStruct &time1, return getmSecs(ret); } -void DateTime::AddMilliseconds(TimevalStruct& time, - uint32_t milliseconds) { - const uint32_t sec = milliseconds/MILLISECONDS_IN_SECOND; - const uint32_t usec = (milliseconds%MILLISECONDS_IN_SECOND)*MICROSECONDS_IN_MILLISECOND; +void DateTime::AddMilliseconds(TimevalStruct& time, uint32_t milliseconds) { + const uint32_t sec = milliseconds / MILLISECONDS_IN_SECOND; + const uint32_t usec = + (milliseconds % MILLISECONDS_IN_SECOND) * MICROSECONDS_IN_MILLISECOND; time.tv_sec += sec; time.tv_usec += usec; time = ConvertionUsecs(time); @@ -101,31 +101,35 @@ TimevalStruct DateTime::Sub(const TimevalStruct& time1, bool DateTime::Greater(const TimevalStruct& time1, const TimevalStruct& time2) { const TimevalStruct times1 = ConvertionUsecs(time1); const TimevalStruct times2 = ConvertionUsecs(time2); - return timercmp(×1, ×2, >); + return timercmp(×1, ×2, > ); } bool DateTime::Less(const TimevalStruct& time1, const TimevalStruct& time2) { const TimevalStruct times1 = ConvertionUsecs(time1); const TimevalStruct times2 = ConvertionUsecs(time2); - return timercmp(×1, ×2, <); + return timercmp(×1, ×2, < ); } bool DateTime::Equal(const TimevalStruct& time1, const TimevalStruct& time2) { const TimevalStruct times1 = ConvertionUsecs(time1); const TimevalStruct times2 = ConvertionUsecs(time2); - return !timercmp(×1, ×2, !=); + return !timercmp(×1, ×2, != ); } -TimeCompare date_time::DateTime::compareTime(const TimevalStruct &time1, const TimevalStruct &time2) { - if (Greater(time1, time2)) return GREATER; - if (Less(time1, time2)) return LESS; +TimeCompare date_time::DateTime::compareTime(const TimevalStruct& time1, + const TimevalStruct& time2) { + if (Greater(time1, time2)) + return GREATER; + if (Less(time1, time2)) + return LESS; return EQUAL; } -TimevalStruct date_time::DateTime::ConvertionUsecs(const TimevalStruct &time){ +TimevalStruct date_time::DateTime::ConvertionUsecs(const TimevalStruct& time) { if (time.tv_usec >= MICROSECONDS_IN_SECOND) { TimevalStruct time1; - time1.tv_sec = static_cast<int64_t>(time.tv_sec) + (time.tv_usec/MICROSECONDS_IN_SECOND); + time1.tv_sec = static_cast<int64_t>(time.tv_sec) + + (time.tv_usec / MICROSECONDS_IN_SECOND); time1.tv_usec = static_cast<int64_t>(time.tv_usec) % MICROSECONDS_IN_SECOND; return time1; } @@ -142,6 +146,7 @@ bool operator==(const TimevalStruct& time1, const TimevalStruct& time2) { return date_time::DateTime::Equal(time1, time2); } -const TimevalStruct operator-(const TimevalStruct& time1, const TimevalStruct& time2) { - return date_time::DateTime::Sub(time1, time2); +const TimevalStruct operator-(const TimevalStruct& time1, + const TimevalStruct& time2) { + return date_time::DateTime::Sub(time1, time2); } diff --git a/src/components/utils/src/lock_posix.cc b/src/components/utils/src/lock_posix.cc index 8c943124b4..0a678123f0 100644 --- a/src/components/utils/src/lock_posix.cc +++ b/src/components/utils/src/lock_posix.cc @@ -44,18 +44,18 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") Lock::Lock() #ifndef NDEBUG - : lock_taken_(0), - is_mutex_recursive_(false) -#endif // NDEBUG + : lock_taken_(0) + , is_mutex_recursive_(false) +#endif // NDEBUG { Init(false); } Lock::Lock(bool is_recursive) #ifndef NDEBUG - : lock_taken_(0), - is_mutex_recursive_(is_recursive) -#endif // NDEBUG + : lock_taken_(0) + , is_mutex_recursive_(is_recursive) +#endif // NDEBUG { Init(is_recursive); } @@ -68,16 +68,18 @@ Lock::~Lock() { #endif int32_t status = pthread_mutex_destroy(&mutex_); if (status != 0) { - LOG4CXX_ERROR(logger_, "Failed to destroy mutex " << &mutex_ << ": " - << strerror(status)); + LOG4CXX_ERROR(logger_, + "Failed to destroy mutex " << &mutex_ << ": " + << strerror(status)); } } void Lock::Acquire() { const int32_t status = pthread_mutex_lock(&mutex_); if (status != 0) { - LOG4CXX_FATAL(logger_, "Failed to acquire mutex " << &mutex_ << ": " - << strerror(status)); + LOG4CXX_FATAL(logger_, + "Failed to acquire mutex " << &mutex_ << ": " + << strerror(status)); DCHECK(status != 0); } else { AssertFreeAndMarkTaken(); @@ -88,8 +90,9 @@ void Lock::Release() { AssertTakenAndMarkFree(); const int32_t status = pthread_mutex_unlock(&mutex_); if (status != 0) { - LOG4CXX_ERROR(logger_, "Failed to unlock mutex" << &mutex_ << ": " - << strerror(status)); + LOG4CXX_ERROR(logger_, + "Failed to unlock mutex" << &mutex_ << ": " + << strerror(status)); } } @@ -125,9 +128,8 @@ void Lock::Init(bool is_recursive) { pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); - const int32_t mutex_type = is_recursive - ? PTHREAD_MUTEX_RECURSIVE - : PTHREAD_MUTEX_ERRORCHECK; + const int32_t mutex_type = + is_recursive ? PTHREAD_MUTEX_RECURSIVE : PTHREAD_MUTEX_ERRORCHECK; pthread_mutexattr_settype(&attr, mutex_type); const int32_t status = pthread_mutex_init(&mutex_, &attr); @@ -135,8 +137,8 @@ void Lock::Init(bool is_recursive) { pthread_mutexattr_destroy(&attr); if (status != 0) { - LOG4CXX_FATAL(logger_, "Failed to initialize mutex. " - << std::strerror(status)); + LOG4CXX_FATAL(logger_, + "Failed to initialize mutex. " << std::strerror(status)); DCHECK(status != 0); } } diff --git a/src/components/utils/src/log_message_loop_thread.cc b/src/components/utils/src/log_message_loop_thread.cc index 1403a5f712..77bc8107eb 100644 --- a/src/components/utils/src/log_message_loop_thread.cc +++ b/src/components/utils/src/log_message_loop_thread.cc @@ -43,13 +43,12 @@ void LogMessageHandler::Handle(const LogMessage message) { message.threadName); } -LogMessageLoopThread::LogMessageLoopThread() : - LogMessageLoopThreadTemplate("Logger", new LogMessageHandler()) { -} +LogMessageLoopThread::LogMessageLoopThread() + : LogMessageLoopThreadTemplate("Logger", new LogMessageHandler()) {} LogMessageLoopThread::~LogMessageLoopThread() { -// we'll have to drop messages -// while deleting logger thread + // we'll have to drop messages + // while deleting logger thread logger_status = DeletingLoggerThread; } diff --git a/src/components/utils/src/logger.cc b/src/components/utils/src/logger.cc index 7d6eb6386a..4e93ca3d14 100644 --- a/src/components/utils/src/logger.cc +++ b/src/components/utils/src/logger.cc @@ -35,15 +35,17 @@ #include "utils/logger_status.h" #include <apr_time.h> -void deinit_logger () { +void deinit_logger() { CREATE_LOGGERPTR_LOCAL(logger_, "Utils") LOG4CXX_DEBUG(logger_, "Logger deinitialization"); logger::set_logs_enabled(false); logger::delete_log_message_loop_thread(); log4cxx::LoggerPtr rootLogger = log4cxx::Logger::getRootLogger(); - log4cxx::spi::LoggerRepositoryPtr repository = rootLogger->getLoggerRepository(); + log4cxx::spi::LoggerRepositoryPtr repository = + rootLogger->getLoggerRepository(); log4cxx::LoggerList loggers = repository->getCurrentLoggers(); - for (log4cxx::LoggerList::iterator i = loggers.begin(); i != loggers.end(); ++i) { + for (log4cxx::LoggerList::iterator i = loggers.begin(); i != loggers.end(); + ++i) { log4cxx::LoggerPtr logger = *i; logger->removeAllAppenders(); } diff --git a/src/components/utils/src/push_log.cc b/src/components/utils/src/push_log.cc index 9825ad9df4..6e16c99181 100644 --- a/src/components/utils/src/push_log.cc +++ b/src/components/utils/src/push_log.cc @@ -44,10 +44,10 @@ bool push_log(log4cxx::LoggerPtr logger, const std::string& entry, log4cxx_time_t timeStamp, const log4cxx::spi::LocationInfo& location, - const log4cxx::LogString& threadName - ) { + const log4cxx::LogString& threadName) { if (LoggerThreadCreated == logger_status) { - LogMessage message = {logger, level, entry, timeStamp, location, threadName}; + LogMessage message = { + logger, level, entry, timeStamp, location, threadName}; if (log_message_loop_thread) { log_message_loop_thread->PostMessage(message); return true; @@ -56,17 +56,18 @@ bool push_log(log4cxx::LoggerPtr logger, if (LoggerThreadNotCreated == logger_status) { logger_status = CreatingLoggerThread; -// we'll have to drop messages -// while creating logger thread + // we'll have to drop messages + // while creating logger thread create_log_message_loop_thread(); - LogMessage message = {logger, level, entry, timeStamp, location, threadName}; + LogMessage message = { + logger, level, entry, timeStamp, location, threadName}; log_message_loop_thread->PostMessage(message); logger_status = LoggerThreadCreated; return true; } -// also we drop messages -// while deleting logger thread + // also we drop messages + // while deleting logger thread return false; } @@ -91,11 +92,11 @@ void delete_log_message_loop_thread() { } void flush_logger() { - logger::LoggerStatus old_status = logger::logger_status; - // Stop pushing new messages to the log queue - logger::logger_status = logger::DeletingLoggerThread; - log_message_loop_thread->WaitDumpQueue(); - logger::logger_status = old_status; + logger::LoggerStatus old_status = logger::logger_status; + // Stop pushing new messages to the log queue + logger::logger_status = logger::DeletingLoggerThread; + log_message_loop_thread->WaitDumpQueue(); + logger::logger_status = old_status; } } // namespace logger diff --git a/src/components/utils/src/qdb_wrapper/sql_database.cc b/src/components/utils/src/qdb_wrapper/sql_database.cc index aabef97f3f..b95fe17845 100644 --- a/src/components/utils/src/qdb_wrapper/sql_database.cc +++ b/src/components/utils/src/qdb_wrapper/sql_database.cc @@ -40,10 +40,7 @@ namespace dbms { CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") SQLDatabase::SQLDatabase(const std::string& db_name) - : conn_(NULL), - db_name_(db_name), - error_(Error::OK) { -} + : conn_(NULL), db_name_(db_name), error_(Error::OK) {} SQLDatabase::~SQLDatabase() { Close(); @@ -51,7 +48,8 @@ SQLDatabase::~SQLDatabase() { bool SQLDatabase::Open() { sync_primitives::AutoLock auto_lock(conn_lock_); - if (conn_) return true; + if (conn_) + return true; conn_ = qdb_connect(db_name_.c_str(), 0); if (conn_ == NULL) { error_ = Error::ERROR; @@ -102,9 +100,9 @@ qdb_hdl_t* SQLDatabase::conn() const { bool SQLDatabase::Backup() { if (qdb_backup(conn_, QDB_ATTACH_DEFAULT) == -1) { - error_ = Error::ERROR; + error_ = Error::ERROR; LOG4CXX_ERROR(logger_, "Backup returned error: " << std::strerror(errno)); - return false; + return false; } LOG4CXX_INFO(logger_, "Backup was successful."); return true; diff --git a/src/components/utils/src/qdb_wrapper/sql_error.cc b/src/components/utils/src/qdb_wrapper/sql_error.cc index 22b02a3452..c99a4d2ae3 100644 --- a/src/components/utils/src/qdb_wrapper/sql_error.cc +++ b/src/components/utils/src/qdb_wrapper/sql_error.cc @@ -36,9 +36,7 @@ namespace utils { namespace dbms { SQLError::SQLError(Error number, const std::string& text) - : number_(number), - text_(text) { -} + : number_(number), text_(text) {} Error SQLError::number() const { return number_; @@ -63,4 +61,3 @@ std::string SQLError::text() const { } // namespace dbms } // namespace utils - diff --git a/src/components/utils/src/qdb_wrapper/sql_query.cc b/src/components/utils/src/qdb_wrapper/sql_query.cc index 755a595515..e5facb5853 100644 --- a/src/components/utils/src/qdb_wrapper/sql_query.cc +++ b/src/components/utils/src/qdb_wrapper/sql_query.cc @@ -41,70 +41,65 @@ namespace utils { namespace dbms { - CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") +CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") class SetBindInteger { public: - explicit SetBindInteger(qdb_binding_t* array) - : array_(array) { - } + explicit SetBindInteger(qdb_binding_t* array) : array_(array) {} void operator()(const std::pair<int, int64_t>& x) { // In QDB the number of position for binding starts since 1. QDB_SETARRAYBIND_INT(array_, x.first + 1, x.second); } + private: qdb_binding_t* array_; }; class SetBindReal { public: - explicit SetBindReal(qdb_binding_t* array) - : array_(array) { - } + explicit SetBindReal(qdb_binding_t* array) : array_(array) {} void operator()(const std::pair<int, double>& x) { // In QDB the number of position for binding starts since 1. QDB_SETARRAYBIND_REAL(array_, x.first + 1, x.second); } + private: qdb_binding_t* array_; }; class SetBindText { public: - explicit SetBindText(qdb_binding_t* array) - : array_(array) { - } + explicit SetBindText(qdb_binding_t* array) : array_(array) {} void operator()(const std::pair<int, std::string>& x) { // In QDB the number of position for binding starts since 1. QDB_SETARRAYBIND_TEXT(array_, x.first + 1, x.second.c_str()); } + private: qdb_binding_t* array_; }; class SetBindNull { public: - explicit SetBindNull(qdb_binding_t* array) - : array_(array) { - } + explicit SetBindNull(qdb_binding_t* array) : array_(array) {} void operator()(int x) { // In QDB the number of position for binding starts since 1. QDB_SETARRAYBIND_NULL(array_, x + 1); } + private: qdb_binding_t* array_; }; SQLQuery::SQLQuery(SQLDatabase* db) - : db_(db), - query_(""), - statement_(-1), - bindings_(NULL), - result_(NULL), - current_row_(0), - rows_(0), - error_(Error::OK) { -} + : db_(db) + , query_("") + , statement_(-1) + , bindings_(NULL) + , result_(NULL) + , current_row_(0) + , rows_(0) + , error_(Error::OK) {} SQLQuery::~SQLQuery() { Finalize(); @@ -124,17 +119,17 @@ bool SQLQuery::Prepare(const std::string& query) { } uint8_t SQLQuery::SetBinds() { - uint8_t binding_count = int_binds_.size() + double_binds_.size() - + string_binds_.size() + null_binds_.size(); + uint8_t binding_count = int_binds_.size() + double_binds_.size() + + string_binds_.size() + null_binds_.size(); bindings_ = new qdb_binding_t[binding_count]; - std::for_each(int_binds_.begin(), int_binds_.end(), - SetBindInteger(bindings_)); - std::for_each(double_binds_.begin(), double_binds_.end(), - SetBindReal(bindings_)); - std::for_each(string_binds_.begin(), string_binds_.end(), - SetBindText(bindings_)); + std::for_each( + int_binds_.begin(), int_binds_.end(), SetBindInteger(bindings_)); + std::for_each( + double_binds_.begin(), double_binds_.end(), SetBindReal(bindings_)); + std::for_each( + string_binds_.begin(), string_binds_.end(), SetBindText(bindings_)); std::for_each(null_binds_.begin(), null_binds_.end(), SetBindNull(bindings_)); return binding_count; @@ -239,7 +234,7 @@ bool SQLQuery::GetBoolean(int pos) const { int SQLQuery::GetInteger(int pos) const { void* ret = qdb_cell(result_, current_row_, pos); - if (rows_ !=0 && ret) { + if (rows_ != 0 && ret) { return *static_cast<int*>(ret); } return 0; @@ -247,7 +242,7 @@ int SQLQuery::GetInteger(int pos) const { uint32_t SQLQuery::GetUInteger(int pos) const { void* ret = qdb_cell(result_, current_row_, pos); - if (rows_ !=0 && ret) { + if (rows_ != 0 && ret) { return *static_cast<uint32_t*>(ret); } return 0; @@ -255,16 +250,15 @@ uint32_t SQLQuery::GetUInteger(int pos) const { int64_t SQLQuery::GetLongInt(int pos) const { void* ret = qdb_cell(result_, current_row_, pos); - if (rows_ !=0 && ret) { + if (rows_ != 0 && ret) { return *static_cast<int64_t*>(ret); } return 0; } - double SQLQuery::GetDouble(int pos) const { void* ret = qdb_cell(result_, current_row_, pos); - if (rows_ !=0 && ret) { + if (rows_ != 0 && ret) { return *static_cast<double*>(ret); } return 0; @@ -297,4 +291,3 @@ int64_t SQLQuery::LastInsertId() const { } // namespace dbms } // namespace utils - diff --git a/src/components/utils/src/resource_usage.cc b/src/components/utils/src/resource_usage.cc index 62c8d25b82..385c2bfa2e 100644 --- a/src/components/utils/src/resource_usage.cc +++ b/src/components/utils/src/resource_usage.cc @@ -47,7 +47,7 @@ bool Resources::ReadStatFile(std::string& output) { if (false == file_system::FileExists(filename)) { return false; } - if (false == file_system::ReadFile(filename,output)) { + if (false == file_system::ReadFile(filename, output)) { return false; } return true; @@ -60,61 +60,95 @@ bool Resources::GetProcInfo(Resources::PidStats& output) { return false; } uint32_t num_succes = sscanf(proc_buf.c_str(), - "%d" //pid - " %*s"//com - " %c" //state - " %d" //ppid - " %d" //pgrp - " %d" //session - " %d" //tty_nr - " %d" //tpgid - " %u" //flags - " %lu" //minflt - " %lu" //cminflt - " %lu" //majflt - " %lu" //cmajflt - " %lu" //utime - " %lu" //stime - " %ld" //cutime - " %ld" //cstime - " %ld" //priority - " %ld" //nice - " %ld" //num_threads - " %ld" //itrealvalue - " %llu" //starttime - " %lu" //vsize - " %ld" //rss - " %lu" //rsslim - " %lu" //startcode - " %lu" //endcode - " %lu" //startstack - " %lu" //kstkesp - " %lu" //kstkip - " %lu" //signal - " %lu" //blocked - " %lu" //sigignore - " %lu" //sigcatch - " %lu" //wchan - " %lu" //nswap - " %lu" //cnswap - " %d" //exit_signal - " %d" //processor - " %u" //rt_priority - " %u" //policy - " %llu" //delayacct_blkio_ticks - " %lu" //guest_time - " %ld" //cguest_time - ,&(output.pid), &(output.state), &(output.ppid), &(output.pgrp), &(output.session), - &(output.tty_nr), &(output.tpgid), &(output.flags), &(output.minflt), &(output.cminflt), - &(output.majflt), &(output.cmajflt), &(output.utime), &(output.stime), &(output.cutime), - &(output.cstime), &(output.priority), &( output.nice), &(output.num_threads), &(output.itrealvalue), - &(output.starttime), &(output.vsize), &(output.rss), &(output.rsslim), &(output.startcode), - &(output.endcode), &(output.startstack), &(output.kstkesp), &(output.kstkeip), &(output.signal), - &(output.blocked), &(output.sigignore), &(output.sigcatch), &(output.wchan), &(output.nswap), - &(output.cnswap), &(output.exit_signal), &(output.processor), &(output.rt_priority), &(output.policy), - &(output.delayacct_blkio_ticks), &(output.guest_time), &(output.cguest_time) - ); - if(num_succes != 43) { // 43 is number of iteams in Resources::PidStats + "%d" // pid + " %*s" // com + " %c" // state + " %d" // ppid + " %d" // pgrp + " %d" // session + " %d" // tty_nr + " %d" // tpgid + " %u" // flags + " %lu" // minflt + " %lu" // cminflt + " %lu" // majflt + " %lu" // cmajflt + " %lu" // utime + " %lu" // stime + " %ld" // cutime + " %ld" // cstime + " %ld" // priority + " %ld" // nice + " %ld" // num_threads + " %ld" // itrealvalue + " %llu" // starttime + " %lu" // vsize + " %ld" // rss + " %lu" // rsslim + " %lu" // startcode + " %lu" // endcode + " %lu" // startstack + " %lu" // kstkesp + " %lu" // kstkip + " %lu" // signal + " %lu" // blocked + " %lu" // sigignore + " %lu" // sigcatch + " %lu" // wchan + " %lu" // nswap + " %lu" // cnswap + " %d" // exit_signal + " %d" // processor + " %u" // rt_priority + " %u" // policy + " %llu" // delayacct_blkio_ticks + " %lu" // guest_time + " %ld" // cguest_time + , + &(output.pid), + &(output.state), + &(output.ppid), + &(output.pgrp), + &(output.session), + &(output.tty_nr), + &(output.tpgid), + &(output.flags), + &(output.minflt), + &(output.cminflt), + &(output.majflt), + &(output.cmajflt), + &(output.utime), + &(output.stime), + &(output.cutime), + &(output.cstime), + &(output.priority), + &(output.nice), + &(output.num_threads), + &(output.itrealvalue), + &(output.starttime), + &(output.vsize), + &(output.rss), + &(output.rsslim), + &(output.startcode), + &(output.endcode), + &(output.startstack), + &(output.kstkesp), + &(output.kstkeip), + &(output.signal), + &(output.blocked), + &(output.sigignore), + &(output.sigcatch), + &(output.wchan), + &(output.nswap), + &(output.cnswap), + &(output.exit_signal), + &(output.processor), + &(output.rt_priority), + &(output.policy), + &(output.delayacct_blkio_ticks), + &(output.guest_time), + &(output.cguest_time)); + if (num_succes != 43) { // 43 is number of iteams in Resources::PidStats LOG4CXX_ERROR(logger_, "Couldn't parse all iteams in /proc/PID/stat file"); return false; } @@ -122,8 +156,9 @@ bool Resources::GetProcInfo(Resources::PidStats& output) { #elif defined(__QNXNTO__) int fd = open(GetProcPath().c_str(), O_RDONLY); if (0 >= fd) { - LOG4CXX_ERROR(logger_, "Failed open process proc file : " << GetProcPath() << - "; error no : " << strerror( errno ) ); + LOG4CXX_ERROR(logger_, + "Failed open process proc file : " + << GetProcPath() << "; error no : " << strerror(errno)); close(fd); return false; @@ -134,9 +169,9 @@ bool Resources::GetProcInfo(Resources::PidStats& output) { #endif } -bool Resources::GetMemInfo(Resources::MemInfo &output) { +bool Resources::GetMemInfo(Resources::MemInfo& output) { bool result = false; - #if defined(OS_LINUX) +#if defined(OS_LINUX) Resources::PidStats pid_stat; if (false == GetProcInfo(pid_stat)) { LOG4CXX_ERROR(logger_, "Failed to get proc info"); @@ -154,7 +189,7 @@ bool Resources::GetMemInfo(Resources::MemInfo &output) { LOG4CXX_ERROR(logger_, "Unable to access to " << proc); result = false; return result; - } + } if (0 == readdir(proc_dir)) { LOG4CXX_ERROR(logger_, "Unable to read : " << proc_dir); closedir(proc_dir); @@ -163,9 +198,9 @@ bool Resources::GetMemInfo(Resources::MemInfo &output) { } closedir(proc_dir); if (-1 == stat(as_path.c_str(), &st) || 0 == st.st_size) { - LOG4CXX_ERROR(logger_, "Unable to stat : " << as_path.c_str()); - result = false; - return result; + LOG4CXX_ERROR(logger_, "Unable to stat : " << as_path.c_str()); + result = false; + return result; } output = st.st_size; result = true; @@ -186,9 +221,9 @@ std::string Resources::GetStatPath() { std::string Resources::GetProcPath() { char buffer[1024]; pid_t my_pid = getpid(); - snprintf(buffer, sizeof(buffer), "%s%d/", proc , my_pid); + snprintf(buffer, sizeof(buffer), "%s%d/", proc, my_pid); std::string filename(buffer); return filename; } -} // namespace utils +} // namespace utils diff --git a/src/components/utils/src/sqlite_wrapper/sql_database.cc b/src/components/utils/src/sqlite_wrapper/sql_database.cc index 88e43c3675..bf19275bac 100644 --- a/src/components/utils/src/sqlite_wrapper/sql_database.cc +++ b/src/components/utils/src/sqlite_wrapper/sql_database.cc @@ -40,14 +40,10 @@ const std::string SQLDatabase::kInMemory = ":memory:"; const std::string SQLDatabase::kExtension = ".sqlite"; SQLDatabase::SQLDatabase() - : conn_(NULL), - databasename_(kInMemory), - error_(SQLITE_OK) {} + : conn_(NULL), databasename_(kInMemory), error_(SQLITE_OK) {} SQLDatabase::SQLDatabase(const std::string& db_name) - : conn_(NULL), - databasename_(db_name + kExtension), - error_(SQLITE_OK) {} + : conn_(NULL), databasename_(db_name + kExtension), error_(SQLITE_OK) {} SQLDatabase::~SQLDatabase() { Close(); @@ -55,7 +51,8 @@ SQLDatabase::~SQLDatabase() { bool SQLDatabase::Open() { sync_primitives::AutoLock auto_lock(conn_lock_); - if (conn_) return true; + if (conn_) + return true; error_ = sqlite3_open(databasename_.c_str(), &conn_); return error_ == SQLITE_OK; } @@ -104,7 +101,7 @@ sqlite3* SQLDatabase::conn() const { } void SQLDatabase::set_path(const std::string& path) { - databasename_ = path + databasename_; + databasename_ = path + databasename_; } std::string SQLDatabase::get_path() const { @@ -112,7 +109,7 @@ std::string SQLDatabase::get_path() const { } bool SQLDatabase::Backup() { - return true; + return true; } } // namespace dbms } // namespace utils diff --git a/src/components/utils/src/sqlite_wrapper/sql_error.cc b/src/components/utils/src/sqlite_wrapper/sql_error.cc index 791d3455f1..9062731a81 100644 --- a/src/components/utils/src/sqlite_wrapper/sql_error.cc +++ b/src/components/utils/src/sqlite_wrapper/sql_error.cc @@ -36,9 +36,7 @@ namespace utils { namespace dbms { SQLError::SQLError(Error number, const std::string& text) - : number_(number), - text_(text) { -} + : number_(number), text_(text) {} Error SQLError::number() const { return number_; @@ -150,4 +148,3 @@ std::string SQLError::text() const { } // namespace dbms } // namespace utils - diff --git a/src/components/utils/src/sqlite_wrapper/sql_query.cc b/src/components/utils/src/sqlite_wrapper/sql_query.cc index ba2af76663..5a62ec360d 100644 --- a/src/components/utils/src/sqlite_wrapper/sql_query.cc +++ b/src/components/utils/src/sqlite_wrapper/sql_query.cc @@ -39,11 +39,7 @@ namespace utils { namespace dbms { SQLQuery::SQLQuery(SQLDatabase* db) - : db_(*db), - query_(""), - statement_(NULL), - error_(SQLITE_OK) { -} + : db_(*db), query_(""), statement_(NULL), error_(SQLITE_OK) {} SQLQuery::~SQLQuery() { Finalize(); @@ -52,9 +48,10 @@ SQLQuery::~SQLQuery() { bool SQLQuery::Prepare(const std::string& query) { Finalize(); sync_primitives::AutoLock auto_lock(statement_lock_); - if (statement_) return false; - error_ = sqlite3_prepare(db_.conn(), query.c_str(), query.length(), - &statement_, NULL); + if (statement_) + return false; + error_ = sqlite3_prepare( + db_.conn(), query.c_str(), query.length(), &statement_, NULL); query_ = query; return error_ == SQLITE_OK; } @@ -109,8 +106,8 @@ void SQLQuery::Bind(int pos, bool value) { void SQLQuery::Bind(int pos, const std::string& value) { // In SQLite the number of position for binding starts since 1. - error_ = sqlite3_bind_text(statement_, pos + 1, value.c_str(), value.length(), - SQLITE_TRANSIENT); + error_ = sqlite3_bind_text( + statement_, pos + 1, value.c_str(), value.length(), SQLITE_TRANSIENT); } bool SQLQuery::GetBoolean(int pos) const { @@ -122,13 +119,11 @@ int SQLQuery::GetInteger(int pos) const { } uint32_t SQLQuery::GetUInteger(int pos) const { - return static_cast<uint32_t>( - sqlite3_column_int64(statement_, pos)); + return static_cast<uint32_t>(sqlite3_column_int64(statement_, pos)); } int64_t SQLQuery::GetLongInt(int pos) const { - return static_cast<int64_t>( - sqlite3_column_int64(statement_, pos)); + return static_cast<int64_t>(sqlite3_column_int64(statement_, pos)); } double SQLQuery::GetDouble(int pos) const { @@ -164,4 +159,3 @@ int64_t SQLQuery::LastInsertId() const { } // namespace dbms } // namespace utils - diff --git a/src/components/utils/src/system.cc b/src/components/utils/src/system.cc index 70659419a7..6c3cf56133 100644 --- a/src/components/utils/src/system.cc +++ b/src/components/utils/src/system.cc @@ -30,13 +30,13 @@ * POSSIBILITY OF SUCH DAMAGE. */ #ifdef __QNX__ -# include <process.h> +#include <process.h> #else // __QNX__ -# include <sys/types.h> -# include <sys/wait.h> -# include <sys/stat.h> -# include <fcntl.h> -# include <unistd.h> +#include <sys/types.h> +#include <sys/wait.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> #endif // __QNX__ #include <algorithm> @@ -52,13 +52,12 @@ namespace utils { CREATE_LOGGERPTR_LOCAL(logger_, "Utils") struct GetCString { - char * operator ()(const std::string& string) { + char* operator()(const std::string& string) { return const_cast<char*>(string.c_str()); } }; -System::System(const std::string& command) - : command_(command) { +System::System(const std::string& command) : command_(command) { argv_.push_back(command); } @@ -88,7 +87,7 @@ bool System::Execute() { bool System::Execute(bool wait) { size_t size = argv_.size(); - char * *argv = new char*[size + 1]; + char** argv = new char* [size + 1]; std::transform(argv_.begin(), argv_.end(), argv, GetCString()); argv[size] = NULL; @@ -97,8 +96,9 @@ bool System::Execute(bool wait) { delete[] argv; if (ret == -1) { - LOG4CXX_ERROR(logger_, "Can't execute command: " << command_ - << " Errno is: " << std::strerror(errno)); + LOG4CXX_ERROR(logger_, + "Can't execute command: " << command_ << " Errno is: " + << std::strerror(errno)); return false; } @@ -137,7 +137,7 @@ bool System::Execute(bool wait) { dup2(fd_dev0, STDERR_FILENO); size_t size = argv_.size(); - char * *argv = new char*[size + 1]; + char** argv = new char* [size + 1]; std::transform(argv_.begin(), argv_.end(), argv, GetCString()); argv[size] = NULL; diff --git a/src/components/utils/src/threads/async_runner.cc b/src/components/utils/src/threads/async_runner.cc index f580eebaf0..131aaa3f78 100644 --- a/src/components/utils/src/threads/async_runner.cc +++ b/src/components/utils/src/threads/async_runner.cc @@ -40,11 +40,10 @@ namespace threads { CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") -AsyncRunner::AsyncRunner(const std::string &thread_name) - : executor_(new AsyncRunnerDelegate) { +AsyncRunner::AsyncRunner(const std::string& thread_name) + : executor_(new AsyncRunnerDelegate) { LOG4CXX_AUTO_TRACE(logger_); - thread_ = threads::CreateThread(thread_name.c_str(), - executor_); + thread_ = threads::CreateThread(thread_name.c_str(), executor_); thread_->start(); } @@ -65,9 +64,7 @@ AsyncRunner::~AsyncRunner() { threads::DeleteThread(thread_); } -AsyncRunner::AsyncRunnerDelegate::AsyncRunnerDelegate() - : stop_flag_(false) { -} +AsyncRunner::AsyncRunnerDelegate::AsyncRunnerDelegate() : stop_flag_(false) {} void AsyncRunner::AsyncRunnerDelegate::processDelegate() { if (!delegates_queue_.empty()) { @@ -113,4 +110,4 @@ void AsyncRunner::AsyncRunnerDelegate::runDelegate(ThreadDelegate* delegate) { delegate_notifier_.NotifyOne(); } -} // namespace policy. +} // namespace policy. diff --git a/src/components/utils/src/threads/pulse_thread_delegate.cc b/src/components/utils/src/threads/pulse_thread_delegate.cc index 68db5dcbea..37e6c670d1 100644 --- a/src/components/utils/src/threads/pulse_thread_delegate.cc +++ b/src/components/utils/src/threads/pulse_thread_delegate.cc @@ -61,7 +61,8 @@ PulseThreadDelegate::PulseThreadDelegate() : run_(false) { void PulseThreadDelegate::threadMain() { if (!Init()) { - LOG4CXX_ERROR(logger_, "Failed to initialize thread for QNX channel " << chid_); + LOG4CXX_ERROR(logger_, + "Failed to initialize thread for QNX channel " << chid_); return; } while (run_) { @@ -77,13 +78,14 @@ void PulseThreadDelegate::threadMain() { OnPulse(); break; } - } - else { + } else { if (run_) { - LOG4CXX_WARN(logger_, "Error occurred while waiting for pulse on QNX channel " << chid_); - } - else { - LOG4CXX_INFO(logger_, "QNX channel " << chid_ << " is apparently destroyed"); + LOG4CXX_WARN(logger_, + "Error occurred while waiting for pulse on QNX channel " + << chid_); + } else { + LOG4CXX_INFO(logger_, + "QNX channel " << chid_ << " is apparently destroyed"); } } } @@ -97,16 +99,14 @@ void PulseThreadDelegate::exitThreadMain() { LOG4CXX_TRACE(logger_, "Disconnecting from QNX channel " << chid_); if (ConnectDetach(coid_) != -1) { LOG4CXX_DEBUG(logger_, "Disconnected from QNX channel " << chid_); - } - else { + } else { LOG4CXX_WARN(logger_, "Failed to disconnect from QNX channel " << chid_); } LOG4CXX_TRACE(logger_, "Destroying QNX channel " << chid_); - if (ChannelDestroy(chid_) != -1) { // unblocks MsgReceivePulse() + if (ChannelDestroy(chid_) != -1) { // unblocks MsgReceivePulse() LOG4CXX_DEBUG(logger_, "QNX channel " << chid_ << " destroyed"); - } - else { + } else { LOG4CXX_WARN(logger_, "Failed to destroy QNX channel " << chid_); } } diff --git a/src/components/utils/src/threads/thread_delegate.cc b/src/components/utils/src/threads/thread_delegate.cc index 417bae5753..7bdce000da 100644 --- a/src/components/utils/src/threads/thread_delegate.cc +++ b/src/components/utils/src/threads/thread_delegate.cc @@ -55,7 +55,7 @@ void ThreadDelegate::exitThreadMain() { } } -void ThreadDelegate::set_thread(Thread *thread) { +void ThreadDelegate::set_thread(Thread* thread) { DCHECK(thread); thread_ = thread; } diff --git a/src/components/utils/src/threads/thread_manager.cc b/src/components/utils/src/threads/thread_manager.cc index 528dc8c4de..2959a86cb7 100644 --- a/src/components/utils/src/threads/thread_manager.cc +++ b/src/components/utils/src/threads/thread_manager.cc @@ -51,4 +51,4 @@ namespace threads { CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") -} // namespace threads +} // namespace threads diff --git a/src/components/utils/src/threads/thread_validator.cc b/src/components/utils/src/threads/thread_validator.cc index 99b812c456..4024522ae4 100644 --- a/src/components/utils/src/threads/thread_validator.cc +++ b/src/components/utils/src/threads/thread_validator.cc @@ -39,39 +39,32 @@ namespace threads { CREATE_LOGGERPTR_GLOBAL(logger_, "Utils") SingleThreadSimpleValidator::SingleThreadSimpleValidator() - : creation_thread_id_(Thread::CurrentId()) { -} + : creation_thread_id_(Thread::CurrentId()) {} -SingleThreadSimpleValidator::~SingleThreadSimpleValidator() { -} +SingleThreadSimpleValidator::~SingleThreadSimpleValidator() {} void SingleThreadSimpleValidator::AssertRunningOnCreationThread() const { PlatformThreadHandle current_id = Thread::CurrentId(); if (creation_thread_id_ != current_id) { - LOG4CXX_ERROR(logger_, "Single-threaded object created at thread " - << creation_thread_id_ - <<" is accessed from thread " - << current_id + LOG4CXX_ERROR(logger_, + "Single-threaded object created at thread " + << creation_thread_id_ << " is accessed from thread " + << current_id #ifdef BACKTRACE_SUPPORT - << "\n" - << utils::Backtrace() + << "\n" << utils::Backtrace() #endif - ); + ); } } -PlatformThreadHandle SingleThreadSimpleValidator::creation_thread_id() const -{ +PlatformThreadHandle SingleThreadSimpleValidator::creation_thread_id() const { return creation_thread_id_; } - SingleThreadValidator::SingleThreadValidator() - : owning_thread_id_(Thread::CurrentId()){ -} + : owning_thread_id_(Thread::CurrentId()) {} -SingleThreadValidator::~SingleThreadValidator() { -} +SingleThreadValidator::~SingleThreadValidator() {} void SingleThreadValidator::PassToThread(PlatformThreadHandle thread_id) const { owning_thread_id_ = thread_id; @@ -80,18 +73,17 @@ void SingleThreadValidator::PassToThread(PlatformThreadHandle thread_id) const { void SingleThreadValidator::AssertRunningOnValidThread() const { PlatformThreadHandle current_id = Thread::CurrentId(); if (owning_thread_id_ != current_id) { - LOG4CXX_ERROR(logger_, "Single-threaded object owned by thread " - << owning_thread_id_ - << " is accessed from thread " - << current_id << "\n" + LOG4CXX_ERROR(logger_, + "Single-threaded object owned by thread " + << owning_thread_id_ << " is accessed from thread " + << current_id << "\n" #ifdef BACKTRACE_SUPPORT - << utils::Backtrace() + << utils::Backtrace() #endif - ); + ); } } - -} // namespace threads +} // namespace threads // vim: set ts=2 sw=2 et: diff --git a/src/components/utils/src/timer.cc b/src/components/utils/src/timer.cc index 99141d61b7..d1d1ec5f3b 100644 --- a/src/components/utils/src/timer.cc +++ b/src/components/utils/src/timer.cc @@ -150,9 +150,9 @@ void timer::Timer::TimerDelegate::threadMain() { LOG4CXX_DEBUG(logger_, "Milliseconds left to wait: " << curr_timeout); if (sync_primitives::ConditionalVariable::kTimeout == termination_condition_.WaitFor(auto_lock, curr_timeout)) { - LOG4CXX_DEBUG(logger_, - "Timer has finished counting. Timeout (ms): " - << curr_timeout); + LOG4CXX_DEBUG( + logger_, + "Timer has finished counting. Timeout (ms): " << curr_timeout); if (timer_) { timer_->OnTimeout(); } diff --git a/src/components/utils/test/async_runner_test.cc b/src/components/utils/test/async_runner_test.cc index e0db33bb96..9b71d8732f 100644 --- a/src/components/utils/test/async_runner_test.cc +++ b/src/components/utils/test/async_runner_test.cc @@ -59,9 +59,7 @@ class TestThreadDelegate : public ThreadDelegate { class AsyncRunnerTest : public ::testing::Test { public: - AsyncRunnerTest() - : kDelegatesNum_(1), - asr_pt_(NULL) { + AsyncRunnerTest() : kDelegatesNum_(1), asr_pt_(NULL) { CreateAsyncRunner(); CreateThreadsArray(); } @@ -75,13 +73,13 @@ class AsyncRunnerTest : public ::testing::Test { Lock test_lock_; uint32_t kDelegatesNum_; ConditionalVariable cond_var_; - TestThreadDelegate **delegates_; - AsyncRunner *asr_pt_; + TestThreadDelegate** delegates_; + AsyncRunner* asr_pt_; void CreateThreadsArray() { srand(std::time(NULL)); kDelegatesNum_ = (rand() % 20 + 1); - delegates_ = new TestThreadDelegate*[kDelegatesNum_]; + delegates_ = new TestThreadDelegate* [kDelegatesNum_]; } void DeleteThreadsArray() { @@ -111,8 +109,9 @@ TEST_F(AsyncRunnerTest, ASyncRunManyDelegates_ExpectSuccessfulAllDelegatesRun) { EXPECT_EQ(kDelegatesNum_, check_value); } -//TODO(VVeremjova) APPLINK-12834 Sometimes delegates do not run -TEST_F(AsyncRunnerTest, DISABLED_RunManyDelegatesAndStop_ExpectSuccessfulDelegatesStop) { +// TODO(VVeremjova) APPLINK-12834 Sometimes delegates do not run +TEST_F(AsyncRunnerTest, + DISABLED_RunManyDelegatesAndStop_ExpectSuccessfulDelegatesStop) { AutoLock lock(test_lock_); // Clear global value before test check_value = 0; @@ -138,4 +137,3 @@ TEST_F(AsyncRunnerTest, DISABLED_RunManyDelegatesAndStop_ExpectSuccessfulDelegat } // namespace utils } // namespace components } // namespace test - diff --git a/src/components/utils/test/back_trace_test.cc b/src/components/utils/test/back_trace_test.cc index 12d5df81fc..071c4d3342 100644 --- a/src/components/utils/test/back_trace_test.cc +++ b/src/components/utils/test/back_trace_test.cc @@ -40,11 +40,10 @@ namespace utils { using namespace ::utils; TEST(BackTraceTest, CallStackShouldNotBeEmpty) { - - //arrange + // arrange Backtrace newtrace = Backtrace(); - std::vector < std::string > symbols = newtrace.CallStack(); - //assert + std::vector<std::string> symbols = newtrace.CallStack(); + // assert ASSERT_FALSE(symbols.empty()); } diff --git a/src/components/utils/test/bitstream_test.cc b/src/components/utils/test/bitstream_test.cc index 07a80bde07..df27aaa835 100644 --- a/src/components/utils/test/bitstream_test.cc +++ b/src/components/utils/test/bitstream_test.cc @@ -42,19 +42,19 @@ namespace utils { using ::utils::BitStream; TEST(BitstreamTest, CreateBitstream_WithDataWithDatasize_BitStreamIsGood) { - - //arrange + // arrange uint8_t data = 10; size_t bits = 2; BitStream bs(&data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } -TEST(BitstreamTest, ExtractBitstreamInUint8_ExtractAllData_BitStreamIsGoodDataExtractedCorrectly) { - - //arrange +TEST( + BitstreamTest, + ExtractBitstreamInUint8_ExtractAllData_BitStreamIsGoodDataExtractedCorrectly) { + // arrange uint8_t data = 10; size_t bits = 2; BitStream bs(&data, bits); @@ -62,15 +62,15 @@ TEST(BitstreamTest, ExtractBitstreamInUint8_ExtractAllData_BitStreamIsGoodDataEx uint8_t extract_data = 0; Extract(&bs, &extract_data); - //assert + // assert EXPECT_TRUE(bs.IsGood()); EXPECT_EQ(data, extract_data); } -TEST(BitstreamTest, ExtractBitstreamInUint8_WithDataWithZeroSize_BitStreamIsBad) { - - //arrange +TEST(BitstreamTest, + ExtractBitstreamInUint8_WithDataWithZeroSize_BitStreamIsBad) { + // arrange uint8_t data = 10; size_t bits = 0; BitStream bs(&data, bits); @@ -78,13 +78,14 @@ TEST(BitstreamTest, ExtractBitstreamInUint8_WithDataWithZeroSize_BitStreamIsBad) uint8_t extract_data = 0; Extract(&bs, &extract_data); - //assert + // assert EXPECT_TRUE(bs.IsBad()); } -TEST(BitstreamTest, ExtractBitstreamInUint32_WithDatasizeEq4_BitStreamIsGoodDataExtractedCorrectly) { - - //arrange +TEST( + BitstreamTest, + ExtractBitstreamInUint32_WithDatasizeEq4_BitStreamIsGoodDataExtractedCorrectly) { + // arrange uint8_t data = 10; size_t bits = 4; BitStream bs(&data, bits); @@ -92,14 +93,12 @@ TEST(BitstreamTest, ExtractBitstreamInUint32_WithDatasizeEq4_BitStreamIsGoodData uint32_t extract_data = 0; Extract(&bs, &extract_data); - //assert + // assert EXPECT_TRUE(bs.IsGood()); - } TEST(BitstreamTest, ExtractBitstreamInUint32_DatasizeLess4_BitStreamIsBad) { - - //arrange + // arrange uint8_t data = 10; size_t bits = 3; BitStream bs(&data, bits); @@ -107,14 +106,12 @@ TEST(BitstreamTest, ExtractBitstreamInUint32_DatasizeLess4_BitStreamIsBad) { uint32_t extract_data = 0; Extract(&bs, &extract_data); - //assert + // assert EXPECT_TRUE(bs.IsBad()); - } TEST(BitstreamTest, ExtractFullBitstream_WithDataWithDatasize_BitStreamIsGood) { - - //arrange + // arrange uint8_t data = 10; size_t bits = 8; BitStream bs(&data, bits); @@ -123,15 +120,15 @@ TEST(BitstreamTest, ExtractFullBitstream_WithDataWithDatasize_BitStreamIsGood) { Extract(&bs, &extract_data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); EXPECT_EQ(data, extract_data); } -TEST(BitstreamTest, ExtractBitstreamInString_WithDataWithDatasize_BitStreamIsGood) { - - //arrange +TEST(BitstreamTest, + ExtractBitstreamInString_WithDataWithDatasize_BitStreamIsGood) { + // arrange uint8_t data = 10; size_t bits = 2; BitStream bs(&data, bits); @@ -141,46 +138,45 @@ TEST(BitstreamTest, ExtractBitstreamInString_WithDataWithDatasize_BitStreamIsGoo Extract(&bs, &strdata, length); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } TEST(BitstreamTest, CreateBitstream_NoDataZeroDatasize_BitStreamIsGood) { - - //arrange - uint8_t *data = NULL; + // arrange + uint8_t* data = NULL; size_t bits = 0; BitStream bs(data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } -TEST(BitstreamTest, CreateBitstream_NoDataWithUpperboundDataSize_BitStreamIsGood) { - - //arrange - uint8_t *data = NULL; +TEST(BitstreamTest, + CreateBitstream_NoDataWithUpperboundDataSize_BitStreamIsGood) { + // arrange + uint8_t* data = NULL; size_t bits = 65535; BitStream bs(data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } -TEST(BitstreamTest, CreateBitstream_WithUpperboundDataWithLessDataSize_BitStreamIsGood) { - - //arrange +TEST(BitstreamTest, + CreateBitstream_WithUpperboundDataWithLessDataSize_BitStreamIsGood) { + // arrange uint8_t data = 255; size_t bits = sizeof(char); BitStream bs(&data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } -TEST(BitstreamTest, ExtractBitstream_WithUpperboundDataWithLessDataSize_BitStreamIsGood) { - - //arrange +TEST(BitstreamTest, + ExtractBitstream_WithUpperboundDataWithLessDataSize_BitStreamIsGood) { + // arrange uint8_t data = 255; size_t bits = sizeof(char); BitStream bs(&data, bits); @@ -188,13 +184,13 @@ TEST(BitstreamTest, ExtractBitstream_WithUpperboundDataWithLessDataSize_BitStrea uint8_t extract_data = 0; Extract(&bs, &extract_data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } -TEST(BitstreamTest, ExtractBitstream_WithUpperboundDataWithZeroDataSize_BitStreamIsGood) { - - //arrange +TEST(BitstreamTest, + ExtractBitstream_WithUpperboundDataWithZeroDataSize_BitStreamIsGood) { + // arrange uint8_t data = 255; size_t bits = 0; BitStream bs(&data, bits); @@ -202,26 +198,25 @@ TEST(BitstreamTest, ExtractBitstream_WithUpperboundDataWithZeroDataSize_BitStrea uint8_t extract_data = 0; Extract(&bs, &extract_data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); } TEST(BitstreamTest, ExtractBitstream_WithDataMarkedBad_ExpectIsBad) { - - //arrange + // arrange uint8_t data = 255; size_t bits = sizeof(int); BitStream bs(&data, bits); - //assert + // assert EXPECT_TRUE(bs.IsGood()); - //act + // act bs.MarkBad(); - //assert + // assert EXPECT_TRUE(bs.IsBad()); - //act + // act Extract(&bs, &data, bits); - //arrange + // arrange EXPECT_TRUE(bs.IsBad()); } diff --git a/src/components/utils/test/conditional_variable_test.cc b/src/components/utils/test/conditional_variable_test.cc index a898732ffc..fe93e17617 100644 --- a/src/components/utils/test/conditional_variable_test.cc +++ b/src/components/utils/test/conditional_variable_test.cc @@ -45,22 +45,20 @@ namespace utils { class ConditionalVariableTest : public ::testing::Test { public: - ConditionalVariableTest() - : test_value_("initialized"), - counter_(0) { - } + ConditionalVariableTest() : test_value_("initialized"), counter_(0) {} void check_counter(); void task_one(); - static void* check_counter_helper(void *context) { - (reinterpret_cast<ConditionalVariableTest *>(context))->check_counter(); + static void* check_counter_helper(void* context) { + (reinterpret_cast<ConditionalVariableTest*>(context))->check_counter(); return NULL; } - static void* task_one_helper(void *context) { - (reinterpret_cast<ConditionalVariableTest *>(context))->task_one(); + static void* task_one_helper(void* context) { + (reinterpret_cast<ConditionalVariableTest*>(context))->task_one(); return NULL; } + protected: std::string test_value_; sync_primitives::ConditionalVariable cond_var_; @@ -73,10 +71,13 @@ void ConditionalVariableTest::check_counter() { sync_primitives::AutoLock test_lock(test_mutex_); if (counter_ <= 1) { counter_++; - cond_var_.Wait(test_mutex_); // Mutex unlock & Thread sleeps until Notification - } - else if(counter_ == 2) { // Checking for equal 2 in this specific case. Because we were waiting for 2 threads to be finished - cond_var_.Broadcast(); // Notify All threads waiting on conditional variable + cond_var_.Wait( + test_mutex_); // Mutex unlock & Thread sleeps until Notification + } else if (counter_ == 2) { // Checking for equal 2 in this specific case. + // Because we were waiting for 2 threads to be + // finished + cond_var_ + .Broadcast(); // Notify All threads waiting on conditional variable } } @@ -84,18 +85,18 @@ void ConditionalVariableTest::check_counter() { void ConditionalVariableTest::task_one() { sync_primitives::AutoLock test_lock(test_mutex_); test_value_ = "changed by thread 1"; - cond_var_.NotifyOne(); // Notify At least one thread waiting on conditional variable + cond_var_.NotifyOne(); // Notify At least one thread waiting on conditional + // variable test_value_ = "changed again by thread 1"; } -TEST_F(ConditionalVariableTest, CheckNotifyOne_OneThreadNotified_ExpectSuccessful) { +TEST_F(ConditionalVariableTest, + CheckNotifyOne_OneThreadNotified_ExpectSuccessful) { pthread_t thread1; sync_primitives::AutoLock test_lock(test_mutex_); test_value_ = "changed by main thread"; - const bool thread_created = pthread_create(&thread1, - NULL, - &ConditionalVariableTest::task_one_helper, - this); + const bool thread_created = pthread_create( + &thread1, NULL, &ConditionalVariableTest::task_one_helper, this); ASSERT_FALSE(thread_created) << "thread1 is not created!"; test_value_ = "changed twice by main thread"; cond_var_.WaitFor(test_lock, 2000); @@ -103,30 +104,29 @@ TEST_F(ConditionalVariableTest, CheckNotifyOne_OneThreadNotified_ExpectSuccessfu EXPECT_EQ(last_value, test_value_); } -TEST_F(ConditionalVariableTest, CheckBroadcast_AllThreadsNotified_ExpectSuccessful) { +TEST_F(ConditionalVariableTest, + CheckBroadcast_AllThreadsNotified_ExpectSuccessful) { pthread_t thread1; pthread_t thread2; - bool thread_created = pthread_create(&thread1, - NULL, - &ConditionalVariableTest::check_counter_helper, - this); + bool thread_created = pthread_create( + &thread1, NULL, &ConditionalVariableTest::check_counter_helper, this); ASSERT_FALSE(thread_created) << "thread1 is not created!"; - thread_created = pthread_create(&thread2, - NULL, - &ConditionalVariableTest::check_counter_helper, - this); + thread_created = pthread_create( + &thread2, NULL, &ConditionalVariableTest::check_counter_helper, this); ASSERT_FALSE(thread_created) << "thread2 is not created!"; check_counter(); EXPECT_EQ(2u, counter_); } -TEST_F(ConditionalVariableTest, CheckWaitForWithTimeout1sec_ThreadBlockedForTimeout_ExpectSuccessfulWakeUp) { +TEST_F( + ConditionalVariableTest, + CheckWaitForWithTimeout1sec_ThreadBlockedForTimeout_ExpectSuccessfulWakeUp) { sync_primitives::AutoLock test_lock(test_mutex_); - sync_primitives::ConditionalVariable::WaitStatus wait_st = cond_var_.WaitFor(test_lock, 1000); + sync_primitives::ConditionalVariable::WaitStatus wait_st = + cond_var_.WaitFor(test_lock, 1000); EXPECT_EQ(sync_primitives::ConditionalVariable::kTimeout, wait_st); } } // namespace utils } // namespace components } // namespace test - diff --git a/src/components/utils/test/data_accessor_test.cc b/src/components/utils/test/data_accessor_test.cc index 105ec8517f..b15310ff3f 100644 --- a/src/components/utils/test/data_accessor_test.cc +++ b/src/components/utils/test/data_accessor_test.cc @@ -39,31 +39,28 @@ namespace components { namespace utils { TEST(DataAccessorTest, CreateDataAccessor) { - - //arrange + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; DataAccessor<int> testdata(test_value, testSet_lock_); int data_from_testdata = testdata.GetData(); - //assert + // assert EXPECT_EQ(test_value, data_from_testdata); } TEST(DataAccessorTest, CreateDataAccessor_MutexIsLocked_CannotLockItAgain) { - - //arrange + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; DataAccessor<int> testdata(test_value, testSet_lock_); - //assert + // assert EXPECT_FALSE(testSet_lock_.Try()); } TEST(DataAccessorTest, CopyDataAccessor_GetDataFromDataAccessors) { - - //arrange + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; DataAccessor<int> testdata(test_value, testSet_lock_); @@ -72,15 +69,15 @@ TEST(DataAccessorTest, CopyDataAccessor_GetDataFromDataAccessors) { int data_from_testdata = testdata.GetData(); int data_from_testdata_copy = testdata_copy.GetData(); - //assert + // assert EXPECT_EQ(data_from_testdata, data_from_testdata_copy); EXPECT_FALSE(testSet_lock_.Try()); } -TEST(DataAccessorTest,ChangedDataInDataAccessor_ChangeData_DataInDataAccessorIsChanged) { - - //arrange +TEST(DataAccessorTest, + ChangedDataInDataAccessor_ChangeData_DataInDataAccessorIsChanged) { + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; DataAccessor<int> testdata(test_value, testSet_lock_); @@ -88,32 +85,31 @@ TEST(DataAccessorTest,ChangedDataInDataAccessor_ChangeData_DataInDataAccessorIsC int data_from_testdata_after_change = testdata.GetData(); - //assert + // assert EXPECT_EQ(test_value, data_from_testdata_after_change); } -TEST(DataAccessorTest, DeleteDataAccessor_CreatedOneDeleteOneThread_MutexIsUnlocked) { - - //arrange +TEST(DataAccessorTest, + DeleteDataAccessor_CreatedOneDeleteOneThread_MutexIsUnlocked) { + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; { DataAccessor<int> testdata(test_value, testSet_lock_); - //assert + // assert EXPECT_FALSE(testSet_lock_.Try()); } - //assert + // assert EXPECT_TRUE(testSet_lock_.Try()); testSet_lock_.Release(); - } -TEST(DataAccessorTest, DeleteDataAccessor_CreatedThreadAndCopyDeleteBothThreads_MutexIsUnlocked) { - - //arrange +TEST(DataAccessorTest, + DeleteDataAccessor_CreatedThreadAndCopyDeleteBothThreads_MutexIsUnlocked) { + // arrange int test_value = 10; sync_primitives::Lock testSet_lock_; { @@ -121,18 +117,16 @@ TEST(DataAccessorTest, DeleteDataAccessor_CreatedThreadAndCopyDeleteBothThreads_ { DataAccessor<int> testdata_copy(testdata); - //assert + // assert EXPECT_FALSE(testSet_lock_.Try()); } - //assert + // assert EXPECT_FALSE(testSet_lock_.Try()); - } - //assert + // assert EXPECT_TRUE(testSet_lock_.Try()); testSet_lock_.Release(); - } } // namespace utils diff --git a/src/components/utils/test/date_time_test.cc b/src/components/utils/test/date_time_test.cc index c5deba8f5c..fc34b7a998 100644 --- a/src/components/utils/test/date_time_test.cc +++ b/src/components/utils/test/date_time_test.cc @@ -39,86 +39,85 @@ namespace utils { using namespace date_time; TEST(DateTimeTest, GetCurrentTime) { - - //arrange + // arrange const TimevalStruct time1 = date_time::DateTime::getCurrentTime(); - //assert + // assert ASSERT_NE(0, time1.tv_sec); ASSERT_GE(time1.tv_usec, 0); - //act + // act const TimevalStruct time2 = date_time::DateTime::getCurrentTime(); - //assert + // assert ASSERT_NE(0, time2.tv_sec); ASSERT_GE(time2.tv_usec, 0); ASSERT_GE(time2.tv_sec, time1.tv_sec); } TEST(DateTimeTest, GetSecs) { - //arrange + // arrange TimevalStruct time; time.tv_sec = 1; time.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - //assert + // assert ASSERT_EQ(1, date_time::DateTime::getSecs(time)); } TEST(DateTimeTest, GetmSecs) { - //arrange + // arrange TimevalStruct time; time.tv_sec = 1; time.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - int64_t expect_value = time.tv_sec - * date_time::DateTime::MILLISECONDS_IN_SECOND - + time.tv_usec / date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - //assert + int64_t expect_value = + time.tv_sec * date_time::DateTime::MILLISECONDS_IN_SECOND + + time.tv_usec / date_time::DateTime::MICROSECONDS_IN_MILLISECOND; + // assert ASSERT_EQ(expect_value, date_time::DateTime::getmSecs(time)); } TEST(DateTimeTest, GetuSecs) { - //arrange + // arrange TimevalStruct time; time.tv_sec = 3; time.tv_usec = 4; - int64_t expect_value = time.tv_sec - * date_time::DateTime::MILLISECONDS_IN_SECOND - * date_time::DateTime::MICROSECONDS_IN_MILLISECOND + time.tv_usec; - //assert + int64_t expect_value = time.tv_sec * + date_time::DateTime::MILLISECONDS_IN_SECOND * + date_time::DateTime::MICROSECONDS_IN_MILLISECOND + + time.tv_usec; + // assert ASSERT_EQ(expect_value, date_time::DateTime::getuSecs(time)); } TEST(DateTimeTest, GetuSecsmSecs) { - //arrange + // arrange TimevalStruct time; time.tv_sec = 5; time.tv_usec = 6; - int64_t expect_value = date_time::DateTime::getuSecs(time) - / date_time::DateTime::MICROSECONDS_IN_MILLISECOND; + int64_t expect_value = date_time::DateTime::getuSecs(time) / + date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - //assert + // assert ASSERT_EQ(expect_value, date_time::DateTime::getmSecs(time)); } TEST(DateTimeTest, CalculateTimeSpan) { - //arrange + // arrange const TimevalStruct time = date_time::DateTime::getCurrentTime(); const uint32_t sleep_time_mSec = 10; usleep(sleep_time_mSec * date_time::DateTime::MICROSECONDS_IN_MILLISECOND); - //assert + // assert ASSERT_GE(date_time::DateTime::calculateTimeSpan(time), sleep_time_mSec); } TEST(DateTimeTest, CalculateTimeDiff) { - - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; @@ -127,26 +126,26 @@ TEST(DateTimeTest, CalculateTimeDiff) { time2.tv_sec = 3; time2.tv_usec = 4 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - //time2 to time1 + // time2 to time1 TimevalStruct diff1; diff1.tv_sec = time2.tv_sec - time1.tv_sec; diff1.tv_usec = time2.tv_usec - time1.tv_usec; - const int64_t mSecDiff = static_cast<int64_t>(diff1.tv_sec) * 1000 - + diff1.tv_usec / 1000; + const int64_t mSecDiff = + static_cast<int64_t>(diff1.tv_sec) * 1000 + diff1.tv_usec / 1000; - //assert + // assert ASSERT_EQ(mSecDiff, date_time::DateTime::calculateTimeDiff(time2, time1)); - //time1 to time2 + // time1 to time2 TimevalStruct diff2; diff2.tv_sec = time1.tv_sec - time2.tv_sec; diff2.tv_usec = time1.tv_usec - time2.tv_usec; - const int64_t mSecDiff2 = -(static_cast<int64_t>(diff2.tv_sec) * 1000 - + diff2.tv_usec / 1000); + const int64_t mSecDiff2 = + -(static_cast<int64_t>(diff2.tv_sec) * 1000 + diff2.tv_usec / 1000); - //assert + // assert ASSERT_EQ(mSecDiff2, date_time::DateTime::calculateTimeDiff(time1, time2)); } @@ -164,8 +163,7 @@ TEST(DateTimeTest, CalculateEqualTimeDiff) { } TEST(DateTimeTest, compareTime) { - - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; @@ -174,30 +172,30 @@ TEST(DateTimeTest, compareTime) { time2.tv_sec = 2; time2.tv_usec = 4 * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; - //assert + // assert ASSERT_EQ(LESS, date_time::DateTime::compareTime(time1, time2)); ASSERT_EQ(GREATER, date_time::DateTime::compareTime(time2, time1)); ASSERT_NE(EQUAL, date_time::DateTime::compareTime(time2, time1)); - //act + // act TimevalStruct time3 = date_time::DateTime::Sub(time2, time1); - //assert + // assert ASSERT_EQ(EQUAL, date_time::DateTime::compareTime(time1, time3)); } TEST(DateTimeTest, GetSecs_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 0; time1.tv_usec = date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_EQ(1, date_time::DateTime::getSecs(time1)); } TEST(DateTimeTest, compareTime_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 0; @@ -206,14 +204,14 @@ TEST(DateTimeTest, compareTime_UsecConvertedInSec) { time2.tv_sec = 0; time2.tv_usec = date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_EQ(1, date_time::DateTime::getSecs(time1)); ASSERT_EQ(1, date_time::DateTime::getSecs(time2)); ASSERT_EQ(EQUAL, date_time::DateTime::compareTime(time1, time2)); } TEST(DateTimeTest, compareEqualTime_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 0; @@ -222,12 +220,12 @@ TEST(DateTimeTest, compareEqualTime_UsecConvertedInSec) { time2.tv_sec = 0; time2.tv_usec = date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_TRUE(date_time::DateTime::Equal(time1, time2)); } TEST(DateTimeTest, compareLessTime_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 0; @@ -236,12 +234,12 @@ TEST(DateTimeTest, compareLessTime_UsecConvertedInSec) { time2.tv_sec = 0; time2.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_TRUE(date_time::DateTime::Less(time1, time2)); } TEST(DateTimeTest, compareGreaterTime_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 0; @@ -250,12 +248,12 @@ TEST(DateTimeTest, compareGreaterTime_UsecConvertedInSec) { time2.tv_sec = 0; time2.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_TRUE(date_time::DateTime::Greater(time2, time1)); } TEST(DateTimeTest, CalculateTimeSub_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 1; time1.tv_usec = 0; @@ -266,12 +264,12 @@ TEST(DateTimeTest, CalculateTimeSub_UsecConvertedInSec) { TimevalStruct time3 = date_time::DateTime::Sub(time2, time1); - //assert + // assert ASSERT_EQ(EQUAL, date_time::DateTime::compareTime(time1, time3)); } TEST(DateTimeTest, CalculateTimeDiff_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 2; time1.tv_usec = 5 * date_time::DateTime::MICROSECONDS_IN_SECOND; @@ -280,13 +278,13 @@ TEST(DateTimeTest, CalculateTimeDiff_UsecConvertedInSec) { time2.tv_sec = 3; time2.tv_usec = 1 * date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_EQ(3000, date_time::DateTime::calculateTimeDiff(time2, time1)); ASSERT_EQ(3000, date_time::DateTime::calculateTimeDiff(time1, time2)); } TEST(DateTimeTest, CalculateEqualTimeDiff_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 2; time1.tv_usec = 2 * date_time::DateTime::MICROSECONDS_IN_SECOND; @@ -295,13 +293,13 @@ TEST(DateTimeTest, CalculateEqualTimeDiff_UsecConvertedInSec) { time2.tv_sec = 3; time2.tv_usec = 1 * date_time::DateTime::MICROSECONDS_IN_SECOND; - //assert + // assert ASSERT_EQ(0, date_time::DateTime::calculateTimeDiff(time2, time1)); ASSERT_EQ(0, date_time::DateTime::calculateTimeDiff(time1, time2)); } TEST(DateTimeTest, CalculateEqualTimeSub_UsecConvertedInSec) { - //arrange + // arrange TimevalStruct time1; time1.tv_sec = 3; time1.tv_usec = 0; @@ -316,12 +314,13 @@ TEST(DateTimeTest, CalculateEqualTimeSub_UsecConvertedInSec) { TimevalStruct time_expected; time_expected.tv_sec = 0; time_expected.tv_usec = 0; - //assert + // assert ASSERT_EQ(EQUAL, date_time::DateTime::compareTime(time_expected, time3)); ASSERT_EQ(EQUAL, date_time::DateTime::compareTime(time_expected, time4)); } -TEST(DateTimeTest, AddMilliseconds_SetMillisecondMultiplesSecond_ExpectChangeTime) { +TEST(DateTimeTest, + AddMilliseconds_SetMillisecondMultiplesSecond_ExpectChangeTime) { TimevalStruct time1; time1.tv_sec = 3; time1.tv_usec = 0; @@ -331,7 +330,8 @@ TEST(DateTimeTest, AddMilliseconds_SetMillisecondMultiplesSecond_ExpectChangeTim ASSERT_EQ(0, time1.tv_usec); } -TEST(DateTimeTest, AddMilliseconds_SetMillisecondNotMultiplesSecond_ExpectChangeTime) { +TEST(DateTimeTest, + AddMilliseconds_SetMillisecondNotMultiplesSecond_ExpectChangeTime) { TimevalStruct time1; uint32_t milliseconds = 7500; time1.tv_sec = 3; @@ -341,7 +341,8 @@ TEST(DateTimeTest, AddMilliseconds_SetMillisecondNotMultiplesSecond_ExpectChange ASSERT_EQ(500000, time1.tv_usec); } -TEST(DateTimeTest, AddMilliseconds_SetMilliSecondLessThenSeconds_ExpectChangeTime) { +TEST(DateTimeTest, + AddMilliseconds_SetMilliSecondLessThenSeconds_ExpectChangeTime) { TimevalStruct time1; uint32_t milliseconds = 500; time1.tv_sec = 3; @@ -351,7 +352,8 @@ TEST(DateTimeTest, AddMilliseconds_SetMilliSecondLessThenSeconds_ExpectChangeTim ASSERT_EQ(500000, time1.tv_usec); } -TEST(DateTimeTest, AddMilliseconds_SetMillisecondEqualNull_ExpectNotChangeTime) { +TEST(DateTimeTest, + AddMilliseconds_SetMillisecondEqualNull_ExpectNotChangeTime) { TimevalStruct time1; uint32_t milliseconds = 0; time1.tv_sec = 3; @@ -371,32 +373,31 @@ TEST(DateTimeTest, AddMilliseconds_SetOverlowMicrosecond_ExpectChangeTime) { ASSERT_EQ(100000, time1.tv_usec); } -TEST(DateTimeTest, Operator_minus_TimevalStruct_positive){ - TimevalStruct time1; - TimevalStruct time2; - TimevalStruct time3; - time1.tv_sec = 3; - time1.tv_usec = 0; - time2.tv_sec = 3; - time2.tv_usec = 0; - time3.tv_sec = 2; - time3.tv_usec = 9000000; - ASSERT_EQ(0, date_time::DateTime::getSecs(time1 - time2)); - ASSERT_EQ(8000000, date_time::DateTime::getuSecs(time3 - time1)); +TEST(DateTimeTest, Operator_minus_TimevalStruct_positive) { + TimevalStruct time1; + TimevalStruct time2; + TimevalStruct time3; + time1.tv_sec = 3; + time1.tv_usec = 0; + time2.tv_sec = 3; + time2.tv_usec = 0; + time3.tv_sec = 2; + time3.tv_usec = 9000000; + ASSERT_EQ(0, date_time::DateTime::getSecs(time1 - time2)); + ASSERT_EQ(8000000, date_time::DateTime::getuSecs(time3 - time1)); } -TEST(DateTimeTest, Operator_minus_TimevalStruct_negative){ - TimevalStruct time1; - TimevalStruct time2; - time1.tv_sec = 3; - time1.tv_usec = 0; - time2.tv_sec = 2; - time2.tv_usec = 9000000; - ASSERT_NE(1, date_time::DateTime::getSecs(time1 - time2)); - ASSERT_NE(-8000000, date_time::DateTime::getSecs(time2 - time1)); +TEST(DateTimeTest, Operator_minus_TimevalStruct_negative) { + TimevalStruct time1; + TimevalStruct time2; + time1.tv_sec = 3; + time1.tv_usec = 0; + time2.tv_sec = 2; + time2.tv_usec = 9000000; + ASSERT_NE(1, date_time::DateTime::getSecs(time1 - time2)); + ASSERT_NE(-8000000, date_time::DateTime::getSecs(time2 - time1)); } - } // namespace utils } // namespace components } // namespace test diff --git a/src/components/utils/test/generated_code_with_sqlite_test.cc b/src/components/utils/test/generated_code_with_sqlite_test.cc index d75d924321..cb319fa0ac 100644 --- a/src/components/utils/test/generated_code_with_sqlite_test.cc +++ b/src/components/utils/test/generated_code_with_sqlite_test.cc @@ -62,81 +62,83 @@ const std::string GeneratedCodeTest::kDatabaseName = "test_db"; const std::string GeneratedCodeTest::kEndpointsCreation = "CREATE TABLE Endpoints (" - "endpoint_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," - "service_id VARCHAR(45) NOT NULL," - "application_id VARCHAR(45)," - "url VARCHAR(45) NOT NULL," - "is_default INTEGER NOT NULL CHECK(is_default>=0))"; + "endpoint_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + "service_id VARCHAR(45) NOT NULL," + "application_id VARCHAR(45)," + "url VARCHAR(45) NOT NULL," + "is_default INTEGER NOT NULL CHECK(is_default>=0))"; const std::string GeneratedCodeTest::kEndpointsContent = "INSERT INTO Endpoints " - "VALUES (1, '0x07', null, 'http://url.example.com', 1)"; + "VALUES (1, '0x07', null, 'http://url.example.com', 1)"; const std::string GeneratedCodeTest::kAppPoliciesCreation = "CREATE TABLE AppPolicies (" - "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," - "application_id VARCHAR(45)," - "priority VARCHAR(45)," - "is_default INTEGER NOT NULL CHECK(is_default>=0))"; + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + "application_id VARCHAR(45)," + "priority VARCHAR(45)," + "is_default INTEGER NOT NULL CHECK(is_default>=0))"; -const std::string GeneratedCodeTest::kGroupsCreation = "CREATE TABLE Groups (" +const std::string GeneratedCodeTest::kGroupsCreation = + "CREATE TABLE Groups (" "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," "application_id VARCHAR(45) NOT NULL," "group_name VARCHAR(45) NOT NULL )"; -TEST_F(GeneratedCodeTest, FindSectionEndpoints_OpenDBSetDefaultUrl_ExpectDefaultUrl) { - - //arrange +TEST_F(GeneratedCodeTest, + FindSectionEndpoints_OpenDBSetDefaultUrl_ExpectDefaultUrl) { + // arrange dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName); - //assert + // assert EXPECT_TRUE(db.Open()); policy_table::ServiceEndpoints ep; - //assert + // assert EXPECT_TRUE(policy_table::FindSection(&db, ep)); EXPECT_EQ(1u, ep.size()); - //act + // act std::string url = ep["0x07"]["default"].front(); - //assert + // assert EXPECT_EQ("http://url.example.com", url); } -TEST_F(GeneratedCodeTest, RemoveSectionEndpoints_RemoveSectionEndpoints_Expect0EndPoints) { - //arrange +TEST_F(GeneratedCodeTest, + RemoveSectionEndpoints_RemoveSectionEndpoints_Expect0EndPoints) { + // arrange dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName); - //assert + // assert EXPECT_TRUE(db.Open()); - //act + // act policy_table::ServiceEndpoints ep; - //assert + // assert EXPECT_TRUE(policy_table::RemoveSection(&db, ep)); dbms::SQLQuery sqlquery(&db); - //act + // act std::string check_query = "select count (*) from endpoints"; - //assert + // assert EXPECT_TRUE(sqlquery.Prepare(check_query)); EXPECT_TRUE(sqlquery.Exec()); // Index for binding starts from 1, index for results starts from 0 EXPECT_EQ(0, sqlquery.GetInteger(0)); } -TEST_F(GeneratedCodeTest, UpdateSectionEndpoints_SetUrlPoint_ExpectPointEqualsUrl) { - - //arrange +TEST_F(GeneratedCodeTest, + UpdateSectionEndpoints_SetUrlPoint_ExpectPointEqualsUrl) { + // arrange dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName); - //assert + // assert EXPECT_TRUE(db.Open()); - //act + // act std::string test_url = "http://url.example.com"; policy_table::URL urls; @@ -148,52 +150,50 @@ TEST_F(GeneratedCodeTest, UpdateSectionEndpoints_SetUrlPoint_ExpectPointEqualsUr policy_table::ServiceEndpoints ep; ep["0x07"] = urllist; - //assert + // assert EXPECT_TRUE(policy_table::UpdateSection(&db, ep)); dbms::SQLQuery sqlquery(&db); std::string num_of_records_check = "select count (*) from endpoints"; - //assert + // assert EXPECT_TRUE(sqlquery.Prepare(num_of_records_check)); EXPECT_TRUE(sqlquery.Exec()); // Index for binding starts from 1, index for results starts from 0 EXPECT_EQ(1, sqlquery.GetInteger(0)); EXPECT_TRUE(sqlquery.Reset()); - - //act + // act std::string url_check_query = "select * from endpoints"; - //assert + // assert EXPECT_TRUE(sqlquery.Prepare(url_check_query)); EXPECT_TRUE(sqlquery.Exec()); // Index for binding starts from 1, index for results starts from 0 EXPECT_EQ(test_url, sqlquery.GetString(3)); } -TEST_F(GeneratedCodeTest, UpdateSectionAppPolicies_SetAppParams_ExpectDBHasThem) { - - //arrange +TEST_F(GeneratedCodeTest, + UpdateSectionAppPolicies_SetAppParams_ExpectDBHasThem) { + // arrange dbms::SQLDatabase db(GeneratedCodeTest::kDatabaseName); - //assert + // assert EXPECT_TRUE(db.Open()); - //act + // act policy_table::ApplicationPolicies ap; const std::string application_id = "12345678"; ap[application_id].groups.push_back("Base-4"); ap[application_id].priority = policy_table::P_NORMAL; - //assert + // assert EXPECT_TRUE(policy_table::UpdateSection(&db, ap)); - //act + // act dbms::SQLQuery sqlquery(&db); - - //assert + // assert EXPECT_TRUE(sqlquery.Prepare("select count (*) from AppPolicies")); EXPECT_TRUE(sqlquery.Exec()); // Index for binding starts from 1, index for results starts from 0 @@ -206,9 +206,8 @@ TEST_F(GeneratedCodeTest, UpdateSectionAppPolicies_SetAppParams_ExpectDBHasThem) EXPECT_EQ(1, sqlquery.GetInteger(0)); EXPECT_TRUE(sqlquery.Reset()); - EXPECT_TRUE( - sqlquery.Prepare( - "select application_id from Groups where group_name='Base-4'")); + EXPECT_TRUE(sqlquery.Prepare( + "select application_id from Groups where group_name='Base-4'")); EXPECT_TRUE(sqlquery.Exec()); // Index for binding starts from 1, index for results starts from 0 EXPECT_EQ(application_id, sqlquery.GetString(0)); diff --git a/src/components/utils/test/include/generated_code_with_sqlite_test.h b/src/components/utils/test/include/generated_code_with_sqlite_test.h index 4ce14be649..1abeb5f6b6 100644 --- a/src/components/utils/test/include/generated_code_with_sqlite_test.h +++ b/src/components/utils/test/include/generated_code_with_sqlite_test.h @@ -51,7 +51,8 @@ bool FindSection(dbms::SQLDatabase* db, policy_table::ServiceEndpoints& ep) { * table Endpoints * index, service_type, application_id, url, is_default * - * If url belongs to default section, application_id should be null and is_defaut = true + * If url belongs to default section, application_id should be null and + *is_defaut = true * Otherwise application_id should be set and is_default = false */ @@ -101,7 +102,7 @@ bool RemoveSection(dbms::SQLDatabase* db, // bool is_nicknames_removed = sqlquery.Exec("delete from Nicknames"); bool is_groups_removed = sqlquery.Exec("delete from Groups"); - return is_policies_removed /*&& is_nicknames_removed*/&& is_groups_removed; + return is_policies_removed /*&& is_nicknames_removed*/ && is_groups_removed; } bool RemoveSection(dbms::SQLDatabase* db, @@ -135,7 +136,8 @@ bool UpdateSection(dbms::SQLDatabase* db, * table Endpoints * index, service_type, application_id, url, is_default * - * If url belongs to default section, application_id should be null and is_defaut = true + * If url belongs to default section, application_id should be null and + *is_defaut = true * Otherwise application_id should be set and is_default = false */ @@ -225,7 +227,8 @@ bool UpdateSection(dbms::SQLDatabase* db, return false; } - std::string query = "insert into FunctionalGroups values(" + std::string query = + "insert into FunctionalGroups values(" "?," "(select index from Groups where group_name=?)," "(select index from Rpcs where rpc=?)," @@ -245,10 +248,10 @@ bool UpdateSection(dbms::SQLDatabase* db, for (; it_rpcs != it_rpcs_end; ++it_rpcs) { policy_table::RpcParameters rpc_params = (*it_rpcs).second; - policy_table::HmiLevels::const_iterator it_hmi_levels = rpc_params - .hmi_levels.begin(); - policy_table::HmiLevels::const_iterator it_hmi_levels_end = rpc_params - .hmi_levels.end(); + policy_table::HmiLevels::const_iterator it_hmi_levels = + rpc_params.hmi_levels.begin(); + policy_table::HmiLevels::const_iterator it_hmi_levels_end = + rpc_params.hmi_levels.end(); for (; it_hmi_levels != it_hmi_levels_end; ++it_hmi_levels) { // Index binding @@ -302,7 +305,8 @@ bool UpdateSection(dbms::SQLDatabase* db, return false; } - std::string groups_query = "insert into Groups values (" + std::string groups_query = + "insert into Groups values (" "?," "?," "?)"; @@ -334,7 +338,8 @@ bool UpdateSection(dbms::SQLDatabase* db, app_policies_sqlquery.Bind(3, false); } - // Struct contains groups, nicknames, priority for application/default section + // Struct contains groups, nicknames, priority for application/default + // section policy_table::ApplicationParams app_params = (*it_ap).second; // Priority binding @@ -354,10 +359,13 @@ bool UpdateSection(dbms::SQLDatabase* db, // begin/end methods in its interface // To be discussed with I.Kozyrenko - // policy_table::StringArray::const_iterator it_nicknames = app_params.nicknames.begin(); - // policy_table::StringArray::const_iterator it_nicknames_end = app_params.nicknames.end(); + // policy_table::StringArray::const_iterator it_nicknames = + // app_params.nicknames.begin(); + // policy_table::StringArray::const_iterator it_nicknames_end = + // app_params.nicknames.end(); // - // for (int nick_index = 0;it_nicknames != it_nicknames_end; ++ it_nicknames, ++nick_index) { + // for (int nick_index = 0;it_nicknames != it_nicknames_end; ++ + // it_nicknames, ++nick_index) { // nicknames_sqlquery.Bind(0, nick_index); // nicknames_sqlquery.Bind(1, app_policy_name); // @@ -372,11 +380,11 @@ bool UpdateSection(dbms::SQLDatabase* db, policy_table::Strings::const_iterator it_groups = app_params.groups.begin(); - policy_table::Strings::const_iterator it_groups_end = app_params.groups - .end(); + policy_table::Strings::const_iterator it_groups_end = + app_params.groups.end(); for (int group_index = 0; it_groups != it_groups_end; - ++it_groups, ++group_index) { + ++it_groups, ++group_index) { groups_sqlquery.Bind(0, group_index); groups_sqlquery.Bind(1, app_policy_name); groups_sqlquery.Bind(2, (*it_groups)); diff --git a/src/components/utils/test/log_message_loop_thread_test.cc b/src/components/utils/test/log_message_loop_thread_test.cc index d457325d4d..14515961bb 100644 --- a/src/components/utils/test/log_message_loop_thread_test.cc +++ b/src/components/utils/test/log_message_loop_thread_test.cc @@ -45,13 +45,13 @@ using ::testing::_; TEST(LogMessageLoopThread, DestroyLogMessage_loggerStatusDeletingLogger) { logger::logger_status = CreatingLoggerThread; LogMessageLoopThread* loop_thread = new LogMessageLoopThread(); - //assert + // assert EXPECT_EQ(CreatingLoggerThread, logger::logger_status); - //act + // act delete loop_thread; - //assert + // assert EXPECT_EQ(DeletingLoggerThread, logger::logger_status); logger::logger_status = LoggerThreadNotCreated; @@ -66,7 +66,7 @@ TEST(LogMessageLoopThread, HandleNeverCalled) { logger::logger_status = CreatingLoggerThread; MockLogMessageTest mmock; - EXPECT_CALL(mmock,Handle(_)).Times(0); + EXPECT_CALL(mmock, Handle(_)).Times(0); LogMessageLoopThread* loop_thread = new LogMessageLoopThread(); delete loop_thread; diff --git a/src/components/utils/test/message_queue_test.cc b/src/components/utils/test/message_queue_test.cc index 8ce7196b07..d80016c6a8 100644 --- a/src/components/utils/test/message_queue_test.cc +++ b/src/components/utils/test/message_queue_test.cc @@ -43,21 +43,20 @@ using ::utils::MessageQueue; class MessageQueueTest : public testing::Test { public: MessageQueueTest() - : test_val_1("Hello,"), - test_val_2("Beautiful "), - test_val_3("World!"), - test_line(""), - check_value(false) { - } + : test_val_1("Hello,") + , test_val_2("Beautiful ") + , test_val_3("World!") + , test_line("") + , check_value(false) {} void add_one_element_to_queue(); void extract_from_queue(); void add_three_elements_to_queue(); void ShutDownQueue(); - static void* add_one_element_to_queue_helper(void *context); - static void* extract_from_queue_helper(void *context); - static void* add_three_elements_to_queue_helper(void *context); - static void* ShutDownQueue_helper(void *context); + static void* add_one_element_to_queue_helper(void* context); + static void* extract_from_queue_helper(void* context); + static void* add_three_elements_to_queue_helper(void* context); + static void* ShutDownQueue_helper(void* context); protected: MessageQueue<std::string> test_queue; @@ -96,20 +95,20 @@ void MessageQueueTest::ShutDownQueue() { pthread_exit(NULL); } -void* MessageQueueTest::add_one_element_to_queue_helper(void *context) { - (reinterpret_cast<MessageQueueTest *>(context))->add_one_element_to_queue(); +void* MessageQueueTest::add_one_element_to_queue_helper(void* context) { + (reinterpret_cast<MessageQueueTest*>(context))->add_one_element_to_queue(); return NULL; } -void* MessageQueueTest::extract_from_queue_helper(void *context) { - (reinterpret_cast<MessageQueueTest *>(context))->extract_from_queue(); +void* MessageQueueTest::extract_from_queue_helper(void* context) { + (reinterpret_cast<MessageQueueTest*>(context))->extract_from_queue(); return NULL; } -void* MessageQueueTest::add_three_elements_to_queue_helper(void *context) { - (reinterpret_cast<MessageQueueTest *>(context))->add_three_elements_to_queue(); +void* MessageQueueTest::add_three_elements_to_queue_helper(void* context) { + (reinterpret_cast<MessageQueueTest*>(context))->add_three_elements_to_queue(); return NULL; } -void* MessageQueueTest::ShutDownQueue_helper(void *context) { - (reinterpret_cast<MessageQueueTest *>(context))->ShutDownQueue(); +void* MessageQueueTest::ShutDownQueue_helper(void* context) { + (reinterpret_cast<MessageQueueTest*>(context))->ShutDownQueue(); return NULL; } @@ -119,9 +118,13 @@ TEST_F(MessageQueueTest, DefaultCtorTest_ExpectEmptyQueueCreated) { ASSERT_EQ(test_value, test_queue.empty()); } -TEST_F(MessageQueueTest, MessageQueuePushThreeElementsTest_ExpectThreeElementsAdded) { +TEST_F(MessageQueueTest, + MessageQueuePushThreeElementsTest_ExpectThreeElementsAdded) { pthread_t thread1; - pthread_create(&thread1, NULL, &MessageQueueTest::add_three_elements_to_queue_helper, this); + pthread_create(&thread1, + NULL, + &MessageQueueTest::add_three_elements_to_queue_helper, + this); pthread_join(thread1, NULL); // check if 3 elements were added successfully ASSERT_EQ(3u, test_queue.size()); @@ -140,12 +143,15 @@ TEST_F(MessageQueueTest, NotEmptyMessageQueueResetTest_ExpectEmptyQueue) { ASSERT_EQ(0u, test_queue.size()); } -TEST_F(MessageQueueTest, MessageQueuePopOneElementTest_ExpectOneElementRemovedFromQueue) { +TEST_F(MessageQueueTest, + MessageQueuePopOneElementTest_ExpectOneElementRemovedFromQueue) { pthread_t thread1; pthread_t thread2; // Creating threads with thread function mentioned above - pthread_create(&thread1, NULL, &MessageQueueTest::add_one_element_to_queue_helper, this); - pthread_create(&thread2, NULL, &MessageQueueTest::extract_from_queue_helper, this); + pthread_create( + &thread1, NULL, &MessageQueueTest::add_one_element_to_queue_helper, this); + pthread_create( + &thread2, NULL, &MessageQueueTest::extract_from_queue_helper, this); // Primary thread waits until thread 2 to be finished pthread_join(thread2, NULL); // Check if first element was removed successfully @@ -154,7 +160,8 @@ TEST_F(MessageQueueTest, MessageQueuePopOneElementTest_ExpectOneElementRemovedFr ASSERT_EQ(0u, test_queue.size()); } -TEST_F(MessageQueueTest, MessageQueueShutdownTest_ExpectMessageQueueWillBeShutDown) { +TEST_F(MessageQueueTest, + MessageQueueShutdownTest_ExpectMessageQueueWillBeShutDown) { pthread_t thread1; // Creating thread with thread function mentioned above pthread_create(&thread1, NULL, &MessageQueueTest::ShutDownQueue_helper, this); diff --git a/src/components/utils/test/messagemeter_test.cc b/src/components/utils/test/messagemeter_test.cc index 0db947e564..69db658542 100644 --- a/src/components/utils/test/messagemeter_test.cc +++ b/src/components/utils/test/messagemeter_test.cc @@ -40,21 +40,21 @@ #include "utils/messagemeter.h" #include "utils/date_time.h" -namespace test { -namespace components { -namespace utils { +namespace test { +namespace components { +namespace utils { // Pair of values <second, msecond> typedef std::pair<int, int> TimePair; -const TimePair testing_time_pairs[] = { TimePair(0, 50), - TimePair(0, 100), - TimePair(0, 200), - TimePair(0, 500), - TimePair(0, 900), - TimePair(1, 0), - TimePair(1, 500) }; - -class MessageMeterTest: public ::testing::TestWithParam<TimePair> { +const TimePair testing_time_pairs[] = {TimePair(0, 50), + TimePair(0, 100), + TimePair(0, 200), + TimePair(0, 500), + TimePair(0, 900), + TimePair(1, 0), + TimePair(1, 500)}; + +class MessageMeterTest : public ::testing::TestWithParam<TimePair> { protected: void SetUp() OVERRIDE { usecs = date_time::DateTime::MICROSECONDS_IN_MILLISECOND; @@ -63,20 +63,17 @@ class MessageMeterTest: public ::testing::TestWithParam<TimePair> { id3 = 0xFEBCDA; const TimePair time_pair = GetParam(); - EXPECT_GT(usecs, - time_pair.second) << "Wrong time (msecs) value"; + EXPECT_GT(usecs, time_pair.second) << "Wrong time (msecs) value"; time_range.tv_sec = time_pair.first; time_range.tv_usec = time_pair.second * usecs; - EXPECT_LT(0, - date_time::DateTime::getuSecs(time_range)) + EXPECT_LT(0, date_time::DateTime::getuSecs(time_range)) << "Wrong test case with null range value"; meter.set_time_range(time_range); time_range_msecs = date_time::DateTime::getmSecs(time_range); } - void TearDown() OVERRIDE { - } + void TearDown() OVERRIDE {} ::utils::MessageMeter<int> meter; TimevalStruct time_range = {0, 0}; int64_t time_range_msecs; @@ -86,29 +83,28 @@ class MessageMeterTest: public ::testing::TestWithParam<TimePair> { TEST(MessageMeterTest, DefaultTimeRange) { const ::utils::MessageMeter<int> default_meter; - const TimevalStruct time_second {1, 0}; + const TimevalStruct time_second{1, 0}; EXPECT_EQ(time_second, default_meter.time_range()); } TEST(MessageMeterTest, TimeRangeSetter) { ::utils::MessageMeter<int> meter; - TimevalStruct time_range {0, 0}; + TimevalStruct time_range{0, 0}; const int test_count_secs = 1000; // Skip 1000th msec value as wrong for TimevalStruct const int test_count_msecs = 999; for (int sec = test_count_secs; sec >= 0; --sec) { for (int msec = test_count_msecs; msec >= 0; --msec) { time_range.tv_sec = sec; - time_range.tv_usec = msec * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; + time_range.tv_usec = + msec * date_time::DateTime::MICROSECONDS_IN_MILLISECOND; // Setter TimevalStruct meter.set_time_range(time_range); - EXPECT_EQ(time_range, - meter.time_range()) << sec << "." << msec << " sec"; + EXPECT_EQ(time_range, meter.time_range()) << sec << "." << msec << " sec"; // Setter mSecs meter.set_time_range(sec * date_time::DateTime::MILLISECONDS_IN_SECOND + msec); - EXPECT_EQ(time_range, - meter.time_range()) << sec << "." << msec << " sec"; + EXPECT_EQ(time_range, meter.time_range()) << sec << "." << msec << " sec"; } } } @@ -117,20 +113,16 @@ TEST(MessageMeterTest, AddingWithNullTimeRange) { ::utils::MessageMeter<int> meter; const int id1 = 1; const int id2 = 2; - const TimevalStruct null_time_range {0, 0}; + const TimevalStruct null_time_range{0, 0}; meter.set_time_range(null_time_range); for (int i = 0; i < 10000; ++i) { // 1st Connection - EXPECT_EQ(0u, - meter.TrackMessage(id1)); - EXPECT_EQ(0u, - meter.Frequency(id1)); + EXPECT_EQ(0u, meter.TrackMessage(id1)); + EXPECT_EQ(0u, meter.Frequency(id1)); // 2d Connection - EXPECT_EQ(0u, - meter.TrackMessage(id2)); - EXPECT_EQ(0u, - meter.Frequency(id2)); + EXPECT_EQ(0u, meter.TrackMessage(id2)); + EXPECT_EQ(0u, meter.Frequency(id2)); } } @@ -139,8 +131,8 @@ TEST_P(MessageMeterTest, TrackMessage_AddingOverPeriod_CorrectCountOfMessages) { const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); // Add messages for less range period int64_t time_span; - while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) - < time_range_msecs) { + while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) < + time_range_msecs) { ++messages; size_t tracked_frequency = meter.TrackMessage(id1); @@ -158,13 +150,13 @@ TEST_P(MessageMeterTest, TrackMessage_AddingOverPeriod_CorrectCountOfMessages) { } TEST_P(MessageMeterTest, - TrackMessage_AddingOverPeriodMultiIds_CorrectCountOfMessages) { + TrackMessage_AddingOverPeriodMultiIds_CorrectCountOfMessages) { size_t messages = 0; const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); // Add messages for less range period int64_t time_span; - while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) - < time_range_msecs) { + while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) < + time_range_msecs) { ++messages; size_t tracked_frequency_id1 = meter.TrackMessage(id1); @@ -181,9 +173,8 @@ TEST_P(MessageMeterTest, EXPECT_GE(messages, tracked_frequency_id3) << "Tracked messages can`t be over cycles."; - if (messages > frequency_id1 || - messages > frequency_id2 || - messages > frequency_id3) { + if (messages > frequency_id1 || messages > frequency_id2 || + messages > frequency_id3) { EXPECT_GE(time_range_msecs, time_span); break; } @@ -196,22 +187,19 @@ TEST_P(MessageMeterTest, TEST_P(MessageMeterTest, Frequency_CountingOverPeriod_CorrectCountOfMessages) { const size_t one_message = 1; const TimevalStruct start_time = date_time::DateTime::getCurrentTime(); - EXPECT_EQ(one_message, - meter.TrackMessage(id1)); - EXPECT_EQ(one_message, - meter.TrackMessage(id2)); - EXPECT_EQ(one_message, - meter.TrackMessage(id3)); + EXPECT_EQ(one_message, meter.TrackMessage(id1)); + EXPECT_EQ(one_message, meter.TrackMessage(id2)); + EXPECT_EQ(one_message, meter.TrackMessage(id3)); // Check messages count over period int64_t time_span; - while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) - < time_range_msecs) { + while ((time_span = date_time::DateTime::calculateTimeSpan(start_time)) < + time_range_msecs) { usleep(time_range_msecs); if (one_message != meter.Frequency(id1) || - one_message != meter.Frequency(id2) || - one_message != meter.Frequency(id3)) { + one_message != meter.Frequency(id2) || + one_message != meter.Frequency(id3)) { EXPECT_GE(time_range_msecs, time_span); break; } @@ -220,77 +208,53 @@ TEST_P(MessageMeterTest, Frequency_CountingOverPeriod_CorrectCountOfMessages) { TEST_P(MessageMeterTest, CountingOutOfPeriod) { const size_t one_message = 1; - EXPECT_EQ(one_message, - meter.TrackMessage(id1)); - EXPECT_EQ(one_message, - meter.TrackMessage(id2)); - EXPECT_EQ(one_message, - meter.TrackMessage(id3)); + EXPECT_EQ(one_message, meter.TrackMessage(id1)); + EXPECT_EQ(one_message, meter.TrackMessage(id2)); + EXPECT_EQ(one_message, meter.TrackMessage(id3)); // sleep more than time range usleep(time_range_msecs * usecs * 1.1); - EXPECT_EQ(0u, - meter.Frequency(id1)); - EXPECT_EQ(0u, - meter.Frequency(id2)); - EXPECT_EQ(0u, - meter.Frequency(id3)); + EXPECT_EQ(0u, meter.Frequency(id1)); + EXPECT_EQ(0u, meter.Frequency(id2)); + EXPECT_EQ(0u, meter.Frequency(id3)); } TEST_P(MessageMeterTest, ClearId) { const size_t one_message = 1; - EXPECT_EQ(one_message, - meter.TrackMessage(id1)); - EXPECT_EQ(one_message, - meter.TrackMessage(id2)); - EXPECT_EQ(one_message, - meter.TrackMessage(id3)); + EXPECT_EQ(one_message, meter.TrackMessage(id1)); + EXPECT_EQ(one_message, meter.TrackMessage(id2)); + EXPECT_EQ(one_message, meter.TrackMessage(id3)); meter.RemoveIdentifier(id1); - EXPECT_EQ(0u, - meter.Frequency(id1)); - EXPECT_EQ(one_message, - meter.Frequency(id2)); - EXPECT_EQ(one_message, - meter.Frequency(id3)); + EXPECT_EQ(0u, meter.Frequency(id1)); + EXPECT_EQ(one_message, meter.Frequency(id2)); + EXPECT_EQ(one_message, meter.Frequency(id3)); meter.RemoveIdentifier(id2); - EXPECT_EQ(0u, - meter.Frequency(id1)); - EXPECT_EQ(0u, - meter.Frequency(id2)); - EXPECT_EQ(one_message, - meter.Frequency(id3)); + EXPECT_EQ(0u, meter.Frequency(id1)); + EXPECT_EQ(0u, meter.Frequency(id2)); + EXPECT_EQ(one_message, meter.Frequency(id3)); meter.RemoveIdentifier(id3); - EXPECT_EQ(0u, - meter.Frequency(id1)); - EXPECT_EQ(0u, - meter.Frequency(id2)); - EXPECT_EQ(0u, - meter.Frequency(id3)); + EXPECT_EQ(0u, meter.Frequency(id1)); + EXPECT_EQ(0u, meter.Frequency(id2)); + EXPECT_EQ(0u, meter.Frequency(id3)); } TEST_P(MessageMeterTest, ClearIds) { const size_t one_message = 1; - EXPECT_EQ(one_message, - meter.TrackMessage(id1)); - EXPECT_EQ(one_message, - meter.TrackMessage(id2)); - EXPECT_EQ(one_message, - meter.TrackMessage(id3)); + EXPECT_EQ(one_message, meter.TrackMessage(id1)); + EXPECT_EQ(one_message, meter.TrackMessage(id2)); + EXPECT_EQ(one_message, meter.TrackMessage(id3)); meter.ClearIdentifiers(); - EXPECT_EQ(0u, - meter.Frequency(id2)); - EXPECT_EQ(0u, - meter.Frequency(id2)); - EXPECT_EQ(0u, - meter.Frequency(id3)); + EXPECT_EQ(0u, meter.Frequency(id2)); + EXPECT_EQ(0u, meter.Frequency(id2)); + EXPECT_EQ(0u, meter.Frequency(id3)); } INSTANTIATE_TEST_CASE_P(MessageMeterTestCase, diff --git a/src/components/utils/test/posix_thread_test.cc b/src/components/utils/test/posix_thread_test.cc index d597f036d0..f98794d08a 100644 --- a/src/components/utils/test/posix_thread_test.cc +++ b/src/components/utils/test/posix_thread_test.cc @@ -41,13 +41,14 @@ namespace utils { using namespace sync_primitives; using namespace threads; -// TODO(AByzhynar): Change this to use Gtest class to create all variables for every TEST_F +// TODO(AByzhynar): Change this to use Gtest class to create all variables for +// every TEST_F // TODO(AByzhynar): Add multithreading tests namespace { const uint32_t MAX_SIZE = 20; const size_t MyStackSize = 32768; -const char *threadName("test thread"); +const char* threadName("test thread"); const std::string test_thread_name("THREAD"); sync_primitives::ConditionalVariable cond_var_; sync_primitives::Lock test_mutex_; @@ -56,9 +57,7 @@ sync_primitives::Lock test_mutex_; // ThreadDelegate successor class TestThreadDelegate : public threads::ThreadDelegate { public: - TestThreadDelegate() - : check_value_(false) { - } + TestThreadDelegate() : check_value_(false) {} void threadMain() { AutoLock test_lock(test_mutex_); check_value_ = true; @@ -68,14 +67,15 @@ class TestThreadDelegate : public threads::ThreadDelegate { bool check_value() const { return check_value_; } + private: bool check_value_; }; TEST(PosixThreadTest, CreateThread_ExpectThreadCreated) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); EXPECT_TRUE(thread != NULL); @@ -89,8 +89,8 @@ TEST(PosixThreadTest, CreateThread_ExpectThreadCreated) { TEST(PosixThreadTest, CheckCreatedThreadName_ExpectCorrectName) { // Arrange - threads::Thread *thread = NULL; - threads::ThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + threads::ThreadDelegate* threadDelegate = new TestThreadDelegate(); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); // Check thread was created with correct name @@ -100,10 +100,11 @@ TEST(PosixThreadTest, CheckCreatedThreadName_ExpectCorrectName) { EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, CheckCreatedThreadNameChangeToLongName_ExpectThreadNameReduced) { +TEST(PosixThreadTest, + CheckCreatedThreadNameChangeToLongName_ExpectThreadNameReduced) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); @@ -124,14 +125,17 @@ TEST(PosixThreadTest, CheckCreatedThreadNameChangeToLongName_ExpectThreadNameRed EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, StartCreatedThreadWithOptionsJoinableAndMyStackSize_ExpectMyStackSizeStackAndJoinableThreadStarted) { +TEST( + PosixThreadTest, + StartCreatedThreadWithOptionsJoinableAndMyStackSize_ExpectMyStackSizeStackAndJoinableThreadStarted) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); - // Start thread with following options (Stack size = 32768 & thread is joinable) + // Start thread with following options (Stack size = 32768 & thread is + // joinable) thread->start(threads::ThreadOptions(MyStackSize)); // Check thread is joinable EXPECT_TRUE(thread->is_joinable()); @@ -144,10 +148,12 @@ TEST(PosixThreadTest, StartCreatedThreadWithOptionsJoinableAndMyStackSize_Expect EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, StartCreatedThreadWithDefaultOptions_ExpectZeroStackAndJoinableThreadStarted) { +TEST( + PosixThreadTest, + StartCreatedThreadWithDefaultOptions_ExpectZeroStackAndJoinableThreadStarted) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); @@ -164,10 +170,12 @@ TEST(PosixThreadTest, StartCreatedThreadWithDefaultOptions_ExpectZeroStackAndJoi EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, StartThreadWithZeroStackAndDetached_ExpectMinimumStackAndDetachedThreadStarted) { +TEST( + PosixThreadTest, + StartThreadWithZeroStackAndDetached_ExpectMinimumStackAndDetachedThreadStarted) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); @@ -184,10 +192,12 @@ TEST(PosixThreadTest, StartThreadWithZeroStackAndDetached_ExpectMinimumStackAndD EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, DISABLED_CheckCreatedThreadNameChangeToEmpty_ExpectThreadNameChangedToEmpty) { +TEST( + PosixThreadTest, + DISABLED_CheckCreatedThreadNameChangeToEmpty_ExpectThreadNameChangedToEmpty) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); @@ -208,10 +218,11 @@ TEST(PosixThreadTest, DISABLED_CheckCreatedThreadNameChangeToEmpty_ExpectThreadN EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, CheckCreatedThreadNameChangeToShortName_ExpectThreadNameChangedToShort) { +TEST(PosixThreadTest, + CheckCreatedThreadNameChangeToShortName_ExpectThreadNameChangedToShort) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); @@ -235,13 +246,14 @@ TEST(PosixThreadTest, CheckCreatedThreadNameChangeToShortName_ExpectThreadNameCh TEST(PosixThreadTest, StartThread_ExpectThreadStarted) { // Arrange - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); // Start created thread - EXPECT_TRUE(thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); + EXPECT_TRUE( + thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); cond_var_.WaitFor(test_lock, 10000); EXPECT_TRUE(threadDelegate->check_value()); DeleteThread(thread); @@ -253,17 +265,19 @@ TEST(PosixThreadTest, StartOneThreadTwice_ExpectTheSameThreadStartedTwice) { // Arrange PlatformThreadHandle thread1_id; PlatformThreadHandle thread2_id; - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); // Start created thread - EXPECT_TRUE(thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); + EXPECT_TRUE( + thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); thread1_id = thread->CurrentId(); thread->stop(); // Try to start thread again - EXPECT_TRUE(thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); + EXPECT_TRUE( + thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); thread2_id = thread->CurrentId(); EXPECT_EQ(thread1_id, thread2_id); cond_var_.WaitFor(test_lock, 10000); @@ -273,17 +287,19 @@ TEST(PosixThreadTest, StartOneThreadTwice_ExpectTheSameThreadStartedTwice) { EXPECT_EQ(NULL, thread->delegate()); } -TEST(PosixThreadTest, StartOneThreadAgainAfterRename_ExpectRenamedThreadStarted) { +TEST(PosixThreadTest, + StartOneThreadAgainAfterRename_ExpectRenamedThreadStarted) { // Arrange PlatformThreadHandle thread1_id; PlatformThreadHandle thread2_id; - threads::Thread *thread = NULL; - TestThreadDelegate *threadDelegate = new TestThreadDelegate(); + threads::Thread* thread = NULL; + TestThreadDelegate* threadDelegate = new TestThreadDelegate(); AutoLock test_lock(test_mutex_); // Create thread ASSERT_NO_THROW(thread = CreateThread(threadName, threadDelegate)); // Start created thread - EXPECT_TRUE(thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); + EXPECT_TRUE( + thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); thread1_id = thread->CurrentId(); // Rename started thread. Name will be cut to 15 symbols + '\0' // This is the limit in current POSIX thread implementation @@ -295,7 +311,8 @@ TEST(PosixThreadTest, StartOneThreadAgainAfterRename_ExpectRenamedThreadStarted) EXPECT_EQ(test_thread_name, std::string(name)); // Stop thread thread->stop(); - EXPECT_TRUE(thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); + EXPECT_TRUE( + thread->start(threads::ThreadOptions(threads::Thread::kMinStackSize))); thread2_id = thread->CurrentId(); // Expect the same thread started with the the same name EXPECT_EQ(test_thread_name, std::string(name)); diff --git a/src/components/utils/test/prioritized_queue_test.cc b/src/components/utils/test/prioritized_queue_test.cc index 19e168cdce..ef105f6c4e 100644 --- a/src/components/utils/test/prioritized_queue_test.cc +++ b/src/components/utils/test/prioritized_queue_test.cc @@ -41,16 +41,13 @@ using ::utils::PrioritizedQueue; class TestMessage { public: - TestMessage() - : priority(0) { - } + TestMessage() : priority(0) {} TestMessage(std::string message, size_t msg_priority) - : msg_(message), - priority(msg_priority) { - } + : msg_(message), priority(msg_priority) {} size_t PriorityOrder() const; std::string msg() const; - friend bool operator==(const TestMessage &msg1, const TestMessage &msg2); + friend bool operator==(const TestMessage& msg1, const TestMessage& msg2); + private: std::string msg_; size_t priority; @@ -64,9 +61,9 @@ std::string TestMessage::msg() const { return msg_; } -bool operator==(const TestMessage &msg1, const TestMessage &msg2) { - return (msg1.msg() == msg2.msg() - && msg1.PriorityOrder() == msg2.PriorityOrder()); +bool operator==(const TestMessage& msg1, const TestMessage& msg2) { + return (msg1.msg() == msg2.msg() && + msg1.PriorityOrder() == msg2.PriorityOrder()); } class PrioritizedQueueTest : public testing::Test { @@ -108,13 +105,15 @@ TEST_F(PrioritizedQueueTest, AddFourElementsTest_ExpectQueueNotEmpty) { EXPECT_FALSE(test_queue.empty()); } -TEST_F(PrioritizedQueueTest, CheckMessageOrder_ExpectMessageWithHighestPriorityAddedFirst) { +TEST_F(PrioritizedQueueTest, + CheckMessageOrder_ExpectMessageWithHighestPriorityAddedFirst) { // Creating 4 messages with different priorities TestMessage message1("Ford", 111); TestMessage message2("Hello", 21); TestMessage message3("Luxoft", 14); TestMessage message4("from", 4); - // Adding created messages to Prioritized queue. Expect queue ordered according priority + // Adding created messages to Prioritized queue. Expect queue ordered + // according priority test_queue.push(message4); test_queue.push(message3); test_queue.push(message1); @@ -123,7 +122,8 @@ TEST_F(PrioritizedQueueTest, CheckMessageOrder_ExpectMessageWithHighestPriorityA EXPECT_EQ(message1, test_queue.front()); } -TEST_F(PrioritizedQueueTest, Push_AddMessagesWithEqualPriority_ExpectMessagesWithEqualPriorityAdded) { +TEST_F(PrioritizedQueueTest, + Push_AddMessagesWithEqualPriority_ExpectMessagesWithEqualPriorityAdded) { // Creating 2 messages with the same priorities TestMessage message1("Hello", 111); TestMessage message2("Luxoft", 111); @@ -134,14 +134,17 @@ TEST_F(PrioritizedQueueTest, Push_AddMessagesWithEqualPriority_ExpectMessagesWit EXPECT_EQ(2u, test_queue.size()); } -TEST_F(PrioritizedQueueTest, Pop_OneElementInPriorityQueue_ExpectQueueStillAliveWithRestMessagesWithEqualPriority) { +TEST_F( + PrioritizedQueueTest, + Pop_OneElementInPriorityQueue_ExpectQueueStillAliveWithRestMessagesWithEqualPriority) { // Creating 4 messages with same priorities TestMessage message1("Ford's", 111); TestMessage message2("Partner", 111); // Adding created messages to Prioritized queue. test_queue.push(message1); test_queue.push(message2); - // Expect 2 messages were added successfully to One element of prioritized queue + // Expect 2 messages were added successfully to One element of prioritized + // queue EXPECT_EQ(2u, test_queue.size()); // Extracting first element from the queue EXPECT_EQ(message1, test_queue.front()); @@ -153,7 +156,9 @@ TEST_F(PrioritizedQueueTest, Pop_OneElementInPriorityQueue_ExpectQueueStillAlive EXPECT_EQ(0u, test_queue.size()); } -TEST_F(PrioritizedQueueTest, Pop_TwoElementsInPriorityQueue_ExpectElementErasedIfOnlyOneWithConcretePriorityExist) { +TEST_F( + PrioritizedQueueTest, + Pop_TwoElementsInPriorityQueue_ExpectElementErasedIfOnlyOneWithConcretePriorityExist) { // Creating 2 messages with same priority and 1 with different TestMessage message1("Hello", 111); TestMessage message2("Luxoft", 111); @@ -162,7 +167,8 @@ TEST_F(PrioritizedQueueTest, Pop_TwoElementsInPriorityQueue_ExpectElementErasedI test_queue.push(message1); test_queue.push(message2); test_queue.push(message3); - // Expect 3 messages were added successfully to Two elements of prioritized queue + // Expect 3 messages were added successfully to Two elements of prioritized + // queue EXPECT_EQ(3u, test_queue.size()); // Extracting first element from the queue EXPECT_EQ(message1, test_queue.front()); @@ -177,7 +183,8 @@ TEST_F(PrioritizedQueueTest, Pop_TwoElementsInPriorityQueue_ExpectElementErasedI EXPECT_EQ(0u, test_queue.size()); } -TEST_F(PrioritizedQueueTest, NotEmptyPrioritizedQueuePopElement_ExpectQueueDecreasedOneElement) { +TEST_F(PrioritizedQueueTest, + NotEmptyPrioritizedQueuePopElement_ExpectQueueDecreasedOneElement) { // Creating 4 prioritized messages TestMessage message1("Alice", 111); TestMessage message2("in", 14); diff --git a/src/components/utils/test/qdb_wrapper/sql_query_test.cc b/src/components/utils/test/qdb_wrapper/sql_query_test.cc index 4d880a4cda..6c866ffb9d 100644 --- a/src/components/utils/test/qdb_wrapper/sql_query_test.cc +++ b/src/components/utils/test/qdb_wrapper/sql_query_test.cc @@ -55,8 +55,9 @@ class SQLQueryTest : public ::testing::Test { static void SetUpTestCase() { conn = qdb_connect(kDatabaseName.c_str(), 0); ASSERT_TRUE(conn); - int ret = qdb_statement(conn, "CREATE TABLE testTable (integerValue INTEGER," - " doubleValue REAL, stringValue TEXT)"); + int ret = qdb_statement(conn, + "CREATE TABLE testTable (integerValue INTEGER," + " doubleValue REAL, stringValue TEXT)"); ASSERT_NE(-1, ret); } @@ -93,9 +94,10 @@ TEST_F(SQLQueryTest, Query) { } TEST_F(SQLQueryTest, ExecString) { - const std::string kInsert("INSERT INTO testTable" - " (integerValue, doubleValue, stringValue)" - " VALUES(1, 1.1, 'one-один')"); + const std::string kInsert( + "INSERT INTO testTable" + " (integerValue, doubleValue, stringValue)" + " VALUES(1, 1.1, 'one-один')"); SQLDatabase* db = new SQLDatabase(kDatabaseName); ASSERT_TRUE(db->Open()); @@ -153,8 +155,9 @@ TEST_F(SQLQueryTest, BindString) { } TEST_F(SQLQueryTest, BindAllTypes) { - const std::string kInsert("INSERT INTO testTable (integerValue, doubleValue," - " stringValue) VALUES (?, ?, ?)"); + const std::string kInsert( + "INSERT INTO testTable (integerValue, doubleValue," + " stringValue) VALUES (?, ?, ?)"); const int kIntegerValue = 5; const double kDoubleValue = 5.5; const std::string kStringValue = "five-пять"; @@ -176,13 +179,15 @@ TEST_F(SQLQueryTest, BindAllTypes) { } TEST_F(SQLQueryTest, Value) { - const char* insert = "INSERT INTO testTable " + const char* insert = + "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (6, 6.6, 'six-шесть');"; ASSERT_NE(-1, qdb_statement(conn, insert)); - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable WHERE integerValue = 6"); + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable WHERE integerValue = 6"); const int kIntegerValue = 6; const double kDoubleValue = 6.6; const std::string kStringValue = "six-шесть"; @@ -203,8 +208,9 @@ TEST_F(SQLQueryTest, Value) { } TEST_F(SQLQueryTest, EmptySelect) { - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable WHERE 0"); + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable WHERE 0"); SQLDatabase* db = new SQLDatabase(kDatabaseName); ASSERT_TRUE(db->Open()); @@ -216,13 +222,15 @@ TEST_F(SQLQueryTest, EmptySelect) { } TEST_F(SQLQueryTest, NextAndBind) { - const char* insert = "INSERT INTO testTable " + const char* insert = + "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (7, 7.7, 'seven-семь');"; ASSERT_NE(-1, qdb_statement(conn, insert)); - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable WHERE integerValue = ?"); + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable WHERE integerValue = ?"); const int kIntegerValue = 7; const double kDoubleValue = 7.7; const std::string kStringValue = "seven-семь"; @@ -245,7 +253,8 @@ TEST_F(SQLQueryTest, NextAndBind) { } TEST_F(SQLQueryTest, LastInsertId) { - const char* create = "CREATE TABLE idTable ( " + const char* create = + "CREATE TABLE idTable ( " "id INTEGER PRIMARY KEY AUTOINCREMENT," "value TEXT)"; ASSERT_NE(-1, qdb_statement(conn, create)); @@ -270,8 +279,9 @@ TEST_F(SQLQueryTest, LastInsertId) { } TEST_F(SQLQueryTest, BindNull) { - const std::string kInsert("INSERT INTO testTable (`integerValue`)" - " VALUES (?)"); + const std::string kInsert( + "INSERT INTO testTable (`integerValue`)" + " VALUES (?)"); SQLDatabase* db = new SQLDatabase(kDatabaseName); ASSERT_TRUE(db->Open()); diff --git a/src/components/utils/test/resource_usage_test.cc b/src/components/utils/test/resource_usage_test.cc index cac5dc2e31..96b4fe4b49 100644 --- a/src/components/utils/test/resource_usage_test.cc +++ b/src/components/utils/test/resource_usage_test.cc @@ -60,25 +60,24 @@ TEST_F(ResourceUsagePrivateTest, GetMemInfoTest) { } TEST_F(ResourceUsagePrivateTest, GetStatPathTest_FileExists) { - //arrange + // arrange std::string filename = res.GetStatPath(); - //assert + // assert EXPECT_TRUE(file_system::FileExists(filename)); } TEST_F(ResourceUsagePrivateTest, GetStatPathTest_ReadFile) { - //arrange + // arrange std::string filename = res.GetStatPath(); std::string output; - //assert + // assert EXPECT_TRUE(file_system::ReadFile(filename, output)); - } TEST_F(ResourceUsagePrivateTest, GetProcPathTest) { - ///arrange + /// arrange std::string fd = res.GetProcPath(); std::string filename = res.GetStatPath(); - //assert + // assert EXPECT_EQ(filename, fd + "/stat"); } } @@ -88,7 +87,8 @@ namespace components { namespace utils_test { TEST(ResourceUsageTest, SuccesfulGrabResources) { - ::utils::ResourseUsage* resources = ::utils::Resources::getCurrentResourseUsage(); + ::utils::ResourseUsage* resources = + ::utils::Resources::getCurrentResourseUsage(); EXPECT_TRUE(resources != NULL); delete resources; } diff --git a/src/components/utils/test/rwlock_posix_test.cc b/src/components/utils/test/rwlock_posix_test.cc index 779b57ff32..6cb140f4c5 100644 --- a/src/components/utils/test/rwlock_posix_test.cc +++ b/src/components/utils/test/rwlock_posix_test.cc @@ -72,20 +72,20 @@ class RWlockTest : public ::testing::Test { } } - static void* ReadLock_helper(void *context) { - RWlockTest *temp = reinterpret_cast<RWlockTest *>(context); + static void* ReadLock_helper(void* context) { + RWlockTest* temp = reinterpret_cast<RWlockTest*>(context); temp->ReadLock(); return NULL; } - static void* TryReadLock_helper(void *context) { - RWlockTest *temp = reinterpret_cast<RWlockTest *>(context); + static void* TryReadLock_helper(void* context) { + RWlockTest* temp = reinterpret_cast<RWlockTest*>(context); temp->ExpectReadLockFail(); return NULL; } - static void* TryWriteLock_helper(void *context) { - RWlockTest *temp = reinterpret_cast<RWlockTest *>(context); + static void* TryWriteLock_helper(void* context) { + RWlockTest* temp = reinterpret_cast<RWlockTest*>(context); temp->ExpectWriteLockFail(); return NULL; } @@ -101,7 +101,8 @@ TEST_F(RWlockTest, AcquireForReading_ExpectAccessForReading) { EXPECT_TRUE(test_rwlock.AcquireForReading()); // Try to lock rw lock for reading again EXPECT_TRUE(test_rwlock.AcquireForReading()); - // Creating kNumThreads threads, starting them with callback function, waits until all of them finished + // Creating kNumThreads threads, starting them with callback function, waits + // until all of them finished ThreadsDispatcher(&RWlockTest::ReadLock_helper); // Releasing RW locks EXPECT_TRUE(test_rwlock.Release()); @@ -113,7 +114,8 @@ TEST_F(RWlockTest, AcquireForReading_ExpectNoAccessForWriting) { EXPECT_TRUE(test_rwlock.AcquireForReading()); // Try to lock rw lock for writing EXPECT_FALSE(test_rwlock.TryAcquireForWriting()); - // Creating kNumThreads threads, starting them with callback function, waits until all of them finished + // Creating kNumThreads threads, starting them with callback function, waits + // until all of them finished ThreadsDispatcher(&RWlockTest::TryWriteLock_helper); EXPECT_TRUE(test_rwlock.Release()); } @@ -123,7 +125,8 @@ TEST_F(RWlockTest, AcquireForWriting_ExpectNoAccessForReading) { EXPECT_TRUE(test_rwlock.AcquireForWriting()); // Try to lock rw lock for reading EXPECT_FALSE(test_rwlock.TryAcquireForReading()); - // Creating kNumThreads threads, starting them with callback function, waits until all of them finished + // Creating kNumThreads threads, starting them with callback function, waits + // until all of them finished ThreadsDispatcher(&RWlockTest::TryReadLock_helper); EXPECT_TRUE(test_rwlock.Release()); } @@ -133,7 +136,8 @@ TEST_F(RWlockTest, AcquireForWriting_ExpectNoMoreAccessForWriting) { EXPECT_TRUE(test_rwlock.AcquireForWriting()); // Try to lock rw lock for reading EXPECT_FALSE(test_rwlock.TryAcquireForWriting()); - // Creating kNumThreads threads, starting them with callback function, waits until all of them finished + // Creating kNumThreads threads, starting them with callback function, waits + // until all of them finished ThreadsDispatcher(&RWlockTest::TryWriteLock_helper); EXPECT_TRUE(test_rwlock.Release()); } diff --git a/src/components/utils/test/shared_ptr_test.cc b/src/components/utils/test/shared_ptr_test.cc index 92d867fe76..85682073aa 100644 --- a/src/components/utils/test/shared_ptr_test.cc +++ b/src/components/utils/test/shared_ptr_test.cc @@ -42,20 +42,20 @@ namespace utils { namespace SharedPtrTest { class CMockObject { - public: - CMockObject(int id); - virtual ~CMockObject(); - virtual int getId() const; + public: + CMockObject(int id); + virtual ~CMockObject(); + virtual int getId() const; - MOCK_METHOD0(destructor, void ()); + MOCK_METHOD0(destructor, void()); - private: - int mId_; + private: + int mId_; }; class CExtendedMockObject : public CMockObject { - public: - CExtendedMockObject(int id); + public: + CExtendedMockObject(int id); }; } // namespace CMockObject @@ -66,9 +66,7 @@ class CExtendedMockObject : public CMockObject { using namespace test::components::utils::SharedPtrTest; using ::testing::NiceMock; -CMockObject::CMockObject(int id) - : mId_(id) { -} +CMockObject::CMockObject(int id) : mId_(id) {} CMockObject::~CMockObject() { destructor(); @@ -78,9 +76,7 @@ int CMockObject::getId() const { return mId_; } -CExtendedMockObject::CExtendedMockObject(int id) - : CMockObject(id) { -} +CExtendedMockObject::CExtendedMockObject(int id) : CMockObject(id) {} typedef utils::SharedPtr<CMockObject> tMockObjectPtr; typedef utils::SharedPtr<CExtendedMockObject> tExtendedMockObjectPtr; @@ -120,9 +116,9 @@ TEST(SharedPtrTest, CopyConstructorTest) { ASSERT_EQ(1, p3->getId()); ASSERT_EQ(3u, *(p3.get_ReferenceCounter())); { - tMockObjectPtr p4 = p3; - ASSERT_EQ(1, p4->getId()); - ASSERT_EQ(4u, *(p3.get_ReferenceCounter())); + tMockObjectPtr p4 = p3; + ASSERT_EQ(1, p4->getId()); + ASSERT_EQ(4u, *(p3.get_ReferenceCounter())); } // Check reference counter decreased ASSERT_EQ(3u, *(p3.get_ReferenceCounter())); @@ -283,10 +279,9 @@ TEST(SharedPtrTest, LessThanOperatorTest) { // Checks if (object1 < object2) { - ASSERT_TRUE(p1 < p2); - } - else { - ASSERT_FALSE(p1 < p2); + ASSERT_TRUE(p1 < p2); + } else { + ASSERT_FALSE(p1 < p2); } EXPECT_CALL(*object1, destructor()); @@ -309,7 +304,8 @@ TEST(SharedPtrTest, StaticPointerCastTest_DerivedToBase_ExpectCastOk) { ASSERT_EQ(2, ep1->getId()); ASSERT_EQ(1u, *(ep1.get_ReferenceCounter())); // Cast from SharedPtr to Derived class to SharedPtr to Base class - p1 = utils::SharedPtr<CExtendedMockObject>::static_pointer_cast< CMockObject >(ep1); + p1 = utils::SharedPtr<CExtendedMockObject>::static_pointer_cast<CMockObject>( + ep1); // Checks ASSERT_EQ(2, p1->getId()); ASSERT_EQ(2u, *(p1.get_ReferenceCounter())); @@ -334,7 +330,8 @@ TEST(SharedPtrTest, StaticPointerCastTest_BaseToDerived_ExpectCastOk) { ASSERT_EQ(2, ep1->getId()); ASSERT_EQ(1u, *(ep1.get_ReferenceCounter())); // Cast from SharedPtr to Base class to SharedPtr to Derived class - ep1 = utils::SharedPtr<CMockObject>::static_pointer_cast<CExtendedMockObject>(p1); + ep1 = utils::SharedPtr<CMockObject>::static_pointer_cast<CExtendedMockObject>( + p1); // Checks ASSERT_EQ(1, ep1->getId()); ASSERT_EQ(2u, *(ep1.get_ReferenceCounter())); @@ -359,7 +356,8 @@ TEST(SharedPtrTest, DynamicPointerCastTest_DerivedToBase_ExpectCastOk) { ASSERT_EQ(2, ep1->getId()); ASSERT_EQ(1u, *(ep1.get_ReferenceCounter())); // Cast from SharedPtr to Derived class to SharedPtr to Base class - p1 = utils::SharedPtr<CExtendedMockObject>::dynamic_pointer_cast< CMockObject >(ep1); + p1 = utils::SharedPtr<CExtendedMockObject>::dynamic_pointer_cast<CMockObject>( + ep1); // Checks ASSERT_EQ(2, p1->getId()); ASSERT_EQ(2u, *(p1.get_ReferenceCounter())); @@ -384,7 +382,9 @@ TEST(SharedPtrTest, DynamicPointerCastTest_BaseToDerived_ExpectNullPtr) { ASSERT_EQ(2, ep1->getId()); ASSERT_EQ(1u, *(ep1.get_ReferenceCounter())); // Cast from SharedPtr to Base class to SharedPtr to Derived class - ep1 = utils::SharedPtr<CMockObject>::dynamic_pointer_cast<CExtendedMockObject>(p1); + ep1 = + utils::SharedPtr<CMockObject>::dynamic_pointer_cast<CExtendedMockObject>( + p1); // Checks ASSERT_EQ(NULL, ep1); @@ -539,6 +539,7 @@ TEST(SharedPtrTest, StressTest) { } } } - printf("%zu objects created, %zu pointers copied\n", objectCreated, + printf("%zu objects created, %zu pointers copied\n", + objectCreated, pointersCopied); } diff --git a/src/components/utils/test/singleton_test.cc b/src/components/utils/test/singleton_test.cc index 8a9e6b31e1..3bad45a7d7 100644 --- a/src/components/utils/test/singleton_test.cc +++ b/src/components/utils/test/singleton_test.cc @@ -42,7 +42,6 @@ using ::utils::Singleton; class SingletonTest : public ::utils::Singleton<SingletonTest> { public: - void SetValue(int value) { test_value = value; } @@ -50,128 +49,129 @@ class SingletonTest : public ::utils::Singleton<SingletonTest> { return test_value; } - FRIEND_BASE_SINGLETON_CLASS (SingletonTest); + FRIEND_BASE_SINGLETON_CLASS(SingletonTest); + private: int test_value; }; TEST(SingletonTest, CreateAndDestroySingleton) { - //assert + // assert ASSERT_EQ(SingletonTest::instance(), SingletonTest::instance()); ASSERT_EQ(0, SingletonTest::instance()->GetValue()); ASSERT_TRUE(SingletonTest::exists()); SingletonTest::instance()->SetValue(5); ASSERT_EQ(5, SingletonTest::instance()->GetValue()); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); } TEST(SingletonTest, DestroySingletonTwice) { - //assert + // assert ASSERT_EQ(0, SingletonTest::instance()->GetValue()); ASSERT_TRUE(SingletonTest::exists()); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); } TEST(SingletonTest, DeleteSingletonCreateAnother) { - //arrange + // arrange SingletonTest::instance()->SetValue(10); - //assert + // assert ASSERT_TRUE(SingletonTest::exists()); ASSERT_EQ(10, SingletonTest::instance()->GetValue()); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); - //act + // act SingletonTest::instance(); - //assert + // assert ASSERT_EQ(0, SingletonTest::instance()->GetValue()); ASSERT_TRUE(SingletonTest::exists()); SingletonTest::destroy(); } void* func_pthread1(void*) { - SingletonTest* singleton_in_other_thread = SingletonTest::instance(); + SingletonTest* singleton_in_other_thread = SingletonTest::instance(); pthread_exit(singleton_in_other_thread); return NULL; } -void* func_pthread2(void * value) { - SingletonTest * instance = reinterpret_cast<SingletonTest *>(value); +void* func_pthread2(void* value) { + SingletonTest* instance = reinterpret_cast<SingletonTest*>(value); instance->destroy(); - pthread_exit (NULL); + pthread_exit(NULL); return NULL; } TEST(SingletonTest, CreateSingletonInDifferentThreads) { - //arrange + // arrange SingletonTest::instance(); ASSERT_TRUE(SingletonTest::exists()); pthread_t thread1; pthread_create(&thread1, NULL, func_pthread1, NULL); - void *instance2; + void* instance2; pthread_join(thread1, &instance2); - SingletonTest * instance_2 = reinterpret_cast<SingletonTest *>(instance2); + SingletonTest* instance_2 = reinterpret_cast<SingletonTest*>(instance2); - //assert + // assert ASSERT_EQ(SingletonTest::instance(), instance_2); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); } TEST(SingletonTest, CreateDeleteSingletonInDifferentThreads) { - //arrange + // arrange pthread_t thread1; pthread_create(&thread1, NULL, func_pthread1, NULL); pthread_t thread2; pthread_create(&thread2, NULL, func_pthread1, NULL); - void *instance1; + void* instance1; pthread_join(thread1, &instance1); - SingletonTest * instance_1 = reinterpret_cast<SingletonTest *>(instance1); + SingletonTest* instance_1 = reinterpret_cast<SingletonTest*>(instance1); - void *instance2; + void* instance2; pthread_join(thread2, &instance2); - SingletonTest * instance_2 = reinterpret_cast<SingletonTest *>(instance2); + SingletonTest* instance_2 = reinterpret_cast<SingletonTest*>(instance2); - //assert + // assert ASSERT_TRUE(instance_1->exists()); ASSERT_TRUE(instance_2->exists()); ASSERT_EQ(instance_1, instance_2); - //act + // act SingletonTest::destroy(); - //assert + // assert ASSERT_FALSE(instance_1->exists()); ASSERT_FALSE(instance_2->exists()); } TEST(SingletonTest, DeleteSingletonInDifferentThread) { - //arrange + // arrange SingletonTest::instance(); ASSERT_TRUE(SingletonTest::exists()); @@ -180,7 +180,7 @@ TEST(SingletonTest, DeleteSingletonInDifferentThread) { pthread_join(thread1, NULL); - //assert + // assert ASSERT_FALSE(SingletonTest::exists()); } diff --git a/src/components/utils/test/sqlite_wrapper/sql_database_test.cc b/src/components/utils/test/sqlite_wrapper/sql_database_test.cc index ab72fb0eff..927f9dd88f 100644 --- a/src/components/utils/test/sqlite_wrapper/sql_database_test.cc +++ b/src/components/utils/test/sqlite_wrapper/sql_database_test.cc @@ -50,55 +50,52 @@ namespace dbms { } TEST(SQLDatabaseTest, OpenCloseMemory_OpenAndCloseDB_ActsWithoutError) { - - //arrange + // arrange SQLDatabase db; bool ret = db.Open(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); ASSERT_TRUE(ret); - //act + // act db.Close(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); } TEST(SQLDatabaseTest, OpenCloseFile_OpenAndCloseSpecifiedDB_ActsWithoutError) { - - //arrange + // arrange SQLDatabase db("test-database"); bool ret = db.Open(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); ASSERT_TRUE(ret); - //act + // act db.Close(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); remove("test-database.sqlite"); } TEST(SQLDatabaseTest, OpenDBTwice_NoError) { - - //arrange + // arrange SQLDatabase db; bool ret = db.Open(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); ASSERT_TRUE(ret); - //act + // act ret = db.Open(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); ASSERT_TRUE(ret); @@ -106,44 +103,42 @@ TEST(SQLDatabaseTest, OpenDBTwice_NoError) { } TEST(SQLDatabaseTest, CloseDBTwice_NoError) { - - //arrange + // arrange SQLDatabase db; bool ret = db.Open(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); ASSERT_TRUE(ret); - //act + // act db.Close(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); - //act + // act db.Close(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); } TEST(SQLDatabaseTest, Close_DBWasNotOpened_NoError) { - - //act + // act SQLDatabase db; db.Close(); - //assert + // assert EXPECT_FALSE(IsError(db.LastError())); } -TEST(SQLDatabaseTest, CommitTransaction_StartAndCommitTransaction_ExpectActsWithoutError) { - - //arrange +TEST(SQLDatabaseTest, + CommitTransaction_StartAndCommitTransaction_ExpectActsWithoutError) { + // arrange SQLDatabase db; - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_TRUE(db.BeginTransaction()); EXPECT_FALSE(IsError(db.LastError())); @@ -153,12 +148,12 @@ TEST(SQLDatabaseTest, CommitTransaction_StartAndCommitTransaction_ExpectActsWith db.Close(); } -TEST(SQLDatabaseTest, RollbackTransaction_StartAndRollbackTransaction_ExpectActsWithoutError) { - - //arrange +TEST(SQLDatabaseTest, + RollbackTransaction_StartAndRollbackTransaction_ExpectActsWithoutError) { + // arrange SQLDatabase db; - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_TRUE(db.BeginTransaction()); EXPECT_FALSE(IsError(db.LastError())); @@ -168,12 +163,12 @@ TEST(SQLDatabaseTest, RollbackTransaction_StartAndRollbackTransaction_ExpectActs db.Close(); } -TEST(SQLDatabaseTest, FailedCommitTransaction_CommitTransactionWithoutBeginning_ExpectError) { - - //arrange +TEST(SQLDatabaseTest, + FailedCommitTransaction_CommitTransactionWithoutBeginning_ExpectError) { + // arrange SQLDatabase db; - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_FALSE(db.CommitTransaction()); EXPECT_TRUE(IsError(db.LastError())); @@ -181,12 +176,13 @@ TEST(SQLDatabaseTest, FailedCommitTransaction_CommitTransactionWithoutBeginning_ db.Close(); } -TEST(SQLDatabaseTest, FailedRollbackTransaction_RollbackTransactionWithoutBeginning_ExpectError) { - - //arrange +TEST( + SQLDatabaseTest, + FailedRollbackTransaction_RollbackTransactionWithoutBeginning_ExpectError) { + // arrange SQLDatabase db; - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_FALSE(db.RollbackTransaction()); EXPECT_TRUE(IsError(db.LastError())); @@ -195,27 +191,25 @@ TEST(SQLDatabaseTest, FailedRollbackTransaction_RollbackTransactionWithoutBeginn } TEST(SQLDatabaseTest, BadTransaction_BeginTransitionWithoutOpenDB_ExpectError) { - - //arrange + // arrange SQLDatabase db; - //assert + // assert EXPECT_FALSE(db.BeginTransaction()); EXPECT_TRUE(IsError(db.LastError())); } TEST(SQLDatabaseTest, IsReadWrite_FirstOpenDBIsRWSecondIsNot) { - - //arrange + // arrange SQLDatabase db("test-database"); - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_TRUE(db.IsReadWrite()); db.Close(); chmod("test-database.sqlite", S_IRUSR); - //assert + // assert ASSERT_TRUE(db.Open()); EXPECT_FALSE(db.IsReadWrite()); diff --git a/src/components/utils/test/sqlite_wrapper/sql_query_test.cc b/src/components/utils/test/sqlite_wrapper/sql_query_test.cc index 07aff6127e..0cf378bab5 100644 --- a/src/components/utils/test/sqlite_wrapper/sql_query_test.cc +++ b/src/components/utils/test/sqlite_wrapper/sql_query_test.cc @@ -54,9 +54,12 @@ class SQLQueryTest : public ::testing::Test { static void SetUpTestCase() { sqlite3_open((kDatabaseName + ".sqlite").c_str(), &conn); - sqlite3_exec(conn, "CREATE TABLE testTable (integerValue INTEGER," + sqlite3_exec(conn, + "CREATE TABLE testTable (integerValue INTEGER," " doubleValue REAL, stringValue TEXT)", - NULL, NULL, NULL); + NULL, + NULL, + NULL); } static void TearDownTestCase() { @@ -97,131 +100,132 @@ sqlite3* SQLQueryTest::conn = 0; const std::string SQLQueryTest::kDatabaseName = "test-query"; TEST_F(SQLQueryTest, Query_CreateQuery_QueryInDBEqualCreated) { - - //arrange + // arrange const std::string kSelect("SELECT * FROM testTable WHERE integerValue = ?"); SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); query.Prepare(kSelect); - //assert + // assert EXPECT_STREQ(kSelect.c_str(), query.query().c_str()); } TEST_F(SQLQueryTest, ExecString_ExecuteQuery_ActWithoutError) { - - //arrange - const std::string kInsert("INSERT INTO testTable" - " (integerValue, doubleValue, stringValue)" - " VALUES(2, 3.4, 'five-пять')"); + // arrange + const std::string kInsert( + "INSERT INTO testTable" + " (integerValue, doubleValue, stringValue)" + " VALUES(2, 3.4, 'five-пять')"); SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert EXPECT_TRUE(query.Exec(kInsert)); EXPECT_FALSE(IsError(query.LastError())); } -TEST_F(SQLQueryTest, Bind_BindSeveralQueries_ExpectExecutedQueriesWithoutErrors) { - - //arrange +TEST_F(SQLQueryTest, + Bind_BindSeveralQueries_ExpectExecutedQueriesWithoutErrors) { + // arrange const std::string kInsert1("INSERT INTO testTable (integerValue) VALUES (?)"); const std::string kInsert2("INSERT INTO testTable (doubleValue) VALUES (?)"); const std::string kInsert3("INSERT INTO testTable (stringValue) VALUES (?)"); - const std::string kInsert4("INSERT INTO testTable (integerValue, doubleValue," - " stringValue) VALUES (?, ?, ?)"); + const std::string kInsert4( + "INSERT INTO testTable (integerValue, doubleValue," + " stringValue) VALUES (?, ?, ?)"); const int kIntegerValue = 1; const double kDoubleValue = 2.3; const std::string kStringValue = "four"; SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query1(&db); - //assert + // assert EXPECT_TRUE(query1.Prepare(kInsert1)); EXPECT_FALSE(IsError(query1.LastError())); query1.Bind(0, kIntegerValue); - //assert + // assert EXPECT_FALSE(IsError(query1.LastError())); EXPECT_TRUE(query1.Exec()); EXPECT_TRUE(IsDone(query1.LastError())); - //act + // act SQLQuery query2(&db); - //assert + // assert EXPECT_TRUE(query2.Prepare(kInsert2)); EXPECT_FALSE(IsError(query2.LastError())); query2.Bind(0, kDoubleValue); - //assert + // assert EXPECT_FALSE(IsError(query2.LastError())); EXPECT_TRUE(query2.Exec()); EXPECT_TRUE(IsDone(query2.LastError())); - //act + // act SQLQuery query3(&db); EXPECT_TRUE(query3.Prepare(kInsert3)); EXPECT_FALSE(IsError(query3.LastError())); query3.Bind(0, kStringValue); - //assert + // assert EXPECT_FALSE(IsError(query3.LastError())); EXPECT_TRUE(query3.Exec()); EXPECT_TRUE(IsDone(query3.LastError())); - //act + // act SQLQuery query4(&db); - //assert + // assert EXPECT_TRUE(query4.Prepare(kInsert4)); EXPECT_FALSE(IsError(query4.LastError())); query4.Bind(0, kIntegerValue); query4.Bind(1, kDoubleValue); query4.Bind(2, kStringValue); - //assert + // assert EXPECT_FALSE(IsError(query4.LastError())); EXPECT_TRUE(query4.Exec()); EXPECT_TRUE(IsDone(query4.LastError())); } TEST_F(SQLQueryTest, SetValue_InsertValues_ExpectDBHasInsertedValues) { - - //arrange - const char* insert = "INSERT INTO testTable " + // arrange + const char* insert = + "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (1, 2.3, 'four');"; - //assert + // assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, insert, NULL, NULL, NULL)); - //act - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable"); + // act + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable"); const int kIntegerValue = 1; const double kDoubleValue = 2.3; const std::string kStringValue = "four"; SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert EXPECT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); @@ -234,39 +238,42 @@ TEST_F(SQLQueryTest, SetValue_InsertValues_ExpectDBHasInsertedValues) { } TEST_F(SQLQueryTest, EmptySelect_SelectValuesEqual0_ExecWithoutErrors) { - - //arrange - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable WHERE 0"); + // arrange + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable WHERE 0"); SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert EXPECT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); EXPECT_TRUE(IsDone(query.LastError())); } -TEST_F(SQLQueryTest, NextAndBind_InsertValuesAndBindQuery_ExecWithoutErrorsAndBindingQueryIsLast) { - - //arrange - const char* insert = "INSERT INTO testTable " +TEST_F( + SQLQueryTest, + NextAndBind_InsertValuesAndBindQuery_ExecWithoutErrorsAndBindingQueryIsLast) { + // arrange + const char* insert = + "INSERT INTO testTable " "(integerValue, doubleValue, stringValue) " "VALUES (1, 2.3, 'four');"; - //assert + // assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, insert, NULL, NULL, NULL)); - const std::string kSelect("SELECT integerValue, doubleValue, stringValue" - " FROM testTable WHERE stringValue = ?"); + const std::string kSelect( + "SELECT integerValue, doubleValue, stringValue" + " FROM testTable WHERE stringValue = ?"); - //act + // act const int kIntegerValue = 1; const double kDoubleValue = 2.3; const std::string kStringValue = "four"; @@ -276,12 +283,12 @@ TEST_F(SQLQueryTest, NextAndBind_InsertValuesAndBindQuery_ExecWithoutErrorsAndBi SQLQuery query(&db); - //assert + // assert ASSERT_TRUE(query.Prepare(kSelect)); EXPECT_FALSE(IsError(query.LastError())); - //act + // act query.Bind(0, kStringValue); - //assert + // assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsRow(query.LastError())); @@ -293,36 +300,35 @@ TEST_F(SQLQueryTest, NextAndBind_InsertValuesAndBindQuery_ExecWithoutErrorsAndBi } TEST_F(SQLQueryTest, LastInsertId_InsertValuesAndBindQuery_GetExpectedId) { - - //arrange - const char* create = "CREATE TABLE idTable ( " + // arrange + const char* create = + "CREATE TABLE idTable ( " "id INTEGER PRIMARY KEY AUTOINCREMENT," "value TEXT)"; - //assert + // assert ASSERT_EQ(SQLITE_OK, sqlite3_exec(conn, create, NULL, NULL, NULL)); - const int64_t kExpectId = 1; const std::string kValue("Test last id of insert row"); const std::string kInsert("INSERT INTO idTable (value) VALUES(?)"); - //act + // act SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert ASSERT_TRUE(query.Prepare(kInsert)); EXPECT_FALSE(IsError(query.LastError())); - //act + // act query.Bind(0, kValue); - //assert + // assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsDone(query.LastError())); @@ -333,36 +339,35 @@ TEST_F(SQLQueryTest, LastInsertId_InsertValuesAndBindQuery_GetExpectedId) { } TEST_F(SQLQueryTest, BindNull_BindWithoutValue_ActWithoutErrors) { - - //arrange - const std::string kInsert("INSERT INTO testTable (`integerValue`)" - " VALUES (?)"); + // arrange + const std::string kInsert( + "INSERT INTO testTable (`integerValue`)" + " VALUES (?)"); SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert ASSERT_TRUE(query.Prepare(kInsert)); EXPECT_FALSE(IsError(query.LastError())); query.Bind(0); - //assert + // assert EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Exec()); ASSERT_TRUE(IsDone(query.LastError())); } TEST_F(SQLQueryTest, DoublePrepare_TwicePrepareQuery_ActWithoutErrors) { - - //arrange + // arrange SQLDatabase db(kDatabaseName); - //assert + // assert ASSERT_TRUE(db.Open()); - //act + // act SQLQuery query(&db); - //assert + // assert EXPECT_TRUE(query.Prepare("SELECT * FROM testTable")); EXPECT_FALSE(IsError(query.LastError())); EXPECT_TRUE(query.Prepare("SELECT * FROM testTable")); diff --git a/src/components/utils/test/stl_utils_test.cc b/src/components/utils/test/stl_utils_test.cc index dfc00de982..1fbde052f1 100644 --- a/src/components/utils/test/stl_utils_test.cc +++ b/src/components/utils/test/stl_utils_test.cc @@ -44,8 +44,7 @@ using ::utils::StlMapDeleter; class TestObject { public: - ~TestObject() { - } + ~TestObject() {} }; typedef std::map<int, TestObject*> TestMap; @@ -56,9 +55,7 @@ TEST(StlDeleter, DestructMapWithOneElement) { test_map[1] = new TestObject(); EXPECT_EQ(1u, test_map.size()); - { - StlMapDeleter<TestMap> test_list_deleter_(&test_map); - } + { StlMapDeleter<TestMap> test_list_deleter_(&test_map); } EXPECT_EQ(1u, test_map.size()); EXPECT_EQ(NULL, test_map[1]); } @@ -69,9 +66,7 @@ TEST(StlDeleter, DestructMapWithSeveralElements) { test_map[2] = new TestObject(); EXPECT_EQ(2u, test_map.size()); - { - StlMapDeleter<TestMap> test_list_deleter_(&test_map); - } + { StlMapDeleter<TestMap> test_list_deleter_(&test_map); } EXPECT_EQ(2u, test_map.size()); EXPECT_EQ(NULL, test_map[1]); EXPECT_EQ(NULL, test_map[2]); @@ -82,9 +77,7 @@ TEST(StlDeleter, DestructVectorWithOneElement) { test_vector.push_back(new TestObject()); EXPECT_EQ(1u, test_vector.size()); - { - StlCollectionDeleter<TestVector> test_list_deleter_(&test_vector); - } + { StlCollectionDeleter<TestVector> test_list_deleter_(&test_vector); } EXPECT_EQ(1u, test_vector.size()); EXPECT_EQ(NULL, test_vector[0]); } @@ -95,9 +88,7 @@ TEST(StlDeleter, DestructVectorWithSeveralElements) { test_vector.push_back(new TestObject()); EXPECT_EQ(2u, test_vector.size()); - { - StlCollectionDeleter<TestVector> test_list_deleter_(&test_vector); - } + { StlCollectionDeleter<TestVector> test_list_deleter_(&test_vector); } EXPECT_EQ(2u, test_vector.size()); EXPECT_EQ(NULL, test_vector[0]); EXPECT_EQ(NULL, test_vector[1]); diff --git a/src/components/utils/test/system_test.cc b/src/components/utils/test/system_test.cc index 42307998b4..aced77f849 100644 --- a/src/components/utils/test/system_test.cc +++ b/src/components/utils/test/system_test.cc @@ -62,7 +62,6 @@ TEST(SystemTest, Constructor_WithFileNameCommandName_ExpectArgsStored) { // Check if actual number of arguments arec correct int vec_size = object.argv().size(); ASSERT_EQ(vec_size, 1); // Correct number of arguments is 1 - } TEST(SystemTest, AddTwoArgsToCommand_ExpectTwoArgsAdded) { @@ -93,33 +92,39 @@ TEST(SystemTest, AddTwoArgsToCommand_CheckOrder_ExpectOrderCorrect) { EXPECT_STREQ(object.argv()[2].c_str(), args[1]); } - - TEST(SystemTest, SynchronousInvokeWithExistingCommand_ExpectSuccessfull) { const std::string test_command("./testscript.sh"); System object(test_command); - // Check if Execute() method is working properly with synchronous command invoke + // Check if Execute() method is working properly with synchronous command + // invoke ASSERT_TRUE(object.Execute(true)); } -TEST(SystemTest, SynchronousInvokeWithEmptyCommand_IncorrectCommand_ExpectFailed) { +TEST(SystemTest, + SynchronousInvokeWithEmptyCommand_IncorrectCommand_ExpectFailed) { const std::string test_command(""); // any incorrect command System object(test_command); - // Check if Execute() method will fail with not correct command (synchronous command invoke) + // Check if Execute() method will fail with not correct command (synchronous + // command invoke) ASSERT_FALSE(object.Execute(true)); } TEST(SystemTest, ASynchronousInvokeEmptyCommand_InvokeSuccessfull) { - const std::string test_command(""); // Possible to put here any command (existing or incorrect) - const std::string test_list_args("anything"); // as command will never be executed from child process - System object(test_command, test_list_args); // as parrent process does not wait for child process to be finished - - // Check if Execute() method is working properly with asynchronous command invoke + const std::string test_command( + ""); // Possible to put here any command (existing or incorrect) + const std::string test_list_args( + "anything"); // as command will never be executed from child process + System object(test_command, test_list_args); // as parrent process does not + // wait for child process to be + // finished + + // Check if Execute() method is working properly with asynchronous command + // invoke ASSERT_TRUE(object.Execute()); } -} // namespace utils -} // namespace components -} // namespace test +} // namespace utils +} // namespace components +} // namespace test diff --git a/src/components/utils/test/thread_validator_test.cc b/src/components/utils/test/thread_validator_test.cc index 16d9d12874..b6e21d7157 100644 --- a/src/components/utils/test/thread_validator_test.cc +++ b/src/components/utils/test/thread_validator_test.cc @@ -45,9 +45,8 @@ using namespace ::threads; TEST(ThreadValidatorTest, CompareID_CurrentThreadAndPthread_AreEqual) { SingleThreadSimpleValidator object; ASSERT_EQ(object.creation_thread_id(), pthread_self()); - } -} // namespace utils -} // namespace components -} // namespace test +} // namespace utils +} // namespace components +} // namespace test diff --git a/src/plugins/appenders/safe_file_appender.cc b/src/plugins/appenders/safe_file_appender.cc index 0d6cd614aa..ead775a1c6 100644 --- a/src/plugins/appenders/safe_file_appender.cc +++ b/src/plugins/appenders/safe_file_appender.cc @@ -37,10 +37,10 @@ using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SafeFileAppender) -void SafeFileAppender::subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { +void SafeFileAppender::subAppend(const spi::LoggingEventPtr& event, + log4cxx::helpers::Pool& p) { try { WriterAppender::subAppend(event, p); - } - catch (...) { + } catch (...) { } } diff --git a/src/plugins/appenders/safe_file_appender.h b/src/plugins/appenders/safe_file_appender.h index bcace8fa66..45299602ff 100644 --- a/src/plugins/appenders/safe_file_appender.h +++ b/src/plugins/appenders/safe_file_appender.h @@ -41,7 +41,8 @@ class SafeFileAppender : public FileAppender { public: DECLARE_LOG4CXX_OBJECT(SafeFileAppender) protected: - virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); + virtual void subAppend(const spi::LoggingEventPtr& event, + log4cxx::helpers::Pool& p); }; } // namespace log4cxx diff --git a/src/plugins/appenders/safe_rolling_file_appender.cc b/src/plugins/appenders/safe_rolling_file_appender.cc index 17e05adc91..7ed387d5c4 100644 --- a/src/plugins/appenders/safe_rolling_file_appender.cc +++ b/src/plugins/appenders/safe_rolling_file_appender.cc @@ -37,10 +37,10 @@ using namespace log4cxx::helpers; IMPLEMENT_LOG4CXX_OBJECT(SafeRollingFileAppender) -void SafeRollingFileAppender::subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p) { +void SafeRollingFileAppender::subAppend(const spi::LoggingEventPtr& event, + log4cxx::helpers::Pool& p) { try { RollingFileAppenderSkeleton::subAppend(event, p); - } - catch (...) { + } catch (...) { } } diff --git a/src/plugins/appenders/safe_rolling_file_appender.h b/src/plugins/appenders/safe_rolling_file_appender.h index 593cc86aad..75832b7de7 100644 --- a/src/plugins/appenders/safe_rolling_file_appender.h +++ b/src/plugins/appenders/safe_rolling_file_appender.h @@ -41,7 +41,8 @@ class SafeRollingFileAppender : public RollingFileAppender { public: DECLARE_LOG4CXX_OBJECT(SafeRollingFileAppender) protected: - virtual void subAppend(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p); + virtual void subAppend(const spi::LoggingEventPtr& event, + log4cxx::helpers::Pool& p); }; } // namespace log4cxx |