From: Mukund Sivaraman Date: Tue, 18 Jun 2013 23:53:26 +0000 (+0530) Subject: [3006] Add another sequence diagram X-Git-Tag: bind10-1.2.0beta1-release~374^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=46544d453c97522254fcbef13fb57c67be622cb5;p=thirdparty%2Fkea.git [3006] Add another sequence diagram --- diff --git a/doc/design/datasrc/Makefile.am b/doc/design/datasrc/Makefile.am index e4e9150a69..71db3175c6 100644 --- a/doc/design/datasrc/Makefile.am +++ b/doc/design/datasrc/Makefile.am @@ -1,5 +1,6 @@ UML_FILES = \ overview.txt \ + auth-local.txt \ auth-mapped.txt TEXT_FILES = \ diff --git a/doc/design/datasrc/auth-local.txt b/doc/design/datasrc/auth-local.txt new file mode 100644 index 0000000000..1f58d3a578 --- /dev/null +++ b/doc/design/datasrc/auth-local.txt @@ -0,0 +1,140 @@ +@startuml + +participant auth as "b10-auth" +[-> auth: new/initial config\n(datasrc cfg) +activate auth + +participant list as "Configurable\nClientList" +create list +auth -> list: <> + +auth -> list: configure(cfg) +activate list + +create CacheConfig +list -> CacheConfig: <> (cfg) + +participant zt_segment as "ZoneTable\nSegment\n(Local)" +create zt_segment +list -> zt_segment: <> +activate zt_segment + +create ZoneTable +zt_segment -> ZoneTable: <> + +deactivate zt_segment + +list -> zt_segment: isWritable() +activate zt_segment +note over zt_segment: Local segments are\nalways writable +zt_segment --> list: true +deactivate zt_segment + +loop for each zone in CacheConfig +list -> CacheConfig: getLoadAction() +activate CacheConfig + +create LoadAction +CacheConfig -> LoadAction: <> + +participant LoadAction.2 + +CacheConfig --> list : LoadAction + +deactivate CacheConfig + +create ZoneWriter +list -> ZoneWriter: <> (load_action) + +participant ZoneWriter.2 + +list -> ZoneWriter: load() +activate ZoneWriter +ZoneWriter -> LoadAction: (funcall) +activate LoadAction + +create ZoneData +LoadAction -> ZoneData: <> via helpers + +participant ZoneData.2 + +LoadAction --> ZoneWriter: ZoneData +deactivate LoadAction +deactivate ZoneWriter + +list -> ZoneWriter: install() +activate ZoneWriter + +ZoneWriter -> ZoneTable: addZone(ZoneData) +activate ZoneTable +ZoneTable --> ZoneWriter: NULL (no old data) +deactivate ZoneTable + +deactivate ZoneWriter + +end + +deactivate list +deactivate auth + +... + +[-> auth: reload\n(zonename) +activate auth + +auth -> list: getCachedZoneWriter\n(zone_name) +activate list + +list -> CacheConfig: getLoadAction() +activate CacheConfig + +create LoadAction.2 +CacheConfig -> LoadAction.2: <> + +CacheConfig --> list : LoadAction.2 + +deactivate CacheConfig + +create ZoneWriter.2 +list -> ZoneWriter.2: <> (load_action) + +list --> auth: ZoneWriter.2 + +deactivate list + + + + + +auth -> ZoneWriter.2: load() +activate ZoneWriter.2 +ZoneWriter.2 -> LoadAction.2: (funcall) +activate LoadAction.2 + +create ZoneData.2 +LoadAction.2 -> ZoneData.2: <> via helpers + +LoadAction.2 --> ZoneWriter.2: ZoneData.2 +deactivate LoadAction.2 +deactivate ZoneWriter.2 + +auth -> ZoneWriter.2: install() +activate ZoneWriter.2 + +ZoneWriter.2 -> ZoneTable: addZone(ZoneData.2) +activate ZoneTable +ZoneTable --> ZoneWriter.2: ZoneData (old data) +deactivate ZoneTable + +deactivate ZoneWriter.2 + +auth -> ZoneWriter.2: cleanup() +activate ZoneWriter.2 + +ZoneWriter.2 -> ZoneData: <> +destroy ZoneData +deactivate ZoneWriter.2 + +deactivate auth + +@enduml diff --git a/doc/design/datasrc/data-source-classes.txt b/doc/design/datasrc/data-source-classes.txt index 20f9e01342..63c43c7a9d 100644 --- a/doc/design/datasrc/data-source-classes.txt +++ b/doc/design/datasrc/data-source-classes.txt @@ -173,7 +173,7 @@ class) to represent the server application behavior. For the purpose of this document that should be sufficient. The same note applies to all examples below. -image::auth-local.png[] +image::auth-local.png[Sequence diagram for auth server using local memory segment] 1. On startup, the auth module creates a `ConfigurableClientList` for each RR class specified in the configuration for "data_sources"