github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/radar/mainchain/main_radar_actor.go (about)

     1  package mainchain
     2  
     3  import (
     4  	"fmt"
     5  	"reflect"
     6  
     7  	"github.com/ontio/ontology-eventbus/actor"
     8  	"github.com/sixexorg/magnetic-ring/bactor"
     9  	"github.com/sixexorg/magnetic-ring/common"
    10  	orgtypes "github.com/sixexorg/magnetic-ring/core/orgchain/types"
    11  	"github.com/sixexorg/magnetic-ring/node"
    12  )
    13  
    14  type MainRadarActor struct {
    15  	mainRadar *LeagueConsumers
    16  }
    17  
    18  func (mra *MainRadarActor) SetMainRadar(mainRadar *LeagueConsumers) {
    19  	mra.mainRadar = mainRadar
    20  }
    21  func (mra *MainRadarActor) Receive(context actor.Context) {
    22  	switch msg := context.Message().(type) {
    23  	case *orgtypes.Block:
    24  		fmt.Println("🔆 📡 📩 receive leagueBlock")
    25  		leagueConsumers.ReceiveBlock(msg)
    26  	case *common.NodeLH:
    27  		//get all stars's league processing progress
    28  		nodeLHC.receiveNodeLH(msg)
    29  	case []string:
    30  		nodeLHC.refreshStarNode(msg)
    31  	case uint64:
    32  		//to refresh stars node
    33  		stars := node.GurStars()
    34  		nodeLHC.checkNodeRoot(stars)
    35  	case *bactor.LeagueRadarCache:
    36  		//SupplementLeagueConsumer is used to synchronize lost cross-chain storage
    37  		leagueConsumers.SupplementLeagueConsumer(msg.LeagueId, msg.BlockHash, msg.Height)
    38  	default:
    39  		fmt.Printf("container txpool-tx actor: unknown msg %v type %v\n", msg, reflect.TypeOf(msg))
    40  	}
    41  }