mirror of
https://github.com/Kong/go-pluginserver.git
synced 2025-09-27 04:26:20 +08:00
refactor(*) reorder according to lifespan
This commit is contained in:

committed by
Guilherme Salazar

parent
8777138bdd
commit
db0d11e5ae
@@ -48,47 +48,6 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
// --- pluginData --- //
|
||||
type pluginData struct {
|
||||
name string
|
||||
code *plugin.Plugin
|
||||
constructor func() interface{}
|
||||
config interface{}
|
||||
}
|
||||
|
||||
// --- instanceData --- //
|
||||
type instanceData struct {
|
||||
id int
|
||||
plugin *pluginData
|
||||
initialized bool
|
||||
config interface{}
|
||||
handlers map[string]func(kong *pdk.PDK)
|
||||
}
|
||||
|
||||
type (
|
||||
certificater interface{ Certificate(*pdk.PDK) }
|
||||
rewriter interface{ Rewrite(*pdk.PDK) }
|
||||
accesser interface{ Access(*pdk.PDK) }
|
||||
headerFilter interface{ HeaderFilter(*pdk.PDK) }
|
||||
bodyFilter interface{ BodyFilter(*pdk.PDK) }
|
||||
prereader interface{ Preread(*pdk.PDK) }
|
||||
logger interface{ Log(*pdk.PDK) }
|
||||
)
|
||||
|
||||
func getHandlers(config interface{}) map[string]func(kong *pdk.PDK) {
|
||||
handlers := map[string]func(kong *pdk.PDK){}
|
||||
|
||||
if h, ok := config.(certificater); ok { handlers["certificate"] = h.Certificate }
|
||||
if h, ok := config.(rewriter) ; ok { handlers["rewrite"] = h.Rewrite }
|
||||
if h, ok := config.(accesser) ; ok { handlers["access"] = h.Access }
|
||||
if h, ok := config.(headerFilter); ok { handlers["header_filter"] = h.HeaderFilter }
|
||||
if h, ok := config.(bodyFilter) ; ok { handlers["body_filter"] = h.BodyFilter }
|
||||
if h, ok := config.(prereader) ; ok { handlers["preread"] = h.Preread }
|
||||
if h, ok := config.(logger) ; ok { handlers["log"] = h.Log }
|
||||
|
||||
return handlers
|
||||
}
|
||||
|
||||
// --- PluginServer --- //
|
||||
type PluginServer struct {
|
||||
lock sync.RWMutex
|
||||
@@ -117,6 +76,14 @@ func (s *PluginServer) SetPluginDir(dir string, reply *string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// --- pluginData --- //
|
||||
type pluginData struct {
|
||||
name string
|
||||
code *plugin.Plugin
|
||||
constructor func() interface{}
|
||||
config interface{}
|
||||
}
|
||||
|
||||
func (s PluginServer) loadPlugin(name string) (plug *pluginData, err error) {
|
||||
s.lock.RLock()
|
||||
plug, ok := s.plugins[name]
|
||||
@@ -263,6 +230,39 @@ func (s PluginServer) GetPluginInfo(name string, info *PluginInfo) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// --- instanceData --- //
|
||||
type instanceData struct {
|
||||
id int
|
||||
plugin *pluginData
|
||||
initialized bool
|
||||
config interface{}
|
||||
handlers map[string]func(kong *pdk.PDK)
|
||||
}
|
||||
|
||||
type (
|
||||
certificater interface{ Certificate(*pdk.PDK) }
|
||||
rewriter interface{ Rewrite(*pdk.PDK) }
|
||||
accesser interface{ Access(*pdk.PDK) }
|
||||
headerFilter interface{ HeaderFilter(*pdk.PDK) }
|
||||
bodyFilter interface{ BodyFilter(*pdk.PDK) }
|
||||
prereader interface{ Preread(*pdk.PDK) }
|
||||
logger interface{ Log(*pdk.PDK) }
|
||||
)
|
||||
|
||||
func getHandlers(config interface{}) map[string]func(kong *pdk.PDK) {
|
||||
handlers := map[string]func(kong *pdk.PDK){}
|
||||
|
||||
if h, ok := config.(certificater); ok { handlers["certificate"] = h.Certificate }
|
||||
if h, ok := config.(rewriter) ; ok { handlers["rewrite"] = h.Rewrite }
|
||||
if h, ok := config.(accesser) ; ok { handlers["access"] = h.Access }
|
||||
if h, ok := config.(headerFilter); ok { handlers["header_filter"] = h.HeaderFilter }
|
||||
if h, ok := config.(bodyFilter) ; ok { handlers["body_filter"] = h.BodyFilter }
|
||||
if h, ok := config.(prereader) ; ok { handlers["preread"] = h.Preread }
|
||||
if h, ok := config.(logger) ; ok { handlers["log"] = h.Log }
|
||||
|
||||
return handlers
|
||||
}
|
||||
|
||||
type PluginConfig struct {
|
||||
Name string
|
||||
Config []byte
|
||||
|
Reference in New Issue
Block a user