| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package bacframe
- import (
- "strconv"
- "sync"
- "bet24.com/log"
- )
- type frame_manager struct {
- lock *sync.RWMutex
- frameList map[int]*GameFrame
- }
- var frameMgr *frame_manager
- func getFrameManager() *frame_manager {
- if frameMgr == nil {
- frameMgr = new(frame_manager)
- frameMgr.ctor()
- }
- return frameMgr
- }
- func (fm *frame_manager) ctor() {
- fm.lock = &sync.RWMutex{}
- fm.frameList = make(map[int]*GameFrame)
- }
- func (fm *frame_manager) getGameFrame(index int) *GameFrame {
- fm.lock.RLock()
- gf := fm.frameList[index]
- fm.lock.RUnlock()
- if gf == nil {
- log.Debug("frame_manager.getFrame[%d] not found", index)
- return nil
- }
- return gf
- }
- func (fm *frame_manager) dump(param1, param2 string) {
- log.Release("----------frame_manager.dump %s.%s ----------", param1, param2)
- defer func() {
- log.Release("++++++++++frame_manager.dump++++++++++")
- }()
- if param1 == "" {
- fm.lock.RLock()
- log.Release(" frame count:%d", len(fm.frameList))
- for k := range fm.frameList {
- log.Release(" %d", k)
- }
- fm.lock.RUnlock()
- return
- }
- tableId, err := strconv.Atoi(param1)
- if err != nil {
- log.Release(" invalid argument %v", err)
- return
- }
- gf := fm.getGameFrame(tableId)
- if gf == nil {
- return
- }
- gf.dump(param2)
- }
|