summaryrefslogtreecommitdiff
path: root/pkg/server/module/module.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-29 00:58:01 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-29 00:58:01 +0300
commitc55afd2de177f128fae6e1c52d0c56af17096258 (patch)
tree2b06eeabf4db3a6c7ef357fb1569c4e8f72aab68 /pkg/server/module/module.go
parent11501b56a751d2959480aaeaf2036eff586e5629 (diff)
rename module to hook
Diffstat (limited to 'pkg/server/module/module.go')
-rw-r--r--pkg/server/module/module.go126
1 files changed, 0 insertions, 126 deletions
diff --git a/pkg/server/module/module.go b/pkg/server/module/module.go
deleted file mode 100644
index c638299..0000000
--- a/pkg/server/module/module.go
+++ /dev/null
@@ -1,126 +0,0 @@
-package module
-
-import (
- "fmt"
- "log"
- "sort"
- "strings"
- "tunnel/pkg/server/env"
- "tunnel/pkg/server/opts"
- "tunnel/pkg/server/queue"
-)
-
-type moduleInitFunc func(opts.Opts, env.Env) (module, error)
-
-var modules = map[string]moduleInitFunc{}
-
-type module interface {
- Open(env env.Env) (interface{}, error)
-}
-
-type M interface {
- module
- String() string
-}
-
-type Sender interface {
- Send(rq, wq queue.Q) error
-}
-
-type Recver interface {
- Recv(rq, wq queue.Q) error
-}
-
-type Func func(rq, wq queue.Q) error
-
-func (f Func) Send(rq, wq queue.Q) error {
- return f(rq, wq)
-}
-
-func (f Func) Open(env env.Env) (interface{}, error) {
- return f, nil
-}
-
-type wrapper struct {
- module
- name string
- reverse bool
-}
-
-func (w *wrapper) String() string {
- return fmt.Sprintf("module:%s", w.name)
-}
-
-func Open(m M, env env.Env) (Func, Func, error) {
- var send, recv Func
-
- w := m.(*wrapper)
-
- it, err := m.Open(env)
- if err != nil {
- return nil, nil, err
- }
-
- if sender, ok := it.(Sender); ok {
- send = sender.Send
- }
-
- if recver, ok := it.(Recver); ok {
- recv = recver.Recv
- }
-
- if w.reverse {
- send, recv = recv, send
- }
-
- return send, recv, nil
-}
-
-func New(desc string, env env.Env) (M, error) {
- name, opts := opts.Parse(desc)
- reverse := false
-
- if strings.HasPrefix(name, "-") {
- name = name[1:]
- reverse = true
- }
-
- if f, ok := modules[name]; !ok {
- return nil, fmt.Errorf("unknown module '%s'", name)
- } else if m, err := f(opts, env); err != nil {
- return nil, err
- } else {
- w := &wrapper{
- module: m,
- name: name,
- reverse: reverse,
- }
- return w, nil
- }
-}
-
-func register(name string, f moduleInitFunc) {
- if _, ok := modules[name]; ok {
- log.Panicf("duplicate module name '%s'", name)
- }
-
- modules[name] = f
-}
-
-func registerFunc(name string, p Func) {
- register(name, func(opts.Opts, env.Env) (module, error) {
- return p, nil
- })
-}
-
-func GetList() []string {
- var list []string
-
- for k := range modules {
- list = append(list, k)
- }
-
- sort.Strings(list)
-
- return list
-}