public void SetNewRoot(IRootNode artRoot) { var newRoot = (RootNode12)artRoot; if (newRoot._root != _rootNode._root) { throw new ArgumentException("SetNewRoot allows only upgrades to writable identical root"); } _rootNode = (RootNode12)artRoot; }
public IRootNode CreateWritableTransaction() { if (_writable) { throw new InvalidOperationException("Only readonly root node could be CreateWritableTransaction"); } var node = new RootNode12(_impl); node._writable = true; node._root = _root; node.CommitUlong = CommitUlong; node.TransactionId = TransactionId + 1; node.TrLogFileId = TrLogFileId; node.TrLogOffset = TrLogOffset; node._ulongs = _ulongs == null ? null : (ulong[])_ulongs.Clone(); NodeUtils12.Reference(_root); return(node); }
public IRootNode Snapshot() { var snapshot = new RootNode12(_impl); snapshot._writable = false; snapshot._root = _root; snapshot.CommitUlong = CommitUlong; snapshot.TransactionId = TransactionId; snapshot.TrLogFileId = TrLogFileId; snapshot.TrLogOffset = TrLogOffset; snapshot._ulongs = _ulongs == null ? null : (ulong[])_ulongs.Clone(); if (_writable) { TransactionId++; } NodeUtils12.Reference(_root); return(snapshot); }
Cursor12(Cursor12 from) { _rootNode = from._rootNode; _stack = new StructList <CursorItem>(from._stack); }
public Cursor12(RootNode12 rootNode) { _rootNode = rootNode; _stack = new StructList <CursorItem>(); }