12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // package store_net -- реализация сетевого хранилища
- package store_net
- import (
- "fmt"
- "github.com/sirupsen/logrus"
- "wartank/pkg/types"
- )
- // StoreNet -- реализвция сетевого хранилища
- type StoreNet struct {
- desktop types.IDesktop
- ws types.IWebSocket
- }
- // NewStoreNet -- возвращает новый объект сетевого хранилища
- func NewStoreNet(desktop types.IDesktop) (*StoreNet, error) {
- logrus.Infof("NewStoreNet()")
- if desktop == nil {
- return nil, fmt.Errorf("NewStoreNet(): IDesktop = =nil")
- }
- sf := &StoreNet{
- desktop: desktop,
- ws: desktop.Ws(),
- }
- return sf, nil
- }
- // Find -- поиск объекта в хранилище
- func (sf *StoreNet) Find(prefix string) (map[string]string, error) {
- logrus.Debugf("StoreNet.Find()")
- mapReq := make(map[string]string)
- mapReq["cmd"] = "/store/find"
- mapReq["key"] = prefix
- dictResp, err := sf.ws.Call("/store/find", mapReq)
- if err != nil {
- return nil, fmt.Errorf("StoreNet.Find(): in write StoreNet, err=\n\t%w", err)
- }
- strErr := dictResp["err"]
- if strErr != "" {
- return nil, fmt.Errorf("StoreNet.Find(): in response, err=\n\t%v", strErr)
- }
- return dictResp, nil
- }
- // Get -- получает содержимое записи по ключу
- func (sf *StoreNet) Get(key string) (string, error) {
- logrus.Debugf("StoreNet.Get()")
- dictResp, err := sf.ws.Read(key)
- if err != nil {
- return "", fmt.Errorf("StoreNet.Get(): in read StoreNet, err=\n\t%w", err)
- }
- strErr := dictResp["err"]
- if string(strErr) != "" {
- return "", fmt.Errorf("StoreNet.Get(): in response, err=\n\t%v", strErr)
- }
- strResp := dictResp["res"]
- return strResp, nil
- }
- // Put -- помещает запись в хранилище
- func (sf *StoreNet) Put(key string, val string) error {
- logrus.Debugf("StoreNet.Put()")
- dictReq := make(map[string]string)
- dictReq["key"] = key
- dictReq["val"] = val
- err := sf.ws.Write("/store/put", dictReq)
- if err != nil {
- return fmt.Errorf("StoreNet.Get(): in write StoreNet, err=\n\t%w", err)
- }
- return nil
- }
|