github.com/decred/dcrlnd@v0.7.6/lnrpc/routerrpc/driver.go (about) 1 package routerrpc 2 3 import ( 4 "fmt" 5 6 "github.com/decred/dcrlnd/lnrpc" 7 ) 8 9 // createNewSubServer is a helper method that will create the new router sub 10 // server given the main config dispatcher method. If we're unable to find the 11 // config that is meant for us in the config dispatcher, then we'll exit with 12 // an error. 13 func createNewSubServer(configRegistry lnrpc.SubServerConfigDispatcher) ( 14 *Server, lnrpc.MacaroonPerms, error) { 15 16 // We'll attempt to look up the config that we expect, according to our 17 // subServerName name. If we can't find this, then we'll exit with an 18 // error, as we're unable to properly initialize ourselves without this 19 // config. 20 routeServerConf, ok := configRegistry.FetchConfig(subServerName) 21 if !ok { 22 return nil, nil, fmt.Errorf("unable to find config for "+ 23 "subserver type %s", subServerName) 24 } 25 26 // Now that we've found an object mapping to our service name, we'll 27 // ensure that it's the type we need. 28 config, ok := routeServerConf.(*Config) 29 if !ok { 30 return nil, nil, fmt.Errorf("wrong type of config for "+ 31 "subserver %s, expected %T got %T", subServerName, 32 &Config{}, routeServerConf) 33 } 34 35 // Before we try to make the new router service instance, we'll perform 36 // some sanity checks on the arguments to ensure that they're useable. 37 switch { 38 case config.Router == nil: 39 return nil, nil, fmt.Errorf("Router must be set to create " + 40 "Routerpc") 41 } 42 43 return New(config) 44 } 45 46 func init() { 47 subServer := &lnrpc.SubServerDriver{ 48 SubServerName: subServerName, 49 NewGrpcHandler: func() lnrpc.GrpcHandler { 50 return &ServerShell{} 51 }, 52 } 53 54 // If the build tag is active, then we'll register ourselves as a 55 // sub-RPC server within the global lnrpc package namespace. 56 if err := lnrpc.RegisterSubServer(subServer); err != nil { 57 panic(fmt.Sprintf("failed to register sub server driver '%s': %v", 58 subServerName, err)) 59 } 60 }