wiki/memory.go

46 lines
814 B
Go

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
}
func (mp *MemoryPages) PageHistory(p string) ([]Revision, error) {
panic("implement me")
}
func (mp *MemoryPages) RecentChanges() ([]Change, error) {
panic("implement me")
}