Documentation ¶
Index ¶
- Variables
- type CheckMessageSidelineImpl
- type CheckMessageSidelineImplPlugin
- type CheckMessageSidelineRPC
- type CheckMessageSidelineRPCServer
- func (s *CheckMessageSidelineRPCServer) CheckMessageSideline(key []byte, resp *[]byte) error
- func (s *CheckMessageSidelineRPCServer) InitialisePlugin(conf []byte, err *error) error
- func (s *CheckMessageSidelineRPCServer) SidelineMessage(msg []byte, sidelineMessageResponse *SidelineMessageResponse) error
- type CheckMessageSidelineResponse
- type KafkaHttpSidelineMeta
- type Manager
- type PluginInfo
- type ScanImpl
- type ScanImplPlugin
- type ScanImplRPC
- type ScanImplRPCServer
- type ScanWithStartRowEndRowRequest
- type ScanWithStartTimeEndTimeRequest
- type SidelineMessage
- type SidelineMessageResponse
- type UnsidelineByKeyRequest
- type UnsidelineImpl
- type UnsidelineImplPlugin
- type UnsidelineImplRPC
- type UnsidelineImplRPCServer
Constants ¶
This section is empty.
Variables ¶
var HandshakeConfig = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "BASIC_PLUGIN",
MagicCookieValue: "hello",
}
handshakeConfigs are used to just do a basic handshake between a plugin and host. If the handshake fails, a user friendly error is shown. This prevents users from executing bad plugins or executing a plugin directory. It is a UX feature, not a security feature.
Functions ¶
This section is empty.
Types ¶
type CheckMessageSidelineImpl ¶
type CheckMessageSidelineImpl interface { CheckMessageSideline(key []byte) ([]byte, error) SidelineMessage(msg []byte) SidelineMessageResponse InitialisePlugin(conf []byte) error }
CheckMessageSidelineImpl is the interface that we're exposing as a plugin.
type CheckMessageSidelineImplPlugin ¶
type CheckMessageSidelineImplPlugin struct{}
Dummy implementation of a plugin.Plugin interface for use in PluginMap. At runtime, a real implementation from a plugin implementation overwrides this.
type CheckMessageSidelineRPC ¶
Here is an implementation that talks over RPC
func (*CheckMessageSidelineRPC) CheckMessageSideline ¶
func (g *CheckMessageSidelineRPC) CheckMessageSideline(key []byte) ([]byte, error)
func (*CheckMessageSidelineRPC) InitialisePlugin ¶
func (g *CheckMessageSidelineRPC) InitialisePlugin(conf []byte) error
func (*CheckMessageSidelineRPC) SidelineMessage ¶
func (g *CheckMessageSidelineRPC) SidelineMessage(msg []byte) SidelineMessageResponse
type CheckMessageSidelineRPCServer ¶
type CheckMessageSidelineRPCServer struct { // This is the real implementation Impl CheckMessageSidelineImpl }
Here is the RPC server that CheckMessageSidelineRPC talks to, conforming to the requirements of net/rpc
func (*CheckMessageSidelineRPCServer) CheckMessageSideline ¶
func (s *CheckMessageSidelineRPCServer) CheckMessageSideline(key []byte, resp *[]byte) error
func (*CheckMessageSidelineRPCServer) InitialisePlugin ¶
func (s *CheckMessageSidelineRPCServer) InitialisePlugin(conf []byte, err *error) error
func (*CheckMessageSidelineRPCServer) SidelineMessage ¶
func (s *CheckMessageSidelineRPCServer) SidelineMessage(msg []byte, sidelineMessageResponse *SidelineMessageResponse) error
type KafkaHttpSidelineMeta ¶
type Manager ¶
type Manager struct { Type string // id for types of plugins this manager deals with Glob string // glob match for plugin filenames Path string // path for plugins Plugins map[string]*PluginInfo // Info for foudn plugins // contains filtered or unexported fields }
Manager handles lifecycle of plugin mgmt for different plugin types. In This example we have two plugin types: greeter and clubber, both of which have multiple implementations.
func (*Manager) GetInterface ¶
type ScanImpl ¶
type ScanImpl interface { ScanWithStartRowEndRow(request ScanWithStartRowEndRowRequest) ([]string, error) ScanWithStartTimeEndTime(request ScanWithStartTimeEndTimeRequest) ([]string, error) }
type ScanImplRPC ¶
func (*ScanImplRPC) ScanWithStartRowEndRow ¶
func (g *ScanImplRPC) ScanWithStartRowEndRow(request ScanWithStartRowEndRowRequest) ([]string, error)
func (*ScanImplRPC) ScanWithStartTimeEndTime ¶
func (g *ScanImplRPC) ScanWithStartTimeEndTime(request ScanWithStartTimeEndTimeRequest) ([]string, error)
type ScanImplRPCServer ¶
type ScanImplRPCServer struct {
Impl ScanImpl
}
func (*ScanImplRPCServer) ScanWithStartRowEndRow ¶
func (s *ScanImplRPCServer) ScanWithStartRowEndRow(request ScanWithStartRowEndRowRequest, resp *[]string) error
func (*ScanImplRPCServer) ScanWithStartTimeEndTime ¶
func (s *ScanImplRPCServer) ScanWithStartTimeEndTime(request ScanWithStartTimeEndTimeRequest, resp *[]string) error
type SidelineMessage ¶
type SidelineMessageResponse ¶
type UnsidelineByKeyRequest ¶
type UnsidelineImpl ¶
type UnsidelineImpl interface {
UnsidelineByKey(request UnsidelineByKeyRequest) (string, error)
}
type UnsidelineImplRPC ¶
func (*UnsidelineImplRPC) UnsidelineByKey ¶
func (g *UnsidelineImplRPC) UnsidelineByKey(request UnsidelineByKeyRequest) (string, error)
type UnsidelineImplRPCServer ¶
type UnsidelineImplRPCServer struct {
Impl UnsidelineImpl
}
func (*UnsidelineImplRPCServer) UnsidelineByKey ¶
func (s *UnsidelineImplRPCServer) UnsidelineByKey(request UnsidelineByKeyRequest, resp *string) error
Source Files ¶
- check_message_sideline_response.go
- config.go
- kafka_http_sideline_meta.go
- plugin_manager.go
- scan_plugin.go
- scan_with_start_row_end_row_request.go
- scan_with_start_time_end_time_request.go
- sideline_message.go
- sideline_message_response.go
- sideline_plugin.go
- unsideline_by_key_request.go
- unsideline_plugin.go