mirror of
https://github.com/rls-moe/nyx
synced 2024-11-14 22:12:24 +00:00
32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
/*
|
|
|
|
Session Manager interface.
|
|
|
|
*/
|
|
|
|
package session
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
// Manager is a session manager interface.
|
|
// A session manager is responsible to acquire a Session from an (incoming) HTTP request,
|
|
// and to add a Session to an HTTP response to let the client know about the session.
|
|
// A Manager has a backing Store which is responsible to manage Session values at server side.
|
|
type Manager interface {
|
|
// Get returns the session specified by the HTTP request.
|
|
// nil is returned if the request does not contain a session, or the contained session is not know by this manager.
|
|
Get(r *http.Request) Session
|
|
|
|
// Add adds the session to the HTTP response.
|
|
// This means to let the client know about the specified session by including the sesison id in the response somehow.
|
|
Add(sess Session, w http.ResponseWriter)
|
|
|
|
// Remove removes the session from the HTTP response.
|
|
Remove(sess Session, w http.ResponseWriter)
|
|
|
|
// Close closes the session manager, releasing any resources that were allocated.
|
|
Close()
|
|
}
|