+func GetRNibWriter(sdl common.ISdlSyncStorage, rnibWriterConfig configuration.RnibWriterConfig) RNibWriter {
+ return &rNibWriterInstance{
+ sdl: sdl,
+ rnibWriterConfig: rnibWriterConfig,
+ ns: common.GetRNibNamespace(),
+ }
+}
+
+func getChannelsAndEventsPair(channel string, ranName string, event string) []string {
+ return []string{channel, fmt.Sprintf("%s_%s", ranName, event)}
+}
+
+func (w *rNibWriterInstance) AddNbIdentity(nodeType entities.Node_Type, nbIdentity *entities.NbIdentity) error {
+ nbIdData, err := proto.Marshal(nbIdentity)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ err = w.sdl.AddMember(w.ns, nodeType.String(), nbIdData)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+ return nil
+}
+
+func (w *rNibWriterInstance) RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error {
+ cellKeysToRemove := buildServedNRCellKeysToRemove(inventoryName, servedNrCells)
+
+ err := w.sdl.Remove(w.ns, cellKeysToRemove)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) RemoveServedCells(inventoryName string, servedCells []*entities.ServedCellInfo) error {
+ cellKeysToRemove := buildServedCellInfoKeysToRemove(inventoryName, servedCells)
+
+ err := w.sdl.Remove(w.ns, cellKeysToRemove)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil
+}
+
+func (w *rNibWriterInstance) SaveGeneralConfiguration(config *entities.GeneralConfiguration) error {
+
+ err := w.SaveWithKeyAndMarshal(common.BuildGeneralConfigurationKey(), config)
+
+ if err != nil {
+ return common.NewInternalError(err)
+ }
+
+ return nil