diff --git a/src/iocore/cache/StripeSM.h b/src/iocore/cache/StripeSM.h index 3ae476ac69e..b0e40c931bc 100644 --- a/src/iocore/cache/StripeSM.h +++ b/src/iocore/cache/StripeSM.h @@ -60,6 +60,56 @@ struct StripeInitInfo; class CacheEvacuateDocVC; class RamCache; +/** + @class StripeSM + + @startuml + hide empty description + + [*] --> aggWrite : Constructor + + note right of aggWrite + Can be called: + 1. As handler (event system) + 2. Directly from CacheVC::handleWrite + 3. Directly from CacheSync::mainEvent + 4. Directly from aggWriteDone + end note + + aggWrite --> aggWriteDone + + note bottom of aggWriteDone + calls aggWrite() directly + without changing state + end note + + aggWrite --> evacuateDocReadDone : evac_range() + + note bottom of evacuateDocReadDone + calls aggWrite() directly + without changing state + end note + + aggWrite --> handle_header_read : init(false) + aggWrite --> handle_dir_clear : init(true) + + handle_header_read --> handle_dir_read + handle_header_read --> handle_dir_clear : clear_dir_aio() + + handle_dir_read --> handle_recover_from_data : recover_data() + handle_dir_read --> handle_dir_clear : clear_dir_aio() + + handle_recover_from_data --> handle_recover_write_dir + handle_recover_from_data --> handle_dir_clear : clear_dir_aio() + + handle_recover_write_dir --> dir_init_done + + handle_dir_clear --> dir_init_done + + dir_init_done--> aggWrite + + @enduml + */ class StripeSM : public Continuation, public Stripe { public: