Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package shared contains shared data between the host and plugins.
Index ¶
Constants ¶
This section is empty.
Variables ¶
      View Source
      
  var Handshake = plugin.HandshakeConfig{
	ProtocolVersion:  1,
	MagicCookieKey:   "BASIC_PLUGIN",
	MagicCookieValue: "hello",
}
    Handshake is a common handshake that is shared by plugin and host.
      View Source
      
  var PluginMap = map[string]plugin.Plugin{ "counter": &CounterPlugin{}, }
PluginMap is the map of plugins we can dispense.
Functions ¶
This section is empty.
Types ¶
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.
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.
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)
 Click to show internal directories. 
   Click to hide internal directories.