link.go 517 字节
Newer Older
J
Jason 已提交
1 2
package dtu

J
Jason 已提交
3 4 5 6
import (
	"github.com/zgwit/dtu-admin/storage"
	"sync"
)
J
 
Jason 已提交
7 8


J
Jason 已提交
9
var channels *sync.Map
J
 
Jason 已提交
10 11

func init() {
J
Jason 已提交
12
	channels = new(sync.Map)
J
 
Jason 已提交
13 14
}

J
Jason 已提交
15 16
func Channels() *sync.Map {
	return channels
J
Jason 已提交
17 18
}

J
Jason 已提交
19 20 21
func Recovery() error {
	var cs []storage.Channel
	err := storage.ChannelDB().All(&cs)
J
Jason 已提交
22 23 24 25
	if err != nil {
		return err
	}

J
Jason 已提交
26 27 28 29 30
	for _, c := range cs {
		channel := NewChannel(c.ID, c.Net, c.Addr, c.IsServer)
		err := channel.Open()
		if err != nil {
			channel.Error = err.Error()
J
Jason 已提交
31
		}
J
Jason 已提交
32 33

		channels.Store(c.ID, channel)
J
Jason 已提交
34 35 36
	}

	return nil
J
Jason 已提交
37
}