1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package files
import "fmt"
func (tx *Transaction) resolveTarget(op txOp) (resolvedWriteTarget, error) {
switch op.kind {
case txCreate:
return tx.resolveOrdinaryTarget(op.name, true)
case txUpdate, txDelete, txVerify:
return tx.resolveOrdinaryTarget(op.name, false)
case txCreateSymbolic, txUpdateSymbolic, txDeleteSymbolic, txVerifySymbolic:
refState, err := tx.directRead(op.name)
if err != nil {
return resolvedWriteTarget{}, err
}
return resolvedWriteTarget{name: op.name, loc: tx.store.loosePath(op.name), ref: refState}, nil
default:
return resolvedWriteTarget{}, fmt.Errorf("refstore/files: unsupported transaction operation %d", op.kind)
}
}
|