72 lines
2.2 KiB
Go
72 lines
2.2 KiB
Go
package main
|
|
|
|
import (
|
|
"mongo.games.com/goserver/core"
|
|
"mongo.games.com/goserver/core/logger"
|
|
"mongo.games.com/goserver/core/netlib"
|
|
"mongo.games.com/goserver/core/transact"
|
|
"mongo.games.com/goserver/examples/protocol"
|
|
"mongo.games.com/goserver/srvlib"
|
|
)
|
|
|
|
type traceTransHandler struct {
|
|
}
|
|
|
|
func init() {
|
|
transact.RegisteHandler(protocol.TxTrace, &traceTransHandler{})
|
|
srvlib.ServerSessionMgrSington.AddListener(&MyServerSessionRegisteListener{})
|
|
}
|
|
|
|
func (this *traceTransHandler) OnExcute(tNode *transact.TransNode, ud interface{}) transact.TransExeResult {
|
|
logger.Logger.Trace("traceTransHandler.OnExcute ")
|
|
tnp := &transact.TransNodeParam{
|
|
Tt: protocol.TxTrace,
|
|
Ot: transact.TransOwnerType(2),
|
|
Oid: 201,
|
|
AreaID: 1,
|
|
Tct: transact.TransactCommitPolicy_TwoPhase,
|
|
}
|
|
p := new(int)
|
|
*p = -2
|
|
userData := protocol.StructA{X: 10, Y: -1, Z: 65535, P: p, Desc: "welcome!"}
|
|
tNode.StartChildTrans(tnp, userData, transact.DefaultTransactTimeout)
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func (this *traceTransHandler) OnCommit(tNode *transact.TransNode) transact.TransExeResult {
|
|
logger.Logger.Trace("traceTransHandler.OnCommit ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func (this *traceTransHandler) OnRollBack(tNode *transact.TransNode) transact.TransExeResult {
|
|
logger.Logger.Trace("traceTransHandler.OnRollBack ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
func (this *traceTransHandler) OnChildTransRep(tNode *transact.TransNode, hChild transact.TransNodeID, retCode int, ud interface{}) transact.TransExeResult {
|
|
logger.Logger.Trace("traceTransHandler.OnChildTransRep ")
|
|
return transact.TransExeResult_Success
|
|
}
|
|
|
|
type MyServerSessionRegisteListener struct {
|
|
}
|
|
|
|
func (mssrl *MyServerSessionRegisteListener) OnRegiste(*netlib.Session) {
|
|
logger.Logger.Trace("MyServerSessionRegisteListener.OnRegiste")
|
|
tnp := &transact.TransNodeParam{
|
|
Tt: protocol.TxTrace,
|
|
Ot: transact.TransOwnerType(2),
|
|
Oid: 202,
|
|
AreaID: 1,
|
|
}
|
|
|
|
tNode := transact.DTCModule.StartTrans(tnp, nil, transact.DefaultTransactTimeout)
|
|
if tNode != nil {
|
|
tNode.Go(core.CoreObject())
|
|
}
|
|
}
|
|
|
|
func (mssrl *MyServerSessionRegisteListener) OnUnregiste(*netlib.Session) {
|
|
logger.Logger.Trace("MyServerSessionRegisteListener.OnUnregiste")
|
|
}
|