X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=syncstorage.go;h=349bcc3a58af9124d838fa66ba6371e3b32d5954;hb=HEAD;hp=850213aef36ca296fc66dcaa68b37f4826494d69;hpb=5bd649776a32ed03600f5b0f147dbd5596905737;p=ric-plt%2Fsdlgo.git diff --git a/syncstorage.go b/syncstorage.go index 850213a..349bcc3 100644 --- a/syncstorage.go +++ b/syncstorage.go @@ -27,6 +27,7 @@ import ( "encoding/base64" "errors" "fmt" + "gerrit.o-ran-sc.org/r/ric-plt/sdlgo/internal/sdlgoredis" "hash/crc32" "io" "reflect" @@ -42,10 +43,9 @@ import ( //SdlInstance where namespace can be defined only at SdlInstance instance creation //time. type SyncStorage struct { - eventSeparator string - mutex sync.Mutex - tmp []byte - db *Database + mutex sync.Mutex + tmp []byte + db *Database } //NewSyncStorage creates a new sdl instance. @@ -56,8 +56,7 @@ func NewSyncStorage() *SyncStorage { func newSyncStorage(db *Database) *SyncStorage { return &SyncStorage{ - eventSeparator: "___", - db: db, + db: db, } } @@ -94,16 +93,14 @@ func getHash(s string) uint32 { //events received from different channels, callbacks are called in series one by one. func (s *SyncStorage) SubscribeChannel(ns string, cb func(string, ...string), channels ...string) error { nsPrefix := getNsPrefix(ns) - s.getDbBackend(ns).SubscribeChannelDB(cb, nsPrefix, s.eventSeparator, s.setNamespaceToChannels(nsPrefix, channels...)...) - return nil + return s.getDbBackend(ns).SubscribeChannelDB(cb, s.setNamespaceToChannels(nsPrefix, channels...)...) } //UnsubscribeChannel removes subscription from one or several channels under given //namespace. func (s *SyncStorage) UnsubscribeChannel(ns string, channels ...string) error { nsPrefix := getNsPrefix(ns) - s.getDbBackend(ns).UnsubscribeChannelDB(s.setNamespaceToChannels(nsPrefix, channels...)...) - return nil + return s.getDbBackend(ns).UnsubscribeChannelDB(s.setNamespaceToChannels(nsPrefix, channels...)...) } //Close connection to backend database. @@ -123,8 +120,8 @@ func (s *SyncStorage) checkChannelsAndEvents(cmd string, channelsAndEvents []str } for i, v := range channelsAndEvents { if i%2 != 0 { - if strings.Contains(v, s.eventSeparator) { - return fmt.Errorf("%s: event %s contains illegal substring (\"%s\")", cmd, v, s.eventSeparator) + if strings.Contains(v, sdlgoredis.EventSeparator) { + return fmt.Errorf("%s: event %s contains illegal substring (\"%s\")", cmd, v, sdlgoredis.EventSeparator) } } } @@ -217,7 +214,7 @@ func (s *SyncStorage) prepareChannelsAndEvents(nsPrefix string, channelsAndEvent } _, exists := channelEventMap[v] if exists { - channelEventMap[v] = channelEventMap[v] + s.eventSeparator + channelsAndEvents[i+1] + channelEventMap[v] = channelEventMap[v] + sdlgoredis.EventSeparator + channelsAndEvents[i+1] } else { channelEventMap[v] = channelsAndEvents[i+1] } @@ -636,12 +633,12 @@ type SyncStorageLock struct { } func getNsPrefix(ns string) string { - return "{" + ns + "}," + return "{" + ns + "}" + sdlgoredis.NsSeparator } type iDatabase interface { - SubscribeChannelDB(cb func(string, ...string), channelPrefix, eventSeparator string, channels ...string) - UnsubscribeChannelDB(channels ...string) + SubscribeChannelDB(cb func(string, ...string), channels ...string) error + UnsubscribeChannelDB(channels ...string) error MSet(pairs ...interface{}) error MSetMPub(channelsAndEvents []string, pairs ...interface{}) error MGet(keys []string) ([]interface{}, error)