| @@ -1,68 +1,28 @@ | |||||
| /* | |||||
| * 版权属于:yitter(yitter@126.com) | |||||
| * 代码编辑:guoyahao | |||||
| * 代码修订:yitter | |||||
| * 开源地址:https://gitee.com/yitter/idgenerator | |||||
| */ | |||||
| package idgen | package idgen | ||||
| import ( | import ( | ||||
| "sync" | "sync" | ||||
| ) | ) | ||||
| //var yitIdHelper *YitIdHelper | |||||
| //var once sync.Once | |||||
| var idGenerator *DefaultIdGenerator | |||||
| var singletonMutex sync.Mutex | var singletonMutex sync.Mutex | ||||
| var idGenerator *DefaultIdGenerator | |||||
| type YitIdHelper struct { | |||||
| idGenInstance interface { | |||||
| NewLong() uint64 | |||||
| } | |||||
| } | |||||
| // | |||||
| //func GetIns() *YitIdHelper { | |||||
| // once.Do(func() { | |||||
| // yitIdHelper = &YitIdHelper{} | |||||
| // }) | |||||
| // return yitIdHelper | |||||
| //} | |||||
| // | |||||
| //func (yih *YitIdHelper) GetIdGenInstance() interface{} { | |||||
| // return yih.idGenInstance | |||||
| //} | |||||
| // | |||||
| //func (yih *YitIdHelper) SetIdGenerator(options *contract.IdGeneratorOptions) { | |||||
| // yih.idGenInstance = NewDefaultIdGenerator(options) | |||||
| //} | |||||
| // | |||||
| //func (yih *YitIdHelper) NextId() uint64 { | |||||
| // once.Do(func() { | |||||
| // if yih.idGenInstance == nil { | |||||
| // options := contract.NewIdGeneratorOptions(1) | |||||
| // yih.idGenInstance = NewDefaultIdGenerator(options) | |||||
| // } | |||||
| // }) | |||||
| // | |||||
| // return yih.idGenInstance.NewLong() | |||||
| //} | |||||
| // SetIdGenerator . | |||||
| func SetIdGenerator(options *IdGeneratorOptions) { | func SetIdGenerator(options *IdGeneratorOptions) { | ||||
| singletonMutex.Lock() | singletonMutex.Lock() | ||||
| idGenerator = NewDefaultIdGenerator(options) | idGenerator = NewDefaultIdGenerator(options) | ||||
| singletonMutex.Unlock() | singletonMutex.Unlock() | ||||
| } | } | ||||
| // NextId . | |||||
| func NextId() uint64 { | func NextId() uint64 { | ||||
| if idGenerator == nil { | if idGenerator == nil { | ||||
| singletonMutex.Lock() | singletonMutex.Lock() | ||||
| defer singletonMutex.Unlock() | |||||
| if idGenerator == nil { | if idGenerator == nil { | ||||
| options := NewIdGeneratorOptions(1) | options := NewIdGeneratorOptions(1) | ||||
| idGenerator = NewDefaultIdGenerator(options) | idGenerator = NewDefaultIdGenerator(options) | ||||
| } | } | ||||
| singletonMutex.Unlock() | |||||
| } | } | ||||
| return idGenerator.NewLong() | return idGenerator.NewLong() | ||||