package shared
import "github.com/hashicorp/go-plugin/examples/bidirectional/shared"
Package shared contains shared data between the host and plugins.
Index ¶
- Variables
- type AddHelper
- type Counter
- type CounterPlugin
- func (p *CounterPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
- func (p *CounterPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
- type GRPCAddHelperClient
- type GRPCAddHelperServer
- type GRPCClient
- func (m *GRPCClient) Get(key string) (int64, error)
- func (m *GRPCClient) Put(key string, value int64, a AddHelper) error
- type GRPCServer
Variables ¶
var Handshake = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "BASIC_PLUGIN",
MagicCookieValue: "hello",
}
Handshake is a common handshake that is shared by plugin and host.
var PluginMap = map[string]plugin.Plugin{ "counter": &CounterPlugin{}, }
PluginMap is the map of plugins we can dispense.
Types ¶
type AddHelper ¶
type Counter ¶
type Counter interface { Put(key string, value int64, a AddHelper) error Get(key string) (int64, error) }
KV is the interface that we're exposing as a plugin.
type CounterPlugin ¶
type CounterPlugin struct { plugin.NetRPCUnsupportedPlugin // Concrete implementation, written in Go. This is only used for plugins // that are written in Go. Impl Counter }
This is the implementation of plugin.Plugin so we can serve/consume this. We also implement GRPCPlugin so that this plugin can be served over gRPC.
func (*CounterPlugin) GRPCClient ¶
func (p *CounterPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
func (*CounterPlugin) GRPCServer ¶
func (p *CounterPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
type GRPCAddHelperClient ¶
type GRPCAddHelperClient struct {
// contains filtered or unexported fields
}
GRPCClient is an implementation of KV that talks over RPC.
func (*GRPCAddHelperClient) Sum ¶
func (m *GRPCAddHelperClient) Sum(a, b int64) (int64, error)
type GRPCAddHelperServer ¶
type GRPCAddHelperServer struct { // This is the real implementation Impl AddHelper }
Here is the gRPC server that GRPCClient talks to.
func (*GRPCAddHelperServer) Sum ¶
func (m *GRPCAddHelperServer) Sum(ctx context.Context, req *proto.SumRequest) (resp *proto.SumResponse, err error)
type GRPCClient ¶
type GRPCClient struct {
// contains filtered or unexported fields
}
GRPCClient is an implementation of KV that talks over RPC.
func (*GRPCClient) Get ¶
func (m *GRPCClient) Get(key string) (int64, error)
func (*GRPCClient) Put ¶
func (m *GRPCClient) Put(key string, value int64, a AddHelper) error
type GRPCServer ¶
type GRPCServer struct { // This is the real implementation Impl Counter // contains filtered or unexported fields }
Here is the gRPC server that GRPCClient talks to.
func (*GRPCServer) Get ¶
func (m *GRPCServer) Get(ctx context.Context, req *proto.GetRequest) (*proto.GetResponse, error)
func (*GRPCServer) Put ¶
func (m *GRPCServer) Put(ctx context.Context, req *proto.PutRequest) (*proto.Empty, error)
Source Files ¶
- Version
- v1.6.3 (latest)
- Published
- Jan 23, 2025
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 4 days ago –
Tools for package owners.