@@ -60,6 +60,56 @@ struct StripeInitInfo;
6060class CacheEvacuateDocVC;
6161class RamCache;
6262
63+ /* *
64+ @class StripeSM
65+
66+ @startuml
67+ hide empty description
68+
69+ [*] --> aggWrite : Constructor
70+
71+ note right of aggWrite
72+ Can be called:
73+ 1. As handler (event system)
74+ 2. Directly from CacheVC::handleWrite
75+ 3. Directly from CacheSync::mainEvent
76+ 4. Directly from aggWriteDone
77+ end note
78+
79+ aggWrite --> aggWriteDone
80+
81+ note bottom of aggWriteDone
82+ calls aggWrite() directly
83+ without changing state
84+ end note
85+
86+ aggWrite --> evacuateDocReadDone : evac_range()
87+
88+ note bottom of evacuateDocReadDone
89+ calls aggWrite() directly
90+ without changing state
91+ end note
92+
93+ aggWrite --> handle_header_read : init(false)
94+ aggWrite --> handle_dir_clear : init(true)
95+
96+ handle_header_read --> handle_dir_read
97+ handle_header_read --> handle_dir_clear : clear_dir_aio()
98+
99+ handle_dir_read --> handle_recover_from_data : recover_data()
100+ handle_dir_read --> handle_dir_clear : clear_dir_aio()
101+
102+ handle_recover_from_data --> handle_recover_write_dir
103+ handle_recover_from_data --> handle_dir_clear : clear_dir_aio()
104+
105+ handle_recover_write_dir --> dir_init_done
106+
107+ handle_dir_clear --> dir_init_done
108+
109+ dir_init_done--> aggWrite
110+
111+ @enduml
112+ */
63113class StripeSM : public Continuation, public Stripe
64114{
65115public:
0 commit comments