wiki/memory.go

38 lines
636 B
Go
Raw Normal View History

2018-11-24 12:34:51 +00:00
package main
import "sync"
type MemoryPages struct {
m sync.RWMutex
pages map[string]string
}
//
// func NewMemoryPages() PagesRepository {
// return &MemoryPages{
// pages: make(map[string]string),
// }
// }
func (mp *MemoryPages) Get(p string) Page {
mp.m.RLock()
defer mp.m.RUnlock()
if pt, e := mp.pages[p]; e {
return Page{Content: pt}
}
return Page{}
}
func (mp *MemoryPages) Save(p string, page Page, summary, author string) {
mp.m.Lock()
defer mp.m.Unlock()
mp.pages[p] = page.Content
}
func (mp *MemoryPages) Exist(p string) bool {
mp.m.RLock()
defer mp.m.RUnlock()
_, e := mp.pages[p]
return e
}