Commit 05f5a5c6 by lancet

tweaks and fixes

parent 1c05ab46
package vault
import "time"
// Message - структура данных для двустороннего обмена с хранилищем,
// запрос/ответ
type Message struct {
Key string
Value string
Action string
Code int
}
// node - узел данных для очереди устаревания
type node struct {
Kind bool // 0 - таймаут, 1 - данные
Value string // Хранимое значение
}
// Store - корневая структура для хранения данных
type Store struct {
Exchange chan Message // Небуферизованный канал для синхронизации доступа
TTL time.Time // Время жизни узла
Head *node
Tail *node
Map map[string]node // Карта для быстрого доступа к значениям
}
package vault
// setNode - добавляем новый узел в очередь.
// Если такой ключ уже есть - переносим узел в начало очереди.
func (store *Store) setNode(key, value string) error {
return nil
}
// popNode - извлекаем узел из очереди и уничтожаем его.
// Если Kind == 0 - то возвращаем ошибку.
// При ошибке устаревание приостанавливается на секунду.
func (store *Store) popNode() error {
return nil
}
// getNode - получить значение ключа, или ошибку, если такого нет.
func (store *Store) getNode(key string) (string, error) {
return "", nil
}
// delNode - удалить узел с указанным ключом.
// Если такого ключа не было - вернуть ошибку.
func (store *Store) delNode(key string) error {
return nil
}
package web
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment