76 lines
2.5 KiB
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{})
|
|
}
|