OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / hashicorp / go-plugin / plugin.go
diff --git a/vendor/github.com/hashicorp/go-plugin/plugin.go b/vendor/github.com/hashicorp/go-plugin/plugin.go
deleted file mode 100644 (file)
index 79d9674..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// The plugin package exposes functions and helpers for communicating to
-// plugins which are implemented as standalone binary applications.
-//
-// plugin.Client fully manages the lifecycle of executing the application,
-// connecting to it, and returning the RPC client for dispensing plugins.
-//
-// plugin.Serve fully manages listeners to expose an RPC server from a binary
-// that plugin.Client can connect to.
-package plugin
-
-import (
-       "context"
-       "errors"
-       "net/rpc"
-
-       "google.golang.org/grpc"
-)
-
-// Plugin is the interface that is implemented to serve/connect to an
-// inteface implementation.
-type Plugin interface {
-       // Server should return the RPC server compatible struct to serve
-       // the methods that the Client calls over net/rpc.
-       Server(*MuxBroker) (interface{}, error)
-
-       // Client returns an interface implementation for the plugin you're
-       // serving that communicates to the server end of the plugin.
-       Client(*MuxBroker, *rpc.Client) (interface{}, error)
-}
-
-// GRPCPlugin is the interface that is implemented to serve/connect to
-// a plugin over gRPC.
-type GRPCPlugin interface {
-       // GRPCServer should register this plugin for serving with the
-       // given GRPCServer. Unlike Plugin.Server, this is only called once
-       // since gRPC plugins serve singletons.
-       GRPCServer(*GRPCBroker, *grpc.Server) error
-
-       // GRPCClient should return the interface implementation for the plugin
-       // you're serving via gRPC. The provided context will be canceled by
-       // go-plugin in the event of the plugin process exiting.
-       GRPCClient(context.Context, *GRPCBroker, *grpc.ClientConn) (interface{}, error)
-}
-
-// NetRPCUnsupportedPlugin implements Plugin but returns errors for the
-// Server and Client functions. This will effectively disable support for
-// net/rpc based plugins.
-//
-// This struct can be embedded in your struct.
-type NetRPCUnsupportedPlugin struct{}
-
-func (p NetRPCUnsupportedPlugin) Server(*MuxBroker) (interface{}, error) {
-       return nil, errors.New("net/rpc plugin protocol not supported")
-}
-
-func (p NetRPCUnsupportedPlugin) Client(*MuxBroker, *rpc.Client) (interface{}, error) {
-       return nil, errors.New("net/rpc plugin protocol not supported")
-}