-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-type Subscription struct {
- mutex sync.Mutex
- Seq uint16
- Active bool
- //
- Meid *xapp.RMRMeid
- RmrEndpoint // xapp endpoint
- Trans *Transaction
-}
-
-func (s *Subscription) String() string {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- return strconv.FormatUint(uint64(s.Seq), 10) + "/" + s.RmrEndpoint.String() + "/" + s.Meid.RanName
-}
-
-func (s *Subscription) Confirmed() {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- s.Active = true
-}
-
-func (s *Subscription) UnConfirmed() {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- s.Active = false
-}
-
-func (s *Subscription) IsConfirmed() bool {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- return s.Active
-}
-
-func (s *Subscription) SetTransaction(trans *Transaction) bool {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- if s.Trans == nil {
- s.Trans = trans
- return true
- }
- return false
-}
-
-func (s *Subscription) UnSetTransaction(trans *Transaction) bool {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- if trans == nil || trans == s.Trans {
- s.Trans = nil
- return true
- }
- return false
-}
-
-func (s *Subscription) GetTransaction() *Transaction {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- return s.Trans
-}
-
-func (s *Subscription) SubRouteInfo(act Action) SubRouteInfo {
- s.mutex.Lock()
- defer s.mutex.Unlock()
- return SubRouteInfo{act, s.RmrEndpoint.Addr, s.RmrEndpoint.Port, s.Seq}
-}
-