You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/memory.go

64 lines
1.5 KiB

/*
* Wiki - A wiki with editor
* Copyright (c) 2021 Peter Stuifzand
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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")
}