refactor: InstallPlugin

This commit is contained in:
dexter
2024-03-29 22:24:07 +08:00
parent 8c4865b434
commit 9936fe980d
3 changed files with 13 additions and 6 deletions

View File

@@ -8,7 +8,6 @@ import (
"reflect"
"runtime"
"strings"
"sync"
"github.com/mcuadros/go-defaults"
"gopkg.in/yaml.v3"
@@ -76,18 +75,23 @@ func (plugin *PluginMeta) Init(s *Server, userConfig map[string]any) {
go p.Start()
}
type iPlugin interface {
nothing()
}
type IPlugin interface {
OnInit()
OnEvent(any)
}
type ITCPPlugin interface {
OnTCPConnect(*net.TCPConn)
}
var plugins []PluginMeta
func InstallPlugin[C IPlugin](options ...any) error {
var c C
func InstallPlugin[C iPlugin](options ...any) error {
var c *C
t := reflect.TypeOf(c).Elem()
meta := PluginMeta{
Name: strings.TrimSuffix(t.Name(), "Plugin"),
@@ -131,7 +135,10 @@ type Plugin struct {
Publishers []*Publisher
handler IPlugin
server *Server
sync.RWMutex
}
func (Plugin) nothing() {
}
func (p *Plugin) GetCommonConf() *config.Common {

View File

@@ -65,4 +65,4 @@ func (p *DemoPlugin) OnPublish(publisher *m7s.Publisher) {
}
}
var _ = m7s.InstallPlugin[*DemoPlugin]()
var _ = m7s.InstallPlugin[DemoPlugin]()

View File

@@ -19,7 +19,7 @@ func (p *RTMPPlugin) OnInit() {
}
var _ = m7s.InstallPlugin[*RTMPPlugin](m7s.DefaultYaml(`tcp:
var _ = m7s.InstallPlugin[RTMPPlugin](m7s.DefaultYaml(`tcp:
listenaddr: :1935`))
func (p *RTMPPlugin) OnTCPConnect(conn *net.TCPConn) {