+func (r *Registry) RouteDelete(subs *Subscription, trans *TransactionXapp, c *Control) {
+ tmpList := xapp.RmrEndpointList{}
+ tmpList.AddEndpoint(trans.GetEndpoint())
+ subRouteAction := SubRouteInfo{tmpList, uint16(subs.ReqId.InstanceId)}
+ if err := r.rtmgrClient.SubscriptionRequestDelete(subRouteAction); err != nil {
+ c.UpdateCounter(cRouteDeleteFail)
+ }
+}
+
+func (r *Registry) RouteDeleteUpdate(subs *Subscription, c *Control) {
+ subRouteAction := SubRouteInfo{subs.EpList, uint16(subs.ReqId.InstanceId)}
+ if err := r.rtmgrClient.SubscriptionRequestUpdate(subRouteAction); err != nil {
+ c.UpdateCounter(cRouteDeleteUpdateFail)
+ }
+}
+
+func (r *Registry) UpdateSubscriptionToDb(subs *Subscription, c *Control) {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ subs.mutex.Lock()
+ defer subs.mutex.Unlock()
+
+ epamount := subs.EpList.Size()
+ if epamount == 0 {
+ if _, ok := r.register[subs.ReqId.InstanceId]; ok {
+ // Not merged subscription is being deleted
+ c.RemoveSubscriptionFromDb(subs)
+
+ }
+ } else if subs.EpList.Size() > 0 {
+ // Endpoint of merged subscription is being deleted
+ c.WriteSubscriptionToDb(subs)
+ c.UpdateCounter(cUnmergedSubscriptions)
+ }
+}
+
+func (r *Registry) GetSubscription(subId uint32) *Subscription {