github.com/wangyougui/gf/v2@v2.6.5/os/gsession/gsession_storage_base.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/wangyougui/gf. 6 7 package gsession 8 9 import ( 10 "context" 11 "time" 12 13 "github.com/wangyougui/gf/v2/container/gmap" 14 ) 15 16 // StorageBase is a base implement for Session Storage. 17 type StorageBase struct{} 18 19 // New creates a session id. 20 // This function can be used for custom session creation. 21 func (s *StorageBase) New(ctx context.Context, ttl time.Duration) (id string, err error) { 22 return "", ErrorDisabled 23 } 24 25 // Get retrieves certain session value with given key. 26 // It returns nil if the key does not exist in the session. 27 func (s *StorageBase) Get(ctx context.Context, sessionId string, key string) (value interface{}, err error) { 28 return nil, ErrorDisabled 29 } 30 31 // Data retrieves all key-value pairs as map from storage. 32 func (s *StorageBase) Data(ctx context.Context, sessionId string) (sessionData map[string]interface{}, err error) { 33 return nil, ErrorDisabled 34 } 35 36 // GetSize retrieves the size of key-value pairs from storage. 37 func (s *StorageBase) GetSize(ctx context.Context, sessionId string) (size int, err error) { 38 return 0, ErrorDisabled 39 } 40 41 // Set sets key-value session pair to the storage. 42 // The parameter `ttl` specifies the TTL for the session id (not for the key-value pair). 43 func (s *StorageBase) Set(ctx context.Context, sessionId string, key string, value interface{}, ttl time.Duration) error { 44 return ErrorDisabled 45 } 46 47 // SetMap batch sets key-value session pairs with map to the storage. 48 // The parameter `ttl` specifies the TTL for the session id(not for the key-value pair). 49 func (s *StorageBase) SetMap(ctx context.Context, sessionId string, mapData map[string]interface{}, ttl time.Duration) error { 50 return ErrorDisabled 51 } 52 53 // Remove deletes key with its value from storage. 54 func (s *StorageBase) Remove(ctx context.Context, sessionId string, key string) error { 55 return ErrorDisabled 56 } 57 58 // RemoveAll deletes session from storage. 59 func (s *StorageBase) RemoveAll(ctx context.Context, sessionId string) error { 60 return ErrorDisabled 61 } 62 63 // GetSession returns the session data as *gmap.StrAnyMap for given session id from storage. 64 // 65 // The parameter `ttl` specifies the TTL for this session, and it returns nil if the TTL is exceeded. 66 // The parameter `data` is the current old session data stored in memory, 67 // and for some storage it might be nil if memory storage is disabled. 68 // 69 // This function is called ever when session starts. 70 func (s *StorageBase) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.StrAnyMap, error) { 71 return nil, ErrorDisabled 72 } 73 74 // SetSession updates the data map for specified session id. 75 // This function is called ever after session, which is changed dirty, is closed. 76 // This copy all session data map from memory to storage. 77 func (s *StorageBase) SetSession(ctx context.Context, sessionId string, sessionData *gmap.StrAnyMap, ttl time.Duration) error { 78 return ErrorDisabled 79 } 80 81 // UpdateTTL updates the TTL for specified session id. 82 // This function is called ever after session, which is not dirty, is closed. 83 // It just adds the session id to the async handling queue. 84 func (s *StorageBase) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error { 85 return ErrorDisabled 86 }