next-terminal/pkg/config/store.go
2020-12-20 21:19:11 +08:00

38 lines
529 B
Go

package config
import (
"github.com/pkg/sftp"
"next-terminal/pkg/guacd"
"sync"
)
type Tun struct {
Tun guacd.Tunnel
SftpClient *sftp.Client
}
type TunStore struct {
m sync.Map
}
func (s *TunStore) Set(k string, v Tun) {
s.m.Store(k, v)
}
func (s *TunStore) Del(k string) {
s.m.Delete(k)
}
func (s *TunStore) Get(k string) (item Tun, ok bool) {
value, ok := s.m.Load(k)
if ok {
return value.(Tun), true
}
return item, false
}
func NewStore() *TunStore {
store := TunStore{sync.Map{}}
return &store
}