datastore

package
v0.0.0-...-6440b20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2014 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SORT_NONE   = "none"
	SORT_KILLS  = "kills"
	SORT_DEATHS = "deaths"
	SORT_SCORE  = "score"
	SORT_WINS   = "wins"
	SORT_LOSSES = "losses"
	SORT_PLAYS  = "plays"
)
View Source
const (
	STORE_LEVELDB   = "leveldb"
	LEVELDB_VERSION = 1

	LEVEL_ENCODER_GOB    = "gob"
	LEVEL_ENCODER_MSGPAK = "msgpack"
)
View Source
const (
	STORE_NONE = "none"
)

Variables

View Source
var ErrServerNotFound = fmt.Errorf("Server not found.")
View Source
var ErrUserNotFound = fmt.Errorf("User not found.")

Functions

func RegisterStore

func RegisterStore(name string, initializer DataStoreInit)

Types

type DataStore

type DataStore interface {
	GetUsers(string, int, int) ([]*User, error)
	GetUsersAdjacent(*User, string, int) ([]*User, error)
	GetUser(string) (*User, error)
	PutUser(*User) error
	DeleteUser(*User) error
	NumUsers() (int, error)

	GetServers() ([]*Server, error)
	GetServer(string) (*Server, error)
	PutServer(*Server) error
	DeleteServer(*Server) error
	NumServers() (int, error)

	GetFriends(*User) ([]*User, error)
	AddFriend(*User, *User) error
	RemoveFriend(*User, *User) error

	Close()
}

func NewLevelDataStore

func NewLevelDataStore(conf map[string]string) (DataStore, error)

func NewNoneDataStore

func NewNoneDataStore(conf map[string]string) (DataStore, error)

type DataStoreInit

type DataStoreInit func(map[string]string) (DataStore, error)

func GetStore

func GetStore(name string) (DataStoreInit, error)

type LevelDataStore

type LevelDataStore struct {
	// contains filtered or unexported fields
}

func (*LevelDataStore) AddFriend

func (lds *LevelDataStore) AddFriend(u *User, f *User) error

func (*LevelDataStore) Close

func (lds *LevelDataStore) Close()

func (*LevelDataStore) DeleteServer

func (lds *LevelDataStore) DeleteServer(s *Server) error

func (*LevelDataStore) DeleteUser

func (lds *LevelDataStore) DeleteUser(u *User) error

func (*LevelDataStore) GetFriends

func (lds *LevelDataStore) GetFriends(u *User) ([]*User, error)

func (*LevelDataStore) GetServer

func (lds *LevelDataStore) GetServer(serverAddr string) (*Server, error)

func (*LevelDataStore) GetServers

func (lds *LevelDataStore) GetServers() ([]*Server, error)

func (*LevelDataStore) GetUser

func (lds *LevelDataStore) GetUser(username string) (*User, error)

func (*LevelDataStore) GetUsers

func (lds *LevelDataStore) GetUsers(sort string, limit int, skip int) ([]*User, error)

func (*LevelDataStore) GetUsersAdjacent

func (lds *LevelDataStore) GetUsersAdjacent(user *User, sort string, spread int) ([]*User, error)

func (*LevelDataStore) NumServers

func (lds *LevelDataStore) NumServers() (int, error)

func (*LevelDataStore) NumUsers

func (lds *LevelDataStore) NumUsers() (int, error)

func (*LevelDataStore) PutServer

func (lds *LevelDataStore) PutServer(s *Server) error

func (*LevelDataStore) PutUser

func (lds *LevelDataStore) PutUser(u *User) error

func (*LevelDataStore) RemoveFriend

func (lds *LevelDataStore) RemoveFriend(u *User, f *User) error

type NoneDataStore

type NoneDataStore struct{}

func (*NoneDataStore) AddFriend

func (n *NoneDataStore) AddFriend(*User, *User) error

func (*NoneDataStore) Close

func (n *NoneDataStore) Close()

func (*NoneDataStore) DeleteServer

func (n *NoneDataStore) DeleteServer(*Server) error

func (*NoneDataStore) DeleteUser

func (n *NoneDataStore) DeleteUser(*User) error

func (*NoneDataStore) GetFriends

func (n *NoneDataStore) GetFriends(*User) ([]*User, error)

func (*NoneDataStore) GetServer

func (n *NoneDataStore) GetServer(string) (*Server, error)

func (*NoneDataStore) GetServers

func (n *NoneDataStore) GetServers() ([]*Server, error)

func (*NoneDataStore) GetUser

func (n *NoneDataStore) GetUser(string) (*User, error)

func (*NoneDataStore) GetUsers

func (n *NoneDataStore) GetUsers(string, int, int) ([]*User, error)

func (*NoneDataStore) GetUsersAdjacent

func (n *NoneDataStore) GetUsersAdjacent(*User, string, int) ([]*User, error)

func (*NoneDataStore) NumServers

func (n *NoneDataStore) NumServers() (int, error)

func (*NoneDataStore) NumUsers

func (n *NoneDataStore) NumUsers() (int, error)

func (*NoneDataStore) PutServer

func (n *NoneDataStore) PutServer(*Server) error

func (*NoneDataStore) PutUser

func (n *NoneDataStore) PutUser(*User) error

func (*NoneDataStore) RemoveFriend

func (n *NoneDataStore) RemoveFriend(*User, *User) error

type Server

type Server struct {
	Hostname  string    `json:"hostname" msgpack:"h"`
	Port      int       `json:"port" msgpack:"p"`
	Users     int64     `json:"users" msgpack:"u"`
	Slots     int       `json:"slots" msgpack:"s"`
	Name      string    `json:"name" msgpack:"n"`
	Mode      string    `json:"mode" msgpack:"m"`
	ForceAuth bool      `json:"force_auth" msgpack:"fa"`
	Updated   time.Time `json:"updated" msgpack:"up"`
}

func (Server) Address

func (s Server) Address() string

type User

type User struct {
	Id       []byte `msgpack:"id" json:"-"`
	Name     string `msgpack:"n" json:"name"`
	Password []byte `msgpack:"p" json:"-"`

	Status *UserStatus `msgpack:"us" json:"status"`

	Kills  int64 `msgpack:"k" json:"kills"`
	Deaths int64 `msgpack:"d" json:"deaths"`
	Score  int64 `msgpack:"s" json:"score"`

	Wins   int64 `msgpack:"w" json:"wins"`
	Losses int64 `msgpack:"l" json:"losses"`
	Plays  int64 `msgpack:"pl" json:"games_played"`

	Temporary bool `msgpack:"tmp" json:"temporary"`
}

func NewUser

func NewUser(username, password string) *User

func (*User) CheckPassword

func (u *User) CheckPassword(password string) bool

type UserStatus

type UserStatus struct {
	Server   string `msgpack:"s" json:"server"`
	Location string `msgpack:"l" json:"location"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL