本文整理汇总了Golang中github.com/google/cayley/graph/proto.NodeData.Size_方法的典型用法代码示例。如果您正苦于以下问题:Golang NodeData.Size_方法的具体用法?Golang NodeData.Size_怎么用?Golang NodeData.Size_使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/google/cayley/graph/proto.NodeData
的用法示例。
在下文中一共展示了NodeData.Size_方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: UpdateValueKeyBy
// UpdateValueKeyBy ??
func (qs *QuadStore) UpdateValueKeyBy(name string, amount int64, tx *lmdb.Txn) error {
value := proto.NodeData{
Name: name,
Size_: amount,
}
key := qs.createValueKeyFor(name)
data, err := tx.Get(qs.nodeDBI, key)
if err == nil {
// Node exists in the database -- unmarshal and update.
var oldvalue proto.NodeData
err := oldvalue.Unmarshal(data)
if err != nil {
glog.Errorf("Error: couldn't reconstruct value: %v", err)
return err
}
oldvalue.Size_ += amount
value = oldvalue
}
// Are we deleting something?
if value.Size_ <= 0 {
value.Size_ = 0
}
// Repackage and rewrite.
bytes, err := value.Marshal()
if err != nil {
glog.Errorf("Couldn't write to buffer for value %s: %s", name, err)
return err
}
err = tx.Put(qs.nodeDBI, key, bytes, 0)
return err
}