本文整理汇总了Golang中github.com/attic-labs/noms/ref.Ref类的典型用法代码示例。如果您正苦于以下问题:Golang Ref类的具体用法?Golang Ref怎么用?Golang Ref使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Ref类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: makeNamespacedKey
func (s *DynamoStore) makeNamespacedKey(r ref.Ref) []byte {
// This is semantically `return append(s.namespace, r.DigestSlice()...)`, but it seemed like we'd be doing this a LOT, and we know how much space we're going to need anyway. So, pre-allocate a slice and then copy into it.
refSlice := r.DigestSlice()
key := make([]byte, s.namespaceLen+len(refSlice))
copy(key, s.namespace)
copy(key[s.namespaceLen:], refSlice)
return key
}
开发者ID:arv,项目名称:noms-old,代码行数:8,代码来源:dynamo_store.go
示例2: updateRootByKey
func (l *internalLevelDBStore) updateRootByKey(key []byte, current, last ref.Ref) bool {
l.mu.Lock()
defer l.mu.Unlock()
if last != l.rootByKey(key) {
return false
}
// Sync: true write option should fsync memtable data to disk
err := l.db.Put(key, []byte(current.String()), &opt.WriteOptions{Sync: true})
d.Chk.NoError(err)
return true
}
开发者ID:arv,项目名称:noms-old,代码行数:12,代码来源:leveldb_store.go
示例3: requestRef
func (h *HTTPStore) requestRef(r ref.Ref, method string, body io.Reader) *http.Response {
url := *h.host
url.Path = httprouter.CleanPath(h.host.Path + constants.RefPath)
if !r.IsEmpty() {
url.Path = path.Join(url.Path, r.String())
}
header := http.Header{}
if body != nil {
header.Set("Content-Type", "application/octet-stream")
}
req := h.newRequest(method, url.String(), body, header)
res, err := h.httpClient.Do(req)
d.Chk.NoError(err)
return res
}
开发者ID:arv,项目名称:noms-old,代码行数:17,代码来源:http_store.go
示例4: main
func main() {
cpuCount := runtime.NumCPU()
runtime.GOMAXPROCS(cpuCount)
flag.Parse()
sourceStore, ok := sourceStoreFlags.CreateDataStore()
sink := sinkDsFlags.CreateDataset()
if !ok || sink == nil || *p == 0 || *sourceObject == "" {
flag.Usage()
return
}
defer sourceStore.Close()
defer sink.Store().Close()
err := d.Try(func() {
if util.MaybeStartCPUProfile() {
defer util.StopCPUProfile()
}
sourceRef := ref.Ref{}
if r, ok := ref.MaybeParse(*sourceObject); ok {
if sourceStore.Has(r) {
sourceRef = r
}
} else {
if c, ok := sourceStore.MaybeHead(*sourceObject); ok {
sourceRef = c.Ref()
}
}
d.Exp.False(sourceRef.IsEmpty(), "Unknown source object: %s", *sourceObject)
var err error
*sink, err = sink.Pull(sourceStore, sourceRef, int(*p))
util.MaybeWriteMemProfile()
d.Exp.NoError(err)
})
if err != nil {
log.Fatal(err)
}
}
开发者ID:arv,项目名称:noms-old,代码行数:43,代码来源:shove.go
示例5: CopyReachableChunksP
// CopyReachableChunksP copies to |sink| all chunks reachable from (and including) |r|, but that are not in the subtree rooted at |exclude|
func CopyReachableChunksP(source, sink DataStore, sourceRef, exclude ref.Ref, concurrency int) {
excludeRefs := map[ref.Ref]bool{}
if !exclude.IsEmpty() {
mu := sync.Mutex{}
excludeCallback := func(r ref.Ref) bool {
mu.Lock()
excludeRefs[r] = true
mu.Unlock()
return false
}
walk.SomeChunksP(exclude, source, excludeCallback, concurrency)
}
copyCallback := func(r ref.Ref) bool {
return excludeRefs[r]
}
copyWorker(source, sink.transitionalChunkSink(), sourceRef, copyCallback, concurrency)
}
开发者ID:arv,项目名称:noms-old,代码行数:21,代码来源:pull.go
示例6: UpdateRoot
func (s *DynamoStore) UpdateRoot(current, last ref.Ref) bool {
s.requestWg.Wait()
putArgs := dynamodb.PutItemInput{
TableName: aws.String(s.table),
Item: map[string]*dynamodb.AttributeValue{
refAttr: {B: s.rootKey},
chunkAttr: {B: current.DigestSlice()},
compAttr: {S: aws.String(noneValue)},
},
}
if last.IsEmpty() {
putArgs.ConditionExpression = aws.String(valueNotExistsExpression)
} else {
putArgs.ConditionExpression = aws.String(valueEqualsExpression)
putArgs.ExpressionAttributeValues = map[string]*dynamodb.AttributeValue{
":prev": {B: last.DigestSlice()},
}
}
_, err := s.ddbsvc.PutItem(&putArgs)
if err != nil {
if awsErr, ok := err.(awserr.Error); ok {
if awsErr.Code() == "ConditionalCheckFailedException" {
return false
}
d.Chk.NoError(awsErr)
} else {
d.Chk.NoError(err)
}
}
return true
}
开发者ID:arv,项目名称:noms-old,代码行数:35,代码来源:dynamo_store.go
示例7: requestRoot
func (h *HTTPStore) requestRoot(method string, current, last ref.Ref) *http.Response {
u := *h.host
u.Path = httprouter.CleanPath(h.host.Path + constants.RootPath)
if method == "POST" {
d.Exp.False(current.IsEmpty())
params := url.Values{}
params.Add("last", last.String())
params.Add("current", current.String())
u.RawQuery = params.Encode()
}
req := h.newRequest(method, u.String(), nil, nil)
res, err := h.httpClient.Do(req)
d.Chk.NoError(err)
return res
}
开发者ID:arv,项目名称:noms-old,代码行数:18,代码来源:http_store.go
示例8: assertInputInStore
func assertInputInStore(input string, ref ref.Ref, s ChunkStore, assert *assert.Assertions) {
chunk := s.Get(ref)
assert.False(chunk.IsEmpty(), "Shouldn't get empty chunk for %s", ref.String())
assert.Equal(input, string(chunk.Data()))
}
开发者ID:arv,项目名称:noms-old,代码行数:5,代码来源:test_utils.go
示例9: assertInputNotInStore
func assertInputNotInStore(input string, ref ref.Ref, s ChunkStore, assert *assert.Assertions) {
data := s.Get(ref)
assert.Nil(data, "Shouldn't have gotten data for %s", ref.String())
}
开发者ID:arv,项目名称:noms-old,代码行数:4,代码来源:test_utils.go
示例10: writeRef
func (w *jsonArrayWriter) writeRef(r ref.Ref) {
w.write(r.String())
}
开发者ID:arv,项目名称:noms-old,代码行数:3,代码来源:encode_noms_value.go
示例11: toChunkKey
func (l *LevelDBStore) toChunkKey(r ref.Ref) []byte {
digest := r.DigestSlice()
out := make([]byte, len(l.chunkPrefix), len(l.chunkPrefix)+len(digest))
copy(out, l.chunkPrefix)
return append(out, digest...)
}
开发者ID:arv,项目名称:noms-old,代码行数:6,代码来源:leveldb_store.go
示例12: ToTag
// ToTag replaces "-" characters in s with "_", so it can be used in a Go identifier.
// TODO: replace other illegal chars as well?
func ToTag(r ref.Ref) string {
return strings.Replace(r.String()[0:12], "-", "_", -1)
}
开发者ID:arv,项目名称:noms-old,代码行数:5,代码来源:generate.go
示例13: RefToJSIdentfierName
// RefToJSIdentfierName generates an identifier name representing a Ref. ie. `sha1_abc1234`.
func (gen *Generator) RefToJSIdentfierName(r ref.Ref) string {
return strings.Replace(r.String(), "-", "_", 1)[0:12]
}
开发者ID:arv,项目名称:noms-old,代码行数:4,代码来源:generate.go
示例14: EnsureRef
func EnsureRef(r *ref.Ref, v Value) ref.Ref {
if r.IsEmpty() {
*r = getRef(v)
}
return *r
}
开发者ID:arv,项目名称:noms-old,代码行数:6,代码来源:get_ref.go
注:本文中的github.com/attic-labs/noms/ref.Ref类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论