Commit 93df9f43 by lancet

vault value is abstract now

parent a0c4b68e
...@@ -4,7 +4,7 @@ package vault ...@@ -4,7 +4,7 @@ package vault
// запрос/ответ // запрос/ответ
type Message struct { type Message struct {
Key string Key string
Value string Value interface{}
Action string // SET, GET, DEL, POP Action string // SET, GET, DEL, POP
Error bool Error bool
Reply chan Message Reply chan Message
...@@ -12,11 +12,11 @@ type Message struct { ...@@ -12,11 +12,11 @@ type Message struct {
// node - узел данных для очереди устаревания // node - узел данных для очереди устаревания
type node struct { type node struct {
Kind bool // 0 - таймаут, 1 - данные Kind bool // 0 - таймаут, 1 - данные
Key string // Ключ Key string // Ключ
Value string // Хранимое значение Value interface{} // Хранимое значение
Prev *node // Ближе к голове, извлекается раньше Prev *node // Ближе к голове, извлекается раньше
Next *node // Ближе к хвосту, выйдёт позже Next *node // Ближе к хвосту, выйдёт позже
} }
// Store - корневая структура для хранения данных // Store - корневая структура для хранения данных
......
...@@ -7,7 +7,7 @@ import ( ...@@ -7,7 +7,7 @@ import (
) )
// GetValue - получить значение ключа из хранилища // GetValue - получить значение ключа из хранилища
func (store *Store) GetValue(key string) (string, error) { func (store *Store) GetValue(key string) (interface{}, error) {
if store.isInit == false { if store.isInit == false {
store.init() store.init()
} }
...@@ -22,7 +22,7 @@ func (store *Store) GetValue(key string) (string, error) { ...@@ -22,7 +22,7 @@ func (store *Store) GetValue(key string) (string, error) {
} }
// SetValue - установить/обновить значение ключа // SetValue - установить/обновить значение ключа
func (store *Store) SetValue(key, value string) error { func (store *Store) SetValue(key string, value interface{}) error {
if store.isInit == false { if store.isInit == false {
store.init() store.init()
} }
......
...@@ -29,7 +29,7 @@ func (store *Store) init() { ...@@ -29,7 +29,7 @@ func (store *Store) init() {
} }
// addNode - добавляем новый узел в хвост очереди. // addNode - добавляем новый узел в хвост очереди.
func (store *Store) addNode(key, value string, kind bool) error { func (store *Store) addNode(key string, value interface{}, kind bool) error {
var prev *node var prev *node
if store.tail != nil { if store.tail != nil {
prev = store.tail prev = store.tail
...@@ -50,7 +50,7 @@ func (store *Store) addNode(key, value string, kind bool) error { ...@@ -50,7 +50,7 @@ func (store *Store) addNode(key, value string, kind bool) error {
// setNode - собираемся добавить новый узел. // setNode - собираемся добавить новый узел.
// Если ключа ещё нет - просто добавляем в хвост. // Если ключа ещё нет - просто добавляем в хвост.
// Если ключ есть - переносим в хвост. // Если ключ есть - переносим в хвост.
func (store *Store) setNode(key, value string) error { func (store *Store) setNode(key string, value interface{}) error {
if _, ok := store.flat[key]; ok == false { if _, ok := store.flat[key]; ok == false {
store.addNode(key, value, true) store.addNode(key, value, true)
return nil return nil
...@@ -82,7 +82,7 @@ func (store *Store) popNode() error { ...@@ -82,7 +82,7 @@ func (store *Store) popNode() error {
} }
// getNode - получить значение ключа, или ошибку, если такого нет. // getNode - получить значение ключа, или ошибку, если такого нет.
func (store *Store) getNode(key string) (string, error) { func (store *Store) getNode(key string) (interface{}, error) {
if v, ok := store.flat[key]; ok != false { if v, ok := store.flat[key]; ok != false {
return v.Value, nil return v.Value, nil
} }
......
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