github.com/GeniusesGroup/libgo@v0.0.0-20220929090155-5ff932cb408e/protocol/storages.go (about) 1 /* For license and copyright information please see LEGAL file in repository */ 2 3 package protocol 4 5 // StoragesDistributed is the interface that can implement by any Application to provide distributed storage mechanism. 6 type StoragesDistributed interface { 7 Objects() StorageObjects 8 Files() FileDirectory 9 Records() StorageRecords 10 KeyValues() StorageKeyValue 11 } 12 13 // StoragesLocal is the interface that can implement by any Application to provide local storage mechanism. 14 type StoragesLocal interface { 15 LocalObjects() StorageObjects 16 LocalFiles() FileDirectory 17 LocalRecords() StorageRecords 18 LocalKeyValues() StorageKeyValue 19 20 // It is like old kernels file systems that shared between all applications. 21 // It serve by the GUI app that run on the OS as default user interface. 22 LocalSharedFiles() FileDirectory 23 } 24 25 // StoragesCache is the interface that can implement by any Application to provide cache storage mechanism. 26 // Keep them on volatile memories and just save very common on non-volatile storages. 27 // All GUI & edge nodes of any software must use cache in many cases to improve performance. 28 type StoragesCache interface { 29 ObjectsCache() StorageObjects 30 FilesCache() FileDirectory 31 RecordsCache() StorageRecords 32 KeyValuesCache() StorageKeyValue 33 }