コード例 #1
0
ファイル: testing_utils_test.go プロジェクト: martiniss/gae
func key(kind string, id interface{}, parent ...ds.Key) ds.Key {
	p := ds.Key(nil)
	if len(parent) > 0 {
		p = parent[0]
	}
	switch x := id.(type) {
	case string:
		return dskey.New(globalAppID, "ns", kind, x, 0, p)
	case int:
		return dskey.New(globalAppID, "ns", kind, "", int64(x), p)
	default:
		return dskey.New(globalAppID, "ns", kind, "invalid", 100, p)
	}
}
コード例 #2
0
ファイル: datastore_data.go プロジェクト: martiniss/gae
func (d *dataStoreData) entsKeyLocked(key ds.Key) (*memCollection, ds.Key) {
	coll := "ents:" + key.Namespace()
	ents := d.head.GetCollection(coll)
	if ents == nil {
		ents = d.head.SetCollection(coll, nil)
	}

	if dskey.Incomplete(key) {
		idKey := []byte(nil)
		if key.Parent() == nil {
			idKey = rootIDsKey(key.Kind())
		} else {
			idKey = groupIDsKey(key)
		}
		id := incrementLocked(ents, idKey)
		key = dskey.New(key.AppID(), key.Namespace(), key.Kind(), "", id, key.Parent())
	}

	return ents, key
}
コード例 #3
0
ファイル: datastore.go プロジェクト: martiniss/gae
func (d *dsImpl) NewKey(kind, stringID string, intID int64, parent ds.Key) ds.Key {
	return dskey.New(globalAppID, d.ns, kind, stringID, intID, parent)
}
コード例 #4
0
ファイル: datastore_data.go プロジェクト: martiniss/gae
func rootIDsKey(kind string) []byte {
	return keyBytes(dskey.New("", "", "__entity_root_ids__", kind, 0, nil))
}
コード例 #5
0
ファイル: datastore_data.go プロジェクト: martiniss/gae
func groupIDsKey(key ds.Key) []byte {
	return keyBytes(dskey.New("", "", "__entity_group_ids__", "", 1, dskey.Root(key)))
}
コード例 #6
0
ファイル: dummy.go プロジェクト: martiniss/gae
func (ds) NewKey(kind string, sid string, iid int64, par datastore.Key) datastore.Key {
	return dskey.New("dummy~appid", "", kind, sid, iid, par)
}