コード例 #1
0
ファイル: server.go プロジェクト: Nitron/packer
// registerComponent registers a single Packer RPC component onto
// the RPC server. If id is true, then a unique ID number will be appended
// onto the end of the endpoint.
//
// The endpoint name is returned.
func registerComponent(server *rpc.Server, name string, rcvr interface{}, id bool) string {
	endpoint := name
	if id {
		fmt.Sprintf("%s.%d", endpoint, atomic.AddUint64(&endpointId, 1))
	}

	server.RegisterName(endpoint, rcvr)
	return endpoint
}
コード例 #2
0
ファイル: ncrpc.go プロジェクト: zenoss/rog-go
// Serve announces an RPC service on the client using the given name
// (which must currently be unique amongst all clients).
func (c *Client) Serve(clientName string, rpcServer *rpc.Server) error {
	var clientId string
	rpcServer.RegisterName("ClientRPC", clientRPC{}) // TODO better name
	if err := c.Server.Call("Ncnet-publisher.Publish", &clientName, &clientId); err != nil {
		return err
	}
	clientconn, err := ncnet.Dial(c.Importer, clientId)
	if err != nil {
		return err
	}

	go rpcServer.ServeConn(clientconn)
	return nil
}
コード例 #3
0
ファイル: rpc.go プロジェクト: mbrodala/otto
// Register registers an Otto thing with the RPC server and returns
// the name it is registered under.
func Register(server *rpc.Server, thing interface{}) (name string, err error) {
	nextLock.Lock()
	defer nextLock.Unlock()

	switch t := thing.(type) {
	case app.App:
		name = fmt.Sprintf("Otto%d", nextId)
		err = server.RegisterName(name, &AppServer{App: t})
	default:
		return "", errors.New("Unknown type to register for RPC server.")
	}

	nextId += 1
	return
}
コード例 #4
0
ファイル: rpc.go プロジェクト: AssertSelenium/terraform
// Register registers a Terraform thing with the RPC server and returns
// the name it is registered under.
func Register(server *rpc.Server, thing interface{}) (name string, err error) {
	nextLock.Lock()
	defer nextLock.Unlock()

	switch t := thing.(type) {
	case terraform.ResourceProvider:
		name = fmt.Sprintf("Terraform%d", nextId)
		err = server.RegisterName(name, &ResourceProviderServer{Provider: t})
	case terraform.ResourceProvisioner:
		name = fmt.Sprintf("Terraform%d", nextId)
		err = server.RegisterName(name, &ResourceProvisionerServer{Provisioner: t})
	default:
		return "", errors.New("Unknown type to register for RPC server.")
	}

	nextId += 1
	return
}
コード例 #5
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a packer.Provisioner
func RegisterProvisioner(s *rpc.Server, p packer.Provisioner) {
	s.RegisterName("Provisioner", &ProvisionerServer{p})
}
コード例 #6
0
ファイル: echo.pb.go プロジェクト: jwk000/protorpc
// RegisterEchoServiceB publish the given EchoServiceB implementation on the server.
func RegisterEchoServiceB(srv *rpc.Server, x EchoServiceB) error {
	if err := srv.RegisterName("EchoServiceB", x); err != nil {
		return err
	}
	return nil
}
コード例 #7
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Build.
func RegisterBuild(s *rpc.Server, b packer.Build) {
	s.RegisterName("Build", &BuildServer{b})
}
コード例 #8
0
ファイル: service.pb.go プロジェクト: ZhangzheBJUT/GoProject
// RegisterArithService publish the given ArithService implementation on the server.
func RegisterArithService(srv *rpc.Server, x ArithService) error {
	if err := srv.RegisterName("ArithService", x); err != nil {
		return err
	}
	return nil
}
コード例 #9
0
ファイル: arithrpc.go プロジェクト: alecthomas/go-rpcgen
func RegisterArithService(server *rpc.Server, impl Arith) error {
	return server.RegisterName("Arith", NewArithService(impl))
}
コード例 #10
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Builder.
func RegisterBuilder(s *rpc.Server, b packer.Builder) {
	s.RegisterName("Builder", &BuilderServer{b})
}
コード例 #11
0
ファイル: rpc_endpoint.go プロジェクト: nikai3d/serf
// registerEndpoint registers the API endpoint on the given RPC server
// for the given agent.
func registerEndpoint(s *rpc.Server, agent *Agent) error {
	return s.RegisterName("Agent", &rpcEndpoint{agent: agent})
}
コード例 #12
0
ファイル: rpc.go プロジェクト: kortschak/dilithium
func (s *Server) RegisterWithRPC(r *rpc.Server) {
	server := rpcServer(*s)
	r.RegisterName("dilithium", &server)
}
コード例 #13
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve an
// Artifact.
func RegisterArtifact(s *rpc.Server, a packer.Artifact) {
	s.RegisterName("Artifact", &ArtifactServer{a})
}
コード例 #14
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoing on an RPC server to serve a
// PostProcessor.
func RegisterPostProcessor(s *rpc.Server, p packer.PostProcessor) {
	s.RegisterName("PostProcessor", &PostProcessorServer{p})
}
コード例 #15
0
ファイル: message.pb.go プロジェクト: playnb/mustang
// RegisterSuperService publish the given SuperService implementation on the server.
func RegisterSuperService(srv *rpc.Server, x SuperService) error {
	if err := srv.RegisterName("SuperService", x); err != nil {
		return err
	}
	return nil
}
コード例 #16
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Hook.
func RegisterHook(s *rpc.Server, hook packer.Hook) {
	s.RegisterName("Hook", &HookServer{hook})
}
コード例 #17
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Environment
func RegisterEnvironment(s *rpc.Server, e packer.Environment) {
	s.RegisterName("Environment", &EnvironmentServer{e})
}
コード例 #18
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Communicator.
func RegisterCommunicator(s *rpc.Server, c packer.Communicator) {
	s.RegisterName("Communicator", &CommunicatorServer{c})
}
コード例 #19
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Command.
func RegisterCommand(s *rpc.Server, c packer.Command) {
	s.RegisterName("Command", &CommandServer{c})
}
コード例 #20
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer Cache.
func RegisterCache(s *rpc.Server, c packer.Cache) {
	s.RegisterName("Cache", &CacheServer{c})
}
コード例 #21
0
ファイル: server.go プロジェクト: B-Rich/packer
// Registers the appropriate endpoint on an RPC server to serve a
// Packer UI
func RegisterUi(s *rpc.Server, ui packer.Ui) {
	s.RegisterName("Ui", &UiServer{ui})
}
コード例 #22
0
ファイル: main.go プロジェクト: aalness/go-framed-msgpack-rpc
func RegisterArith(server *rpc.Server, i ArithInterface) error {
	return server.RegisterName("test.1.arith", i)
}