30 lines
647 B
Go
30 lines
647 B
Go
package lib
|
|
|
|
type DirStore struct {
|
|
dirs []string
|
|
msgStores map[string]*MessageStore
|
|
}
|
|
|
|
func NewDirStore() *DirStore {
|
|
msgStores := make(map[string]*MessageStore)
|
|
return &DirStore{msgStores: msgStores}
|
|
}
|
|
|
|
func (store *DirStore) Update(dirs []string) {
|
|
store.dirs = make([]string, len(dirs))
|
|
copy(store.dirs, dirs)
|
|
}
|
|
|
|
func (store *DirStore) List() []string {
|
|
return store.dirs
|
|
}
|
|
|
|
func (store *DirStore) MessageStore(dirname string) (*MessageStore, bool) {
|
|
msgStore, ok := store.msgStores[dirname]
|
|
return msgStore, ok
|
|
}
|
|
|
|
func (store *DirStore) SetMessageStore(name string, msgStore *MessageStore) {
|
|
store.msgStores[name] = msgStore
|
|
}
|