github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istorage/provider/README.md (about) 1 ### TODO 2 - SafeAppName uniquity is gauranted for SE only. Need to implement another angorythm to get SafeAppName in Entrprise Edition 3 4 ```mermaid 5 flowchart TD 6 istorageimpl[istorageimpl]:::S 7 driver[driver]:::S 8 IAppStorageFactory([IAppStorageFactory]):::S 9 IAppStorageProvider([IAppStorageProvider]):::S 10 IAppStorage([IAppStorage]):::S 11 AppQName([AppQName]):::H 12 AppStorageDesc([AppStorageDesc]):::S 13 pending[pending]:::H 14 done[done]:::H 15 sysmeta[(sysmeta)]:::H 16 storage[(storage)]:::H 17 Init([Init]):::S 18 AppStorageQ([AppStorage]):::S 19 AppStorageS([AppStorage]):::S 20 ASStatus([Status]):::S 21 SafeAppName([SafeAppName]):::S 22 NewSafeAppName([NewSafeAppName]):::S 23 ASError([Error]):::S 24 25 classDef G fill:#FFFFFF,stroke:#000000, stroke-width:1px, stroke-dasharray: 5 5 26 classDef B fill:#FFFFB5,color:#333 27 classDef S fill:#B5FFFF 28 classDef H fill:#C9E7B7 29 30 driver --- |provides| IAppStorageFactory 31 IAppStorageFactory --- |has| Init 32 IAppStorageFactory --- |has| AppStorageS 33 IAppStorage -.provides connection to existing.- storage 34 AppStorageS -.returns new.- IAppStorage 35 Init -. creates new .- storage 36 istorageimpl --- |provides| IAppStorageProvider 37 IAppStorageProvider --- |has| AppStorageQ 38 AppStorageQ -.caches and returns.- IAppStorage 39 sysmeta -.is.- storage 40 41 AppStorageDesc -.persisted by stringified.- AppQName 42 AppQName -.in.- sysmeta 43 AppStorageDesc --- |has| ASStatus 44 ASStatus -.is initially.- pending 45 pending -.before.- Init 46 ASStatus -.could be.- done 47 done -.is set after success.- Init 48 AppStorageDesc --- |has| SafeAppName 49 SafeAppName -.is name of.- storage 50 SafeAppName -.created by.- NewSafeAppName 51 NewSafeAppName -.checks uniquity in.- sysmeta 52 SafeAppName -.persisted in.- sysmeta 53 ASError --- |is field of| AppStorageDesc 54 AppStorageQ -.reads or creates new.- AppStorageDesc 55 ASError -.returned by.- Init 56 AppStorageQ -.could return.- ASError 57 ```