mirror of
https://github.com/oarkflow/mq.git
synced 2025-10-19 07:24:44 +08:00
update: dependencies
This commit is contained in:
64
dag/v1/operations.go
Normal file
64
dag/v1/operations.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package v1
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/oarkflow/mq"
|
||||
)
|
||||
|
||||
type Operations struct {
|
||||
mu *sync.RWMutex
|
||||
Handlers map[string]func(string) mq.Processor
|
||||
}
|
||||
|
||||
var ops = &Operations{mu: &sync.RWMutex{}, Handlers: make(map[string]func(string) mq.Processor)}
|
||||
|
||||
func AddHandler(key string, handler func(string) mq.Processor) {
|
||||
ops.mu.Lock()
|
||||
ops.Handlers[key] = handler
|
||||
ops.mu.Unlock()
|
||||
}
|
||||
|
||||
func GetHandler(key string) func(string) mq.Processor {
|
||||
return ops.Handlers[key]
|
||||
}
|
||||
|
||||
func AvailableHandlers() []string {
|
||||
var op []string
|
||||
for opt := range ops.Handlers {
|
||||
op = append(op, opt)
|
||||
}
|
||||
return op
|
||||
}
|
||||
|
||||
type List struct {
|
||||
mu *sync.RWMutex
|
||||
Handlers map[string]*DAG
|
||||
}
|
||||
|
||||
var dags = &List{mu: &sync.RWMutex{}, Handlers: make(map[string]*DAG)}
|
||||
|
||||
func AddDAG(key string, handler *DAG) {
|
||||
dags.mu.Lock()
|
||||
dags.Handlers[key] = handler
|
||||
dags.mu.Unlock()
|
||||
}
|
||||
|
||||
func GetDAG(key string) *DAG {
|
||||
return dags.Handlers[key]
|
||||
}
|
||||
|
||||
func ClearDAG() {
|
||||
dags.mu.Lock()
|
||||
clear(dags.Handlers)
|
||||
dags.mu.Unlock()
|
||||
dags.Handlers = make(map[string]*DAG)
|
||||
}
|
||||
|
||||
func AvailableDAG() []string {
|
||||
var op []string
|
||||
for opt := range dags.Handlers {
|
||||
op = append(op, opt)
|
||||
}
|
||||
return op
|
||||
}
|
Reference in New Issue
Block a user