Documentation ¶
Overview ¶
Package mysql provides a mysql-backed database that implements both boardgame.StorageManager and boardgame/server.StorageManager. See the README.md for more information on how to configure and use it.
Index ¶
- type StorageManager
- func (s *StorageManager) AgentState(gameID string, player boardgame.PlayerIndex) ([]byte, error)
- func (s *StorageManager) CleanUp()
- func (s *StorageManager) Close()
- func (s *StorageManager) CombinedGame(id string) (*extendedgame.CombinedStorageRecord, error)
- func (s *StorageManager) Connect(config string) error
- func (s *StorageManager) ConnectCookieToUser(cookie string, user *users.StorageRecord) error
- func (s *StorageManager) ExtendedGame(id string) (*extendedgame.StorageRecord, error)
- func (s *StorageManager) FetchInjectedDataForGame(gameID string, dataType string) interface{}
- func (s *StorageManager) Game(id string) (*boardgame.GameStorageRecord, error)
- func (s *StorageManager) GetUserByCookie(cookie string) *users.StorageRecord
- func (s *StorageManager) GetUserByID(uid string) *users.StorageRecord
- func (s *StorageManager) ListGames(max int, list listing.Type, userID string, gameType string) []*extendedgame.CombinedStorageRecord
- func (s *StorageManager) Move(gameID string, version int) (*boardgame.MoveStorageRecord, error)
- func (s *StorageManager) Moves(gameID string, fromVersion, toVersion int) ([]*boardgame.MoveStorageRecord, error)
- func (s *StorageManager) Name() string
- func (s *StorageManager) PlayerMoveApplied(game *boardgame.GameStorageRecord) error
- func (s *StorageManager) SaveAgentState(gameID string, player boardgame.PlayerIndex, state []byte) error
- func (s *StorageManager) SaveGameAndCurrentState(game *boardgame.GameStorageRecord, state boardgame.StateStorageRecord, ...) error
- func (s *StorageManager) SetPlayerForGame(gameID string, playerIndex boardgame.PlayerIndex, userID string) error
- func (s *StorageManager) State(gameID string, version int) (boardgame.StateStorageRecord, error)
- func (s *StorageManager) UpdateExtendedGame(id string, eGame *extendedgame.StorageRecord) error
- func (s *StorageManager) UpdateUser(user *users.StorageRecord) error
- func (s *StorageManager) UserIDsForGame(gameID string) []string
- func (s *StorageManager) WithManagers(managers []*boardgame.GameManager)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type StorageManager ¶
type StorageManager struct {
// contains filtered or unexported fields
}
StorageManager is the primary type in this package.
func NewStorageManager ¶
func NewStorageManager(testMode bool) *StorageManager
NewStorageManager returns a new storage manager. Does most of its set-up work in Connect(), which is when the database configuration information is passed. testMode is whether or not the storage manager is being run in the context of a test; if false, then calls to CleanUp (which drops the entire database) won't do anything.
func (*StorageManager) AgentState ¶
func (s *StorageManager) AgentState(gameID string, player boardgame.PlayerIndex) ([]byte, error)
AgentState returns the given AgentState
func (*StorageManager) CleanUp ¶
func (s *StorageManager) CleanUp()
CleanUp drops the test DB, but only if it was created in TestMode.
func (*StorageManager) Close ¶
func (s *StorageManager) Close()
Close closes out the connection to the database.
func (*StorageManager) CombinedGame ¶
func (s *StorageManager) CombinedGame(id string) (*extendedgame.CombinedStorageRecord, error)
CombinedGame returns the given CombinedGame
func (*StorageManager) Connect ¶
func (s *StorageManager) Connect(config string) error
Connect connects to the database using the given DSN config string.
func (*StorageManager) ConnectCookieToUser ¶
func (s *StorageManager) ConnectCookieToUser(cookie string, user *users.StorageRecord) error
ConnectCookieToUser affiliates the given cookie to the given user
func (*StorageManager) ExtendedGame ¶
func (s *StorageManager) ExtendedGame(id string) (*extendedgame.StorageRecord, error)
ExtendedGame returns the given ExtendedGame
func (*StorageManager) FetchInjectedDataForGame ¶
func (s *StorageManager) FetchInjectedDataForGame(gameID string, dataType string) interface{}
FetchInjectedDataForGame can just return nil
func (*StorageManager) Game ¶
func (s *StorageManager) Game(id string) (*boardgame.GameStorageRecord, error)
Game returns the given Game
func (*StorageManager) GetUserByCookie ¶
func (s *StorageManager) GetUserByCookie(cookie string) *users.StorageRecord
GetUserByCookie gets the given user
func (*StorageManager) GetUserByID ¶
func (s *StorageManager) GetUserByID(uid string) *users.StorageRecord
GetUserByID gets the given user
func (*StorageManager) ListGames ¶
func (s *StorageManager) ListGames(max int, list listing.Type, userID string, gameType string) []*extendedgame.CombinedStorageRecord
ListGames lists the given games
func (*StorageManager) Move ¶
func (s *StorageManager) Move(gameID string, version int) (*boardgame.MoveStorageRecord, error)
Move returns the given Move
func (*StorageManager) Moves ¶
func (s *StorageManager) Moves(gameID string, fromVersion, toVersion int) ([]*boardgame.MoveStorageRecord, error)
Moves returns the given moves
func (*StorageManager) PlayerMoveApplied ¶
func (s *StorageManager) PlayerMoveApplied(game *boardgame.GameStorageRecord) error
PlayerMoveApplied does nothing
func (*StorageManager) SaveAgentState ¶
func (s *StorageManager) SaveAgentState(gameID string, player boardgame.PlayerIndex, state []byte) error
SaveAgentState saves the given agent state
func (*StorageManager) SaveGameAndCurrentState ¶
func (s *StorageManager) SaveGameAndCurrentState(game *boardgame.GameStorageRecord, state boardgame.StateStorageRecord, move *boardgame.MoveStorageRecord) error
SaveGameAndCurrentState saves the given game and current state.
func (*StorageManager) SetPlayerForGame ¶
func (s *StorageManager) SetPlayerForGame(gameID string, playerIndex boardgame.PlayerIndex, userID string) error
SetPlayerForGame affiliates the given user in the given game to the given player
func (*StorageManager) State ¶
func (s *StorageManager) State(gameID string, version int) (boardgame.StateStorageRecord, error)
State returns the given state
func (*StorageManager) UpdateExtendedGame ¶
func (s *StorageManager) UpdateExtendedGame(id string, eGame *extendedgame.StorageRecord) error
UpdateExtendedGame updates the given extended game properties
func (*StorageManager) UpdateUser ¶
func (s *StorageManager) UpdateUser(user *users.StorageRecord) error
UpdateUser updates the given user
func (*StorageManager) UserIDsForGame ¶
func (s *StorageManager) UserIDsForGame(gameID string) []string
UserIDsForGame returns the given UserIds
func (*StorageManager) WithManagers ¶
func (s *StorageManager) WithManagers(managers []*boardgame.GameManager)
WithManagers does nothing