game_sync/worldsrv/transact_daytimechange.go

76 lines
2.5 KiB
Go

package main
import (
"time"
"mongo.games.com/game/common"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/transact"
"mongo.games.com/goserver/srvlib"
)
var wgDayTimeChangePack = &common.WGDayTimeChange{}
var DayTimeChangeTimeOut = time.Second * 10
type DayTimeChangeTransactHandler struct {
}
func (this *DayTimeChangeTransactHandler) OnExcute(tNode *transact.TransNode, ud interface{}) transact.TransExeResult {
//logger.Logger.Trace("DayTimeChangeTransactHandler.OnExcute ")
ClockMgrSington.Notifying = true
for sid, _ := range GameSessMgrSington.servers {
tnp := &transact.TransNodeParam{
Tt: common.TransType_DayTimeChange,
Ot: transact.TransOwnerType(srvlib.GameServerType),
Oid: sid,
AreaID: common.GetSelfAreaId(),
Tct: transact.TransactCommitPolicy_SelfDecide,
}
//logger.Logger.Tracef("TransNode=%v", *tnp)
_, wgDayTimeChangePack.LastMin, wgDayTimeChangePack.LastHour, wgDayTimeChangePack.LastDay, wgDayTimeChangePack.LastWeek, wgDayTimeChangePack.LastMonth = ClockMgrSington.GetLast()
tNode.StartChildTrans(tnp, wgDayTimeChangePack, DayTimeChangeTimeOut)
}
return transact.TransExeResult_Success
}
func (this *DayTimeChangeTransactHandler) OnCommit(tNode *transact.TransNode) transact.TransExeResult {
//logger.Logger.Trace("DayTimeChangeTransactHandler.OnCommit ")
ClockMgrSington.Notifying = false
return transact.TransExeResult_Success
}
func (this *DayTimeChangeTransactHandler) OnRollBack(tNode *transact.TransNode) transact.TransExeResult {
//logger.Logger.Trace("DayTimeChangeTransactHandler.OnRollBack ")
ClockMgrSington.Notifying = false
return transact.TransExeResult_Success
}
func (this *DayTimeChangeTransactHandler) OnChildTransRep(tNode *transact.TransNode, hChild transact.TransNodeID,
retCode int, ud interface{}) transact.TransExeResult {
//logger.Logger.Trace("DayTimeChangeTransactHandler.OnChildTransRep ")
return transact.TransExeResult_Success
}
type DayTimeChangeTransactSinker struct {
BaseClockSinker
}
func (this *DayTimeChangeTransactSinker) OnMiniTimer() {
tnp := &transact.TransNodeParam{
Tt: common.TransType_DayTimeChange,
Ot: transact.TransOwnerType(common.GetSelfSrvType()),
Oid: common.GetSelfSrvId(),
AreaID: common.GetSelfAreaId(),
}
tNode := transact.DTCModule.StartTrans(tnp, nil, DayTimeChangeTimeOut)
if tNode != nil {
tNode.Go(core.CoreObject())
}
}
func init() {
ClockMgrSington.RegisteSinker(&DayTimeChangeTransactSinker{})
transact.RegisteHandler(common.TransType_DayTimeChange, &DayTimeChangeTransactHandler{})
}