X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=internal%2Fcli%2Ftypes.go;h=f5c44392375394535db3ac17f184aa029c058750;hb=277f322e53bb123783c0945a78a263ca79c5dd2a;hp=ad942c863da4bed6fb1772cc6b18c3de73b2d679;hpb=bf3832a4e8a0a5d9c0c83f784ae3778f4697fe61;p=ric-plt%2Fsdlgo.git diff --git a/internal/cli/types.go b/internal/cli/types.go index ad942c8..f5c4439 100644 --- a/internal/cli/types.go +++ b/internal/cli/types.go @@ -22,5 +22,48 @@ package cli -//Name of the SDL CLI application +import "gerrit.o-ran-sc.org/r/ric-plt/sdlgo/internal/sdlgoredis" + +//iDatabase is an interface towards database backend, for the time being +//sdlgoredis.DB implements this interface. +type iDatabase interface { + Info() (*sdlgoredis.DbInfo, error) + State() (*sdlgoredis.DbState, error) + Keys(pattern string) ([]string, error) +} + +//Database struct is a holder for the internal database instances. +type Database struct { + Instances []iDatabase +} + +//DbCreateCb callback function type to create a new database +type DbCreateCb func() *Database + +//iSyncStorage is an interface towards SDL SyncStorage API +type ISyncStorage interface { + Get(ns string, keys []string) (map[string]interface{}, error) + ListKeys(ns string, pattern string) ([]string, error) + Set(ns string, pairs ...interface{}) error + Remove(ns string, keys []string) error +} + +//SyncStorageCreateCb callback function type to create a new SyncStorageInterface +type SyncStorageCreateCb func() ISyncStorage + +//keysArgs struct is used for keys command arguments. +type keysArgs struct { + ns string + pattern string +} + +//newKeysArgs constructs a new keysArgs struct. +func newKeysArgs(ns string, pattern string) keysArgs { + return keysArgs{ + ns: ns, + pattern: pattern, + } +} + +//SdlCliApp constant defines the name of the SDL CLI application const SdlCliApp = "sdlcli"