github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/bactor/bactor.go (about) 1 package bactor 2 3 import ( 4 "sync" 5 6 "github.com/ontio/ontology-eventbus/actor" 7 "github.com/sixexorg/magnetic-ring/errors" 8 ) 9 10 var ( 11 actorMap = map[BactorType]*actor.PID{} 12 am sync.Mutex 13 ) 14 15 const ( 16 TXPOOLACTOR = BactorType("TXPOOLACTOR") 17 CONSENSUSACTOR = BactorType("CONSENACTOR") 18 P2PACTOR = BactorType("P2PACTOR") 19 MAINRADARACTOR = BactorType("NOTIFY2P2PACTOR") 20 CYCLEACTOR = BactorType("CYCLEACTOR") 21 STARTBROADCASTSATOR = BactorType("STARTBROADCAST2PACTOR") 22 ) 23 24 type BactorType string 25 26 func RegistActorPid(module BactorType, pid *actor.PID) { 27 am.Lock() 28 defer am.Unlock() 29 actorMap[module] = pid 30 } 31 func GetActorPid(module BactorType) (*actor.PID, error) { 32 am.Lock() 33 defer am.Unlock() 34 var pid *actor.PID 35 var ok bool 36 37 if pid, ok = actorMap[module]; !ok { 38 return nil, errors.ERR_ACTOR_NOTREG 39 } 40 return pid, nil 41 }