Documentation ¶
Index ¶
- Constants
- type Cache
- type Caches
- func (c Caches) GetRoomServerEventTypeNID(eventType string) (types.EventTypeNID, bool)
- func (c Caches) GetRoomServerRoomID(roomNID types.RoomNID) (string, bool)
- func (c Caches) GetRoomServerRoomNID(roomID string) (types.RoomNID, bool)
- func (c Caches) GetRoomServerStateKeyNID(stateKey string) (types.EventStateKeyNID, bool)
- func (c Caches) GetRoomVersion(roomID string) (gomatrixserverlib.RoomVersion, bool)
- func (c Caches) GetServerKey(request gomatrixserverlib.PublicKeyLookupRequest, ...) (gomatrixserverlib.PublicKeyLookupResult, bool)
- func (c Caches) StoreRoomServerEventTypeNID(eventType string, nid types.EventTypeNID)
- func (c Caches) StoreRoomServerRoomID(roomNID types.RoomNID, roomID string)
- func (c Caches) StoreRoomServerRoomNID(roomID string, roomNID types.RoomNID)
- func (c Caches) StoreRoomServerStateKeyNID(stateKey string, nid types.EventStateKeyNID)
- func (c Caches) StoreRoomVersion(roomID string, roomVersion gomatrixserverlib.RoomVersion)
- func (c Caches) StoreServerKey(request gomatrixserverlib.PublicKeyLookupRequest, ...)
- type InMemoryLRUCachePartition
- type RoomServerCaches
- type RoomServerNIDsCache
- type RoomVersionCache
- type ServerKeyCache
Constants ¶
View Source
const ( RoomServerStateKeyNIDsCacheName = "roomserver_statekey_nids" RoomServerStateKeyNIDsCacheMaxEntries = 1024 RoomServerStateKeyNIDsCacheMutable = false RoomServerEventTypeNIDsCacheName = "roomserver_eventtype_nids" RoomServerEventTypeNIDsCacheMaxEntries = 64 RoomServerEventTypeNIDsCacheMutable = false RoomServerRoomNIDsCacheName = "roomserver_room_nids" RoomServerRoomNIDsCacheMaxEntries = 1024 RoomServerRoomNIDsCacheMutable = false RoomServerRoomIDsCacheName = "roomserver_room_ids" RoomServerRoomIDsCacheMaxEntries = 1024 RoomServerRoomIDsCacheMutable = false )
View Source
const ( RoomVersionCacheName = "room_versions" RoomVersionCacheMaxEntries = 1024 RoomVersionCacheMutable = false )
View Source
const ( ServerKeyCacheName = "server_key" ServerKeyCacheMaxEntries = 4096 ServerKeyCacheMutable = true )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface { Get(key string) (value interface{}, ok bool) Set(key string, value interface{}) Unset(key string) }
Cache is the interface that an implementation must satisfy.
type Caches ¶
type Caches struct { RoomVersions Cache // RoomVersionCache ServerKeys Cache // ServerKeyCache RoomServerStateKeyNIDs Cache // RoomServerNIDsCache RoomServerEventTypeNIDs Cache // RoomServerNIDsCache RoomServerRoomNIDs Cache // RoomServerNIDsCache RoomServerRoomIDs Cache // RoomServerNIDsCache }
Caches contains a set of references to caches. They may be different implementations as long as they satisfy the Cache interface.
func NewInMemoryLRUCache ¶
func (Caches) GetRoomServerEventTypeNID ¶
func (c Caches) GetRoomServerEventTypeNID(eventType string) (types.EventTypeNID, bool)
func (Caches) GetRoomServerRoomID ¶
func (Caches) GetRoomServerRoomNID ¶
func (Caches) GetRoomServerStateKeyNID ¶
func (c Caches) GetRoomServerStateKeyNID(stateKey string) (types.EventStateKeyNID, bool)
func (Caches) GetRoomVersion ¶
func (c Caches) GetRoomVersion(roomID string) (gomatrixserverlib.RoomVersion, bool)
func (Caches) GetServerKey ¶
func (c Caches) GetServerKey( request gomatrixserverlib.PublicKeyLookupRequest, timestamp gomatrixserverlib.Timestamp, ) (gomatrixserverlib.PublicKeyLookupResult, bool)
func (Caches) StoreRoomServerEventTypeNID ¶
func (c Caches) StoreRoomServerEventTypeNID(eventType string, nid types.EventTypeNID)
func (Caches) StoreRoomServerRoomID ¶
func (Caches) StoreRoomServerRoomNID ¶
func (Caches) StoreRoomServerStateKeyNID ¶
func (c Caches) StoreRoomServerStateKeyNID(stateKey string, nid types.EventStateKeyNID)
func (Caches) StoreRoomVersion ¶
func (c Caches) StoreRoomVersion(roomID string, roomVersion gomatrixserverlib.RoomVersion)
func (Caches) StoreServerKey ¶
func (c Caches) StoreServerKey( request gomatrixserverlib.PublicKeyLookupRequest, response gomatrixserverlib.PublicKeyLookupResult, )
type InMemoryLRUCachePartition ¶
type InMemoryLRUCachePartition struct {
// contains filtered or unexported fields
}
func (*InMemoryLRUCachePartition) Get ¶
func (c *InMemoryLRUCachePartition) Get(key string) (value interface{}, ok bool)
func (*InMemoryLRUCachePartition) Set ¶
func (c *InMemoryLRUCachePartition) Set(key string, value interface{})
func (*InMemoryLRUCachePartition) Unset ¶
func (c *InMemoryLRUCachePartition) Unset(key string)
type RoomServerCaches ¶
type RoomServerCaches interface { RoomServerNIDsCache RoomVersionCache }
type RoomServerNIDsCache ¶
type RoomServerNIDsCache interface { GetRoomServerStateKeyNID(stateKey string) (types.EventStateKeyNID, bool) StoreRoomServerStateKeyNID(stateKey string, nid types.EventStateKeyNID) GetRoomServerEventTypeNID(eventType string) (types.EventTypeNID, bool) StoreRoomServerEventTypeNID(eventType string, nid types.EventTypeNID) GetRoomServerRoomNID(roomID string) (types.RoomNID, bool) StoreRoomServerRoomNID(roomID string, nid types.RoomNID) GetRoomServerRoomID(roomNID types.RoomNID) (string, bool) StoreRoomServerRoomID(roomNID types.RoomNID, roomID string) }
RoomServerNIDsCache contains the subset of functions needed for a roomserver NID cache.
type RoomVersionCache ¶
type RoomVersionCache interface { GetRoomVersion(roomID string) (roomVersion gomatrixserverlib.RoomVersion, ok bool) StoreRoomVersion(roomID string, roomVersion gomatrixserverlib.RoomVersion) }
RoomVersionsCache contains the subset of functions needed for a room version cache.
type ServerKeyCache ¶
type ServerKeyCache interface { // request -> timestamp is emulating gomatrixserverlib.FetchKeys: // https://github.com/matrix-org/gomatrixserverlib/blob/f69539c86ea55d1e2cc76fd8e944e2d82d30397c/keyring.go#L95 // The timestamp should be the timestamp of the event that is being // verified. We will not return keys from the cache that are not valid // at this timestamp. GetServerKey(request gomatrixserverlib.PublicKeyLookupRequest, timestamp gomatrixserverlib.Timestamp) (response gomatrixserverlib.PublicKeyLookupResult, ok bool) // request -> result is emulating gomatrixserverlib.StoreKeys: // https://github.com/matrix-org/gomatrixserverlib/blob/f69539c86ea55d1e2cc76fd8e944e2d82d30397c/keyring.go#L112 StoreServerKey(request gomatrixserverlib.PublicKeyLookupRequest, response gomatrixserverlib.PublicKeyLookupResult) }
ServerKeyCache contains the subset of functions needed for a server key cache.
Click to show internal directories.
Click to hide internal directories.