+/* // This function is not used. Commented out to get better test coverage result
+func (t *Transaction) GetPayload() *e2ap.PackedData {
+ t.mutex.Lock()
+ defer t.mutex.Unlock()
+ return t.Payload
+}
+*/
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type TransactionSubs struct {
+ Transaction //
+}
+
+func (t *TransactionSubs) String() string {
+ return "transsubs(" + t.Transaction.String() + ")"
+}
+
+func (t *TransactionSubs) Release() {
+ t.mutex.Lock()
+ xapp.Logger.Debug("RELEASE %s", t.String())
+ t.tracker = nil
+ t.mutex.Unlock()
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type TransactionXappKey struct {
+ xapp.RmrEndpoint
+ Xid string // xapp xid in req
+}
+
+func (key *TransactionXappKey) String() string {
+ return "transkey(" + key.RmrEndpoint.String() + "/" + key.Xid + ")"
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type TransactionXapp struct {
+ Transaction
+ XappKey *TransactionXappKey
+ RequestId e2ap.RequestId
+}
+
+func (t *TransactionXapp) String() string {
+ var transkey string = "transkey(N/A)"
+ if t.XappKey != nil {
+ transkey = t.XappKey.String()
+ }
+ return "transxapp(" + t.Transaction.String() + "/" + transkey + "/" + strconv.FormatUint(uint64(t.RequestId.InstanceId), 10) + ")"
+}
+
+func (t *TransactionXapp) GetEndpoint() *xapp.RmrEndpoint {