// Replaces a document in the bucket. func (b *Bucket) Replace(key string, value interface{}, cas Cas, expiry uint32) (Cas, error) { bytes, flags, err := b.transcoder.Encode(value) if err != nil { return 0, err } return b.hlpCasExec(func(cb ioCasCallback) (pendingOp, error) { op, err := b.client.Replace([]byte(key), bytes, flags, gocbcore.Cas(cas), expiry, gocbcore.StoreCallback(cb)) return op, err }) }
func (item *RemoveOp) execute(b *Bucket, signal chan BulkOp) { op, err := b.client.Remove([]byte(item.Key), gocbcore.Cas(item.Cas), func(cas gocbcore.Cas, err error) { item.Err = err if item.Err == nil { item.Cas = Cas(cas) } }) if err != nil { item.Err = err signal <- item } else { item.bulkOp.pendop = op } }
func (item *ReplaceOp) execute(b *Bucket, signal chan BulkOp) { bytes, flags, err := b.transcoder.Encode(item.Value) if err != nil { item.Err = err signal <- item } else { op, err := b.client.Replace([]byte(item.Key), bytes, flags, gocbcore.Cas(item.Cas), item.Expiry, func(cas gocbcore.Cas, err error) { item.Err = err if item.Err == nil { item.Cas = Cas(cas) } }) if err != nil { item.Err = err signal <- item } else { item.bulkOp.pendop = op } } }
// Removes a document from the bucket. func (b *Bucket) Remove(key string, cas Cas) (Cas, error) { return b.hlpCasExec(func(cb ioCasCallback) (pendingOp, error) { op, err := b.client.Remove([]byte(key), gocbcore.Cas(cas), gocbcore.RemoveCallback(cb)) return op, err }) }
// Touches a document, specifying a new expiry time for it. func (b *Bucket) Touch(key string, cas Cas, expiry uint32) (Cas, error) { return b.hlpCasExec(func(cb ioCasCallback) (pendingOp, error) { op, err := b.client.Touch([]byte(key), gocbcore.Cas(cas), expiry, gocbcore.TouchCallback(cb)) return op, err }) }