Documentation
¶
Index ¶
- Variables
- func LoadStruct(ctx context.Context, dst interface{}, p []Property) error
- type Batch
- type CacheInfo
- type CacheStrategy
- type Client
- type ClientGenerator
- type ClientOption
- type Commit
- type Cursor
- type Entity
- type ErrFieldMismatch
- type GeoPoint
- type Iterator
- type Key
- type KeyLoader
- type MultiError
- type PendingKey
- type Property
- type PropertyList
- type PropertyLoadSaver
- type PropertyTranslator
- type PutResult
- type Query
- type QueryDump
- type QueryFilterCondition
- type Transaction
- type TransactionBatch
- func (b *TransactionBatch) Delete(key Key) chan error
- func (b *TransactionBatch) Exec() error
- func (b *TransactionBatch) Get(key Key, dst interface{}) chan error
- func (b *TransactionBatch) Put(key Key, src interface{}) chan *TransactionPutResult
- func (b *TransactionBatch) UnwrapPutResult(r *TransactionPutResult) (PendingKey, error)
- type TransactionPutResult
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidEntityType = errors.New("datastore: invalid entity type") ErrInvalidKey = errors.New("datastore: invalid key") ErrNoSuchEntity = errors.New("datastore: no such entity") )
var ErrConcurrentTransaction = errors.New("datastore: concurrent transaction")
var LoadEntity = loadEntity
TODO hide LoadEntity project outside
var SaveEntity = saveEntity
var SuppressErrFieldMismatch = true
Functions ¶
func LoadStruct ¶
LoadStruct loads the properties from p to dst. dst must be a struct pointer.
The values of dst's unmatched struct fields are not modified, and matching slice-typed fields are not reset before appending to them. In particular, it is recommended to pass a pointer to a zero valued struct on each LoadStruct call.
Types ¶
type CacheInfo ¶ added in v0.7.0
type CacheInfo struct {
Context context.Context
Client Client
Transaction Transaction
Next CacheStrategy
}
type CacheStrategy ¶ added in v0.7.0
type CacheStrategy interface {
PutMultiWithoutTx(info *CacheInfo, keys []Key, psList []PropertyList) ([]Key, error)
PutMultiWithTx(info *CacheInfo, keys []Key, psList []PropertyList) ([]PendingKey, error)
GetMultiWithoutTx(info *CacheInfo, keys []Key, psList []PropertyList) error
GetMultiWithTx(info *CacheInfo, keys []Key, psList []PropertyList) error
DeleteMultiWithoutTx(info *CacheInfo, keys []Key) error
DeleteMultiWithTx(info *CacheInfo, keys []Key) error
PostCommit(info *CacheInfo, tx Transaction, commit Commit) error
PostRollback(info *CacheInfo, tx Transaction) error
Run(info *CacheInfo, q Query, qDump *QueryDump) Iterator
GetAll(info *CacheInfo, q Query, qDump *QueryDump, psList *[]PropertyList) ([]Key, error)
Next(info *CacheInfo, q Query, qDump *QueryDump, iter Iterator, ps *PropertyList) (Key, error)
}
type Client ¶
type Client interface {
Get(ctx context.Context, key Key, dst interface{}) error
GetMulti(ctx context.Context, keys []Key, dst interface{}) error
Put(ctx context.Context, key Key, src interface{}) (Key, error)
PutMulti(ctx context.Context, keys []Key, src interface{}) ([]Key, error)
Delete(ctx context.Context, key Key) error
DeleteMulti(ctx context.Context, keys []Key) error
NewTransaction(ctx context.Context) (Transaction, error)
RunInTransaction(ctx context.Context, f func(tx Transaction) error) (Commit, error)
Run(ctx context.Context, q Query) Iterator
AllocatedIDs(ctx context.Context, keys []Key) ([]Key, error)
Count(ctx context.Context, q Query) (int, error)
GetAll(ctx context.Context, q Query, dst interface{}) ([]Key, error)
IncompleteKey(kind string, parent Key) Key
NameKey(kind, name string, parent Key) Key
IDKey(kind string, id int64, parent Key) Key
NewQuery(kind string) Query
Close() error
DecodeKey(encoded string) (Key, error)
DecodeCursor(s string) (Cursor, error)
Batch() *Batch
AppendCacheStrategy(strategy CacheStrategy) // NOTE First-In Last-Apply
RemoveCacheStrategy(strategy CacheStrategy) bool
SwapContext(ctx context.Context) context.Context
}
type ClientGenerator ¶
type ClientGenerator func(ctx context.Context, opts ...ClientOption) (Client, error)
var FromContext ClientGenerator
type ClientOption ¶
type ClientOption interface {
Apply(*internal.ClientSettings)
}
func WithCredentialsFile ¶
func WithCredentialsFile(filename string) ClientOption
WithCredentialsFile returns a ClientOption that authenticates API calls with the given service account or refresh token JSON credentials file.
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) ClientOption
WithHTTPClient returns a ClientOption that specifies the HTTP client to use as the basis of communications. This option may only be used with services that support HTTP as their communication transport. When used, the WithHTTPClient option takes precedent over all other supplied options.
func WithProjectID ¶
func WithProjectID(projectID string) ClientOption
func WithScopes ¶
func WithScopes(scope ...string) ClientOption
WithScopes returns a ClientOption that overrides the default OAuth2 scopes to be used for a service.
func WithTokenSource ¶
func WithTokenSource(s oauth2.TokenSource) ClientOption
WithTokenSource returns a ClientOption that specifies an OAuth2 token source to be used as the basis for authentication.
type Commit ¶
type Commit interface {
Key(p PendingKey) Key
}
type ErrFieldMismatch ¶
ErrFieldMismatch is returned when a field is to be loaded into a different type than the one it was stored from, or when a field is missing or unexported in the destination struct. StructType is the type of the struct pointed to by the destination argument passed to Get or to Iterator.Next.
func (*ErrFieldMismatch) Error ¶
func (e *ErrFieldMismatch) Error() string
type KeyLoader ¶
type KeyLoader interface {
PropertyLoadSaver
LoadKey(ctx context.Context, k Key) error
}
type MultiError ¶
type MultiError []error
MultiError is returned by batch operations when there are errors with particular elements. Errors will be in a one-to-one correspondence with the input elements; successful elements will have a nil entry.
func (MultiError) Error ¶
func (m MultiError) Error() string
type PendingKey ¶
type PropertyList ¶
type PropertyList []Property
type PropertyLoadSaver ¶
type PropertyTranslator ¶
type Query ¶
type Query interface {
Ancestor(ancestor Key) Query
EventualConsistency() Query
Namespace(ns string) Query
Transaction(t Transaction) Query
Filter(filterStr string, value interface{}) Query
Order(fieldName string) Query
Project(fieldNames ...string) Query
Distinct() Query
// NOT IMPLEMENTED ON APPENGINE DistinctOn(fieldNames ...string) *Query
KeysOnly() Query
Limit(limit int) Query
Offset(offset int) Query
Start(c Cursor) Query
End(c Cursor) Query
Dump() *QueryDump
}
type QueryDump ¶ added in v0.7.0
type QueryFilterCondition ¶ added in v0.7.0
type QueryFilterCondition struct {
Filter string
Value interface{}
}
type Transaction ¶
type Transaction interface {
Get(key Key, dst interface{}) error
GetMulti(keys []Key, dst interface{}) error
Put(key Key, src interface{}) (PendingKey, error)
PutMulti(keys []Key, src interface{}) ([]PendingKey, error)
Delete(key Key) error
DeleteMulti(keys []Key) error
Commit() (Commit, error)
Rollback() error
Batch() *TransactionBatch
}
type TransactionBatch ¶
type TransactionBatch struct {
Transaction Transaction
// contains filtered or unexported fields
}
func (*TransactionBatch) Delete ¶
func (b *TransactionBatch) Delete(key Key) chan error
func (*TransactionBatch) Exec ¶
func (b *TransactionBatch) Exec() error
func (*TransactionBatch) Get ¶
func (b *TransactionBatch) Get(key Key, dst interface{}) chan error
func (*TransactionBatch) Put ¶
func (b *TransactionBatch) Put(key Key, src interface{}) chan *TransactionPutResult
func (*TransactionBatch) UnwrapPutResult ¶
func (b *TransactionBatch) UnwrapPutResult(r *TransactionPutResult) (PendingKey, error)
type TransactionPutResult ¶
type TransactionPutResult struct {
PendingKey PendingKey
Err error
}
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cache
|
|
|
c/atomiccache
Package atomiccache provides a map-based cache that supports very fast reads.
|
Package atomiccache provides a map-based cache that supports very fast reads. |
|
c/fields
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity.
|
Package fields provides a view of the fields of a struct that follows the Go rules, amended to consider tags and case insensitivity. |
|
pb/memcache
Package memcache is a generated protocol buffer package.
|
Package memcache is a generated protocol buffer package. |