1'-------------------------------------------------------------------------------
2' Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
3'
4' SPDX-License-Identifier: BSD-3-Clause
5'
6'-------------------------------------------------------------------------------
7
8@startuml
9
10class fw_directory
11class fw_inspector
12class img_dir_serializer
13class stream_manager
14class update_agent
15class fw_store
16class installer
17
18class update_agent {
19	+begin_staging()
20	+end_staging()
21	+cancel_staging()
22	+accept()
23	+select_previous()
24  	+open()
25	+commit()
26	+read_stream()
27	+write_stream()
28}
29
30class fw_directory {
31	+set_boot_info()
32	+add_image_info()
33	+find_image_info()
34	+get_image_info()
35	+num_images()
36}
37
38class fw_inspector {
39	+inspect
40}
41
42class img_dir_serializer {
43	+serialize()
44	+get_len()
45}
46
47class stream_manager {
48	+open_buffer_stream()
49	+open_install_stream()
50	+close_stream()
51	+cancel_streams()
52	+is_open_streams()
53	+read()
54	+write()
55}
56
57class fw_store {
58	+synchronize()
59	+begin_install()
60	+cancel_install()
61	+finalize_install()
62	+select_installer()
63	+write_image()
64	+commit_image()
65	+notify_accepted()
66	+is_accepted()
67	+is_trial()
68	+commit_to_update()
69	+revert_to_previous()
70	+export()
71}
72
73class installer {
74	+begin()
75	+finalize()
76	+abort()
77	+open()
78	+commit()
79	+write()
80	+enumerate()
81}
82
83class installer_index {
84	+register()
85	+find()
86	+get()
87	+get_location_ids()
88}
89
90update_agent -> fw_store
91update_agent -> fw_directory
92update_agent -> fw_inspector
93update_agent -> stream_manager
94update_agent -> img_dir_serializer
95img_dir_serializer ..> fw_directory
96fw_inspector -> installer_index
97fw_inspector ..> installer
98stream_manager ..> installer
99
100@enduml
101