datastore

package
v0.0.0-...-f26991d Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2015 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidEntityType = datastore.ErrInvalidEntityType
	ErrInvalidKey        = datastore.ErrInvalidKey
	ErrNoSuchEntity      = datastore.ErrNoSuchEntity
)
View Source
var DataStoreConfig = &datastoreConfig{}
View Source
var DefaultPutSplitTreshold = 20
View Source
var DefaultTimeout = 30 * time.Second

Functions

func IsDatastoreError

func IsDatastoreError(e error) bool

func IsDone

func IsDone(e error) bool

Types

type DatastoreOperation

type DatastoreOperation struct {
	Namespace      string `json:"namespace"`
	Kind           string `json:"kind"`
	OperationLabel string `json:"operation_label"`
	OperationEnum  int    `json:"operation_enum"`
	NumOps         int    `json:"num_ops"`
}

type Driver

type Driver struct {
	Logger                 wcg.Logger
	Timeout                time.Duration
	EnableOperationLogging bool
	PutSplitThreshold      int
	// contains filtered or unexported fields
}

A wrapper object for datastore functions, which depends on appengine.Context and kind.

datastore.AFunc(ctx appengine.Context, kind string, args ...) can be replaced with driver.AFunc(args)

func NewDriver

func NewDriver(ctx appengine.Context, kind string, logger wcg.Logger) *Driver

func (*Driver) AllocateIDs

func (d *Driver) AllocateIDs(parent *datastore.Key, n int) (low, high int64, err error)

func (*Driver) Context

func (d *Driver) Context() appengine.Context

func (*Driver) DecodeKey

func (*Driver) DecodeKey(encoded string) (*datastore.Key, error)

func (*Driver) Delete

func (d *Driver) Delete(key *datastore.Key) error

func (*Driver) DeleteMulti

func (d *Driver) DeleteMulti(key []*datastore.Key) error

func (*Driver) Get

func (d *Driver) Get(key *datastore.Key, dst interface{}) error

func (*Driver) GetMulti

func (d *Driver) GetMulti(key []*datastore.Key, dst interface{}) error

func (*Driver) GetNamespace

func (d *Driver) GetNamespace() string

func (*Driver) Kind

func (d *Driver) Kind() string

func (*Driver) LoadStruct

func (d *Driver) LoadStruct(dst interface{}, c <-chan datastore.Property) error

func (*Driver) Namespace

func (d *Driver) Namespace(namespace string) *Driver

func (*Driver) NewIncompleteKey

func (d *Driver) NewIncompleteKey(parent *datastore.Key) *datastore.Key

func (*Driver) NewKey

func (d *Driver) NewKey(stringID string, intID int64, parent *datastore.Key) *datastore.Key

func (*Driver) NewQuery

func (d *Driver) NewQuery() *Query

func (*Driver) Put

func (d *Driver) Put(key *datastore.Key, src interface{}) (*datastore.Key, error)

func (*Driver) PutMulti

func (d *Driver) PutMulti(key []*datastore.Key, src interface{}) ([]*datastore.Key, error)

func (*Driver) RunInTransaction

func (d *Driver) RunInTransaction(f func(tc *Driver) error, opts *datastore.TransactionOptions) error

func (*Driver) SaveStruct

func (d *Driver) SaveStruct(src interface{}, c chan<- datastore.Property) error

func (*Driver) SetTimeout

func (d *Driver) SetTimeout(to time.Duration) *Driver

func (*Driver) SyncDelete

func (d *Driver) SyncDelete(key *datastore.Key) error

func (*Driver) SyncPut

func (d *Driver) SyncPut(key *datastore.Key, src Syncable) (*datastore.Key, error)

type Iterator

type Iterator struct {
	*datastore.Iterator
	// contains filtered or unexported fields
}

Iterator wraps datastore.Iterator

func (*Iterator) Cursor

func (i *Iterator) Cursor() (datastore.Cursor, error)

func (*Iterator) Next

func (i *Iterator) Next(dst interface{}) (*datastore.Key, error)

type Query

type Query struct {
	*datastore.Query
	// contains filtered or unexported fields
}

Query wraps datastore.Query

func (*Query) Ancestor

func (q *Query) Ancestor(ancestor *datastore.Key) *Query

func (*Query) Count

func (q *Query) Count() (int, error)

func (*Query) Distinct

func (q *Query) Distinct() *Query

func (*Query) End

func (q *Query) End(c datastore.Cursor) *Query

func (*Query) Filter

func (q *Query) Filter(filterStr string, value interface{}) *Query

func (*Query) GetAll

func (q *Query) GetAll(dst interface{}) ([]*datastore.Key, error)

func (*Query) KeysOnly

func (q *Query) KeysOnly() *Query

func (*Query) Limit

func (q *Query) Limit(limit int) *Query

func (*Query) Offset

func (q *Query) Offset(offset int) *Query

func (*Query) Order

func (q *Query) Order(fieldName string) *Query

func (*Query) Project

func (q *Query) Project(fieldNames ...string) *Query

func (*Query) Run

func (q *Query) Run() *Iterator

func (*Query) Start

func (q *Query) Start(c datastore.Cursor) *Query

type Syncable

type Syncable interface {
	// Returns the field name to keep timestamp for sync.
	TimestampFieldName() string
}

The struct passed to SyncPut or SyncDelete must implement Syncable interface. Sync is done by comparison by key and unix timestamp so the sync would not work well if you pass the massive same key with in a second.

Jump to

Keyboard shortcuts

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