40 lines
685 B
Go
40 lines
685 B
Go
|
package all
|
||
|
|
||
|
import (
|
||
|
"github.com/genofire/logmania/lib"
|
||
|
"github.com/genofire/logmania/log"
|
||
|
"github.com/genofire/logmania/receive"
|
||
|
)
|
||
|
|
||
|
type Receiver struct {
|
||
|
receive.Receiver
|
||
|
list []receive.Receiver
|
||
|
}
|
||
|
|
||
|
func Init(config *lib.ReceiveConfig, exportChannel chan *log.Entry) receive.Receiver {
|
||
|
var list []receive.Receiver
|
||
|
for _, init := range receive.Register {
|
||
|
receiver := init(config, exportChannel)
|
||
|
|
||
|
if receiver == nil {
|
||
|
continue
|
||
|
}
|
||
|
list = append(list, receiver)
|
||
|
}
|
||
|
return &Receiver{
|
||
|
list: list,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (r *Receiver) Listen() {
|
||
|
for _, item := range r.list {
|
||
|
go item.Listen()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (r *Receiver) Close() {
|
||
|
for _, item := range r.list {
|
||
|
item.Close()
|
||
|
}
|
||
|
}
|