blob: 228c3db63bbd0a66a0c11720e88f6b81558842cb [file] [log] [blame]
Julian Hall7af7f902023-02-16 11:07:32 +00001'-------------------------------------------------------------------------------
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
10 class fw_store
11class bank_tracker
12class metadata_manager
13class metadata_serializer
14class installer_index
15class volume_index
16class installer
17class volume
18
19class bank_tracker {
20 +accept()
21 +copy_accept()
22 +set_no_content()
23 +set_holds_content()
24 +set_holds_acceped_content()
25 +is_content()
26 +is_accepted()
27 +is_all_accepted()
28}
29
30class fw_store {
31 +synchronize()
32 +begin_install()
33 +cancel_install()
34 +finalize_install()
35 +select_installer()
36 +write_image()
37 +commit_image()
38 +notify_accepted()
39 +is_accepted()
40 +is_trial()
41 +commit_to_update()
42 +revert_to_previous()
43 +export()
44}
45
46class metadata_manager {
47 +check_and_repair()
48 +update()
49 +get_active_indices()
50 +preload_bank_tracker()
51}
52
53class metadata_serializer {
54 +serialize()
55 +size()
56 +max_size()
57 +deserialize_bank_info()
58 +deserialize_active_indices()
59}
60
61class installer_index {
62 +register()
63 +find()
64 +get()
65 +get_location_ids()
66}
67
68class installer {
69 +begin()
70 +finalize()
71 +abort()
72 +open()
73 +commit()
74 +write()
75 +enumerate()
76}
77
78class volume_index {
79 +add()
80 +find()
81}
82
83class volume {
84 +open()
85 +close()
86 +seek()
87 +size()
88 +read()
89 +write()
90 +erase()
91 +get_storage_ids()
92}
93
94fw_store -> metadata_manager
95fw_store -> bank_tracker
96fw_store -> installer_index
97fw_store -> volume_index
98metadata_manager -> metadata_serializer
99installer_index -> "*" installer
100volume_index -> "*" volume
101metadata_manager -> "2" volume
102installer ..> volume
103
104@enduml