53 lines
937 B
Go
53 lines
937 B
Go
package storm
|
|
|
|
// Begin starts a new transaction.
|
|
func (n Node) Begin(writable bool) (*Node, error) {
|
|
var err error
|
|
|
|
n.tx, err = n.s.Bolt.Begin(writable)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &n, nil
|
|
}
|
|
|
|
// Rollback closes the transaction and ignores all previous updates.
|
|
func (n *Node) Rollback() error {
|
|
if n.tx == nil {
|
|
return ErrNotInTransaction
|
|
}
|
|
|
|
err := n.tx.Rollback()
|
|
n.tx = nil
|
|
|
|
return err
|
|
}
|
|
|
|
// Commit writes all changes to disk.
|
|
func (n *Node) Commit() error {
|
|
if n.tx == nil {
|
|
return ErrNotInTransaction
|
|
}
|
|
|
|
err := n.tx.Commit()
|
|
n.tx = nil
|
|
|
|
return err
|
|
}
|
|
|
|
// Begin starts a new transaction.
|
|
func (s *DB) Begin(writable bool) (*Node, error) {
|
|
return s.root.Begin(writable)
|
|
}
|
|
|
|
// Rollback closes the transaction and ignores all previous updates.
|
|
func (s *DB) Rollback() error {
|
|
return s.root.Rollback()
|
|
}
|
|
|
|
// Commit writes all changes to disk.
|
|
func (s *DB) Commit() error {
|
|
return s.root.Rollback()
|
|
}
|