+func (w *rNibWriterInstance) SaveWithKeyAndMarshal(key string, entity interface{}) error {
+
+ data, err := json.Marshal(entity)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ var pairs []interface{}
+ pairs = append(pairs, key, data)
+
+ err = w.sdl.Set(pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+/*
+UpdateNodebInfoOnConnectionStatusInversion...
+*/
+func (w *rNibWriterInstance) UpdateNodebInfoOnConnectionStatusInversion(nodebInfo *entities.NodebInfo, event string) error {
+
+ pairs, err := buildUpdateNodebInfoPairs(nodebInfo)
+
+ if err != nil {
+ return err
+ }
+
+ err = w.sdl.SetAndPublish([]string{w.rnibWriterConfig.StateChangeMessageChannel, event}, pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) RemoveEnb(nodebInfo *entities.NodebInfo) error {
+ keysToRemove, err := w.buildRemoveEnbKeys(nodebInfo)
+ if err != nil {
+ return err
+ }
+
+ channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanDeletedEvent)
+ err = w.sdl.RemoveAndPublish(channelsAndEvents, keysToRemove)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) UpdateEnb(nodebInfo *entities.NodebInfo, servedCells []*entities.ServedCellInfo) error {
+
+ pairs, err := buildUpdateNodebInfoPairs(nodebInfo)
+
+ if err != nil {
+ return err
+ }
+
+ pairs, err = appendEnbCells(nodebInfo.RanName, servedCells, pairs)
+
+ if err != nil {
+ return err
+ }
+
+ channelsAndEvents := getChannelsAndEventsPair(w.rnibWriterConfig.RanManipulationMessageChannel, nodebInfo.RanName, RanUpdatedEvent)
+ err = w.sdl.SetAndPublish(channelsAndEvents, pairs)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) buildNbIdentitiesMembers(nbIdentities []*entities.NbIdentity) ([]interface{}, error) {
+
+ var nbIdIdentitiesMembers []interface{}
+ for _, nbIdentity := range nbIdentities {
+
+ nbIdData, err := proto.Marshal(nbIdentity)
+ if err != nil {
+ return nil, common.NewInternalError(err)
+ }
+ nbIdIdentitiesMembers = append(nbIdIdentitiesMembers, nbIdData)
+ }
+
+ return nbIdIdentitiesMembers, nil
+}