X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcontrol%2Ftransaction.go;h=867b85447bb17b27d19dc64c50c5084c428fbf4a;hb=8527f3b2ba74bd7bccb8d67acc952e23f5664e6c;hp=f686b44630a4cdae29622cbf2c3915c5d63c399a;hpb=0388dd945789dae802aaa93c5062e3ae4c45ddf1;p=ric-plt%2Fsubmgr.git diff --git a/pkg/control/transaction.go b/pkg/control/transaction.go index f686b44..867b854 100644 --- a/pkg/control/transaction.go +++ b/pkg/control/transaction.go @@ -20,6 +20,8 @@ package control import ( + "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap" + "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/packer" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp" "strconv" "sync" @@ -42,11 +44,19 @@ func (key *TransactionXappKey) String() string { //----------------------------------------------------------------------------- type Transaction struct { mutex sync.Mutex - tracker *Tracker // tracker instance - Subs *Subscription - RmrEndpoint RmrEndpoint - Xid string // xapp xid in req - OrigParams *xapp.RMRParams // request orginal params + tracker *Tracker //tracker instance + Subs *Subscription //related subscription + RmrEndpoint RmrEndpoint //xapp endpoint + Xid string //xapp xid in req + Meid *xapp.RMRMeid //meid transaction related + SubReqMsg *e2ap.E2APSubscriptionRequest //SubReq TODO: maybe own transactions per type + SubRespMsg *e2ap.E2APSubscriptionResponse //SubResp TODO: maybe own transactions per type + SubFailMsg *e2ap.E2APSubscriptionFailure //SubFail TODO: maybe own transactions per type + SubDelReqMsg *e2ap.E2APSubscriptionDeleteRequest //SubDelReq TODO: maybe own transactions per type + SubDelRespMsg *e2ap.E2APSubscriptionDeleteResponse //SubDelResp TODO: maybe own transactions per type + SubDelFailMsg *e2ap.E2APSubscriptionDeleteFailure //SubDelFail TODO: maybe own transactions per type + Mtype int //Encoded message type to be send + Payload *packer.PackedData //Encoded message to be send RespReceived bool ForwardRespToXapp bool } @@ -61,6 +71,33 @@ func (t *Transaction) String() string { return subId + "/" + t.RmrEndpoint.String() + "/" + t.Xid } +func (t *Transaction) GetXid() string { + t.mutex.Lock() + defer t.mutex.Unlock() + return t.Xid +} + +func (t *Transaction) GetMtype() int { + t.mutex.Lock() + defer t.mutex.Unlock() + return t.Mtype +} + +func (t *Transaction) GetMeid() *xapp.RMRMeid { + t.mutex.Lock() + defer t.mutex.Unlock() + if t.Meid != nil { + return t.Meid + } + return nil +} + +func (t *Transaction) GetSrc() string { + t.mutex.Lock() + defer t.mutex.Unlock() + return t.RmrEndpoint.String() +} + func (t *Transaction) CheckResponseReceived() bool { t.mutex.Lock() defer t.mutex.Unlock() @@ -78,6 +115,7 @@ func (t *Transaction) RetryTransaction() { } func (t *Transaction) Release() { + xapp.Logger.Info("Transaction: Releasing %s", t) t.mutex.Lock() defer t.mutex.Unlock() if t.Subs != nil {