|
@@ -0,0 +1,132 @@
|
|
|
|
+@startuml
|
|
|
|
+
|
|
|
|
+participant memmgr as "memmgr"
|
|
|
|
+[-> memmgr: new/initial config\n(datasrc cfg)
|
|
|
|
+activate memmgr
|
|
|
|
+
|
|
|
|
+participant list as "Configurable\nClientList"
|
|
|
|
+create list
|
|
|
|
+memmgr -> list: <<construct>>
|
|
|
|
+
|
|
|
|
+memmgr -> list: configure(cfg)
|
|
|
|
+activate list
|
|
|
|
+
|
|
|
|
+create CacheConfig
|
|
|
|
+list -> CacheConfig: <<construct>> (cfg)
|
|
|
|
+
|
|
|
|
+participant zt_segment as "ZoneTable\nSegment\n(Mapped)"
|
|
|
|
+create zt_segment
|
|
|
|
+list -> zt_segment: <<construct>>
|
|
|
|
+
|
|
|
|
+list -> zt_segment: isWritable()
|
|
|
|
+activate zt_segment
|
|
|
|
+note over zt_segment: Segment not writable\nwhen not reset
|
|
|
|
+zt_segment --> list: false
|
|
|
|
+deactivate zt_segment
|
|
|
|
+
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+memmgr -> list: getStatus()
|
|
|
|
+activate list
|
|
|
|
+list --> memmgr: DataSourceStatus[]
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+loop for each datasrc with mapped segment
|
|
|
|
+
|
|
|
|
+memmgr -> list: resetMemorySegment\n(datasrc_name,\nREAD_WRITE,\nsegmentparam)
|
|
|
|
+activate list
|
|
|
|
+
|
|
|
|
+list -> zt_segment: reset\n(READ_WRITE,\nsegmentparam)
|
|
|
|
+activate zt_segment
|
|
|
|
+
|
|
|
|
+participant segment as "Memory\nSegment\n(Mapped)"
|
|
|
|
+create segment
|
|
|
|
+zt_segment -> segment: <<construct>>
|
|
|
|
+
|
|
|
|
+participant segment.2 as "Memory\nSegment\n(Mapped)\n2"
|
|
|
|
+
|
|
|
|
+create ZoneTable
|
|
|
|
+zt_segment -> ZoneTable: <<construct>>
|
|
|
|
+
|
|
|
|
+deactivate zt_segment
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+memmgr -> list: getZoneTableAccessor\n(datasrc_name,\ncache=true)
|
|
|
|
+activate list
|
|
|
|
+list -> memmgr: ZoneTableAccessor
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+loop for each zone given by ZoneTableIterator
|
|
|
|
+
|
|
|
|
+memmgr -> list: getCachedZoneWriter\n(zone_name)
|
|
|
|
+activate list
|
|
|
|
+
|
|
|
|
+list -> CacheConfig: getLoadAction()
|
|
|
|
+activate CacheConfig
|
|
|
|
+
|
|
|
|
+create LoadAction
|
|
|
|
+CacheConfig -> LoadAction: <<construct>>
|
|
|
|
+
|
|
|
|
+CacheConfig --> list : LoadAction
|
|
|
|
+
|
|
|
|
+deactivate CacheConfig
|
|
|
|
+
|
|
|
|
+create ZoneWriter
|
|
|
|
+list -> ZoneWriter: <<construct>> (load_action)
|
|
|
|
+
|
|
|
|
+list --> memmgr: ZoneWriter
|
|
|
|
+
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+memmgr -> ZoneWriter: load()
|
|
|
|
+activate ZoneWriter
|
|
|
|
+ZoneWriter -> LoadAction: (funcall)
|
|
|
|
+activate LoadAction
|
|
|
|
+
|
|
|
|
+create ZoneData
|
|
|
|
+LoadAction -> ZoneData: <<construct>> via helpers
|
|
|
|
+
|
|
|
|
+LoadAction --> ZoneWriter: ZoneData
|
|
|
|
+deactivate LoadAction
|
|
|
|
+deactivate ZoneWriter
|
|
|
|
+
|
|
|
|
+memmgr -> ZoneWriter: install()
|
|
|
|
+activate ZoneWriter
|
|
|
|
+
|
|
|
|
+ZoneWriter -> ZoneTable: addZone(ZoneData)
|
|
|
|
+activate ZoneTable
|
|
|
|
+ZoneTable --> ZoneWriter: NULL (no old data)
|
|
|
|
+deactivate ZoneTable
|
|
|
|
+
|
|
|
|
+deactivate ZoneWriter
|
|
|
|
+
|
|
|
|
+end
|
|
|
|
+
|
|
|
|
+[<- memmgr: command to\nmodules\n(datasrc_name,\nsegmentparam)
|
|
|
|
+[--> memmgr: ack from all\nmodules
|
|
|
|
+
|
|
|
|
+memmgr -> list: resetMemorySegment\n(datasrc_name,\nREAD_WRITE,\nsegmentparam)
|
|
|
|
+activate list
|
|
|
|
+
|
|
|
|
+list -> zt_segment: reset\n(READ_WRITE,\nsegmentparam)
|
|
|
|
+activate zt_segment
|
|
|
|
+
|
|
|
|
+zt_segment -> segment: <<destroy>>
|
|
|
|
+destroy segment
|
|
|
|
+create segment.2
|
|
|
|
+zt_segment -> segment.2: <<construct>>
|
|
|
|
+
|
|
|
|
+deactivate zt_segment
|
|
|
|
+deactivate list
|
|
|
|
+
|
|
|
|
+note left of memmgr: load zone\nfor each zone\ngiven by\nZoneTableIterator
|
|
|
|
+
|
|
|
|
+end
|
|
|
|
+
|
|
|
|
+[<-- memmgr
|
|
|
|
+
|
|
|
|
+deactivate memmgr
|
|
|
|
+
|
|
|
|
+@enduml
|