diff options
Diffstat (limited to 'src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox')
-rw-r--r-- | src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox b/src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox new file mode 100644 index 0000000000..dea9ae5d0b --- /dev/null +++ b/src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox @@ -0,0 +1,116 @@ +/** +\page service_status_update Service Status Update Detailed Design +## Table of contents +- \subpage service_status_update_intoduction + + \ref service_status_update_rationale "1.1 Rationale" + + \ref service_status_update_scope "1.2 Scope" +- \subpage service_status_update_detail_design + + \ref service_status_update_design_solutions "2.1 Design solutions" + + \ref service_status_update_class_structure "2.2 Class Structure" + + \ref service_status_update_sequence_diagram "2.3 Sequence diagram" +- \subpage service_status_update_data_structures + + \ref service_status_update_data_structure "3.1 Data structures" +- \subpage service_status_update_references_and_history + + \ref service_status_update_history "4.1 References" +*/ +//----------------------------------------------------------- +/** +\page service_status_update_intoduction 1 Introduction +The document is intended to support software developers, +maintenance and integration engineers with sufficient, +detailed information concerning the design, development and +deployment concepts, to accomplish their respective tasks without reliance on the authors. + +\anchor service_status_update_rationale +## 1.1 Rationale +ServiceStatusUpdateHandler and ServiceStatusUpdateHandlerListener classes are +implemented to provide adequate levels of abstraction when passing data between ProtocolHandler, +SecurityManager, ApplicationManager and PolicyHandler + +\anchor service_status_update_scope +## 1.2 Scope +ServiceStatusUpdateHandler is a part of protocol_handler namespace + +*/ +//----------------------------------------------------------- +/** +\page service_status_update_detail_design 2 Component detail design +\anchor service_status_update_design_solutions +### 2.1 Design solutions +The following design approaches and patterns was used for ServiceStatusUpdateHandler: +- Introducing extra layer to process data relevant only for ProtocolHandler or ApplicationManager + + ServiceStatusUpdateHandler converts ServiceStatus value relevant only for ProtocolHandler to + HMI API values relevant only for ApplicationManager +- [Builder design pattern](https://sourcemaking.com/design_patterns/builder) + used for construction of OnServiceUpdate notification object +- [Observer design pattern] + used for notifying ApplicationManager of service update occured + + +#### Design description +protocol_handler::ServiceStatusUpdateHandler is an entity to establish data transfer between +ProtocolHandler and ApplicationManager about occuring service updates +protocol_handler::ServiceStatusUpdateHandlerListener is an interface used +to provide adequate level of abstraction between broadcasting and listening entity +MessageHelper::ServiceStatusUpdateNotificationBuilder is an entity used +for flexible construction of OnServiceUpdate notification object + +\anchor service_status_update_class_structure +### 2.2 Class Structure +The following UML class diagram shows the component structure. +![Service Status Update class diagram](ServiceStatusUpdate_classes.png) +For more information about class diagram follow: +- http://www.uml-diagrams.org/class-diagrams-overview.htqml +- https://sourcemaking.com/uml/modeling-it-systems/structural-view/class-diagram + +\anchor service_status_update_sequence_diagram +### 2.3 Sequence diagram +The following UML sequence diagram shows the component dynamic behavior. +For more information about sequence diagram follow: +- http://www.uml-diagrams.org/sequence-diagrams.html +- https://sourcemaking.com/uml/modeling-it-systems/external-view/use-case-sequence-diagram + +Service Status Update basic flow: +![Basic flow](ServiceStatusUpdate_sequence.png) + +Service Status Update invalid certificate: +![Invalid Cert](invalid_cert.png) + +Service Status Update PTU failed: +![PTU Failed](ptu_failed.png) + +Service Status Update PTU failed (EXTERNAL_PROPRIETARY): +![PTU Failed EXTERNAL_PROPRIETARY](PTU_for_EXTERNAL_PROPRIETARY.png) + +Service Status Update GetSystemTime failed: +![GetSystemTime failed](invalid_time.png) +*/ + +//----------------------------------------------------------- +/** +\page service_status_update_data_structures 3 Component data and resources +\anchor service_status_update_data_structure +### 3.1 Element Data Structure +The following data types are used by the ServiceStatusUpdateHandler: + - protocol_handler::ServiceStatus + +//----------------------------------------------------------- +/** +\page service_status_update_references_and_history 4 References and history +\anchor service_status_update_history +### 4.1 Document history +Document change history + +| Version | Date | Author/Editor | Change description | +|-------------|------------|----------------------------------------|---------------------| +| 0.1 | 02/21/2019 | [MKed](https://github.com/mked-luxoft) | Initial version from the previous [SDL SDD](https://adc.luxoft.com/confluence/pages/viewpage.action?pageId=279677125) | + +Document approve history + +| Version | Date | Author/Editor | Change description | +|-------------|------------|-----------------------------|---------------------| +| | | | | + +For more precise document change history follow github history - +- https://github.com/smartdevicelink/sdl_core/commits/develop/src/components/protocol_handler/docs/SDL.SDD.ServiceStatusUpdate.dox +*/
\ No newline at end of file |