当前位置: 首页>>代码示例>>C#>>正文


C# Transaction.SystemTransaction方法代码示例

本文整理汇总了C#中Transaction.SystemTransaction方法的典型用法代码示例。如果您正苦于以下问题:C# Transaction.SystemTransaction方法的具体用法?C# Transaction.SystemTransaction怎么用?C# Transaction.SystemTransaction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Transaction的用法示例。


在下文中一共展示了Transaction.SystemTransaction方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BTree

 public BTree(Transaction trans, BTreeConfiguration config, int id, IIndexable4 keyHandler
     , int treeNodeSize) : base(config._idSystem)
 {
     _config = config;
     if (null == keyHandler)
     {
         throw new ArgumentNullException();
     }
     _nodeSize = treeNodeSize;
     _nodeCache = CacheFactory.NewLRUIntCache(config._cacheSize);
     _halfNodeSize = _nodeSize/2;
     _nodeSize = _halfNodeSize*2;
     _keyHandler = keyHandler;
     SetID(id);
     if (IsNew())
     {
         SetStateDirty();
         _root = new BTreeNode(this, 0, true, 0, 0, 0);
         _root.Write(trans.SystemTransaction());
         AddNode(_root);
         Write(trans.SystemTransaction());
     }
     else
     {
         SetStateDeactivated();
     }
 }
开发者ID:masroore,项目名称:db4o,代码行数:27,代码来源:BTree.cs

示例2: BTreeNode

 public BTreeNode(Transaction trans, BTreeNode firstChild
     , BTreeNode secondChild) : this(firstChild._btree
         , 2, false, 0, 0, 0)
 {
     _keys[0] = firstChild._keys[0];
     _children[0] = firstChild;
     _keys[1] = secondChild._keys[0];
     _children[1] = secondChild;
     Write(trans.SystemTransaction());
     firstChild.SetParentID(trans, GetID());
     secondChild.SetParentID(trans, GetID());
 }
开发者ID:masroore,项目名称:db4o,代码行数:12,代码来源:BTreeNode.cs

示例3: EnsureActive

 private void EnsureActive(Transaction trans)
 {
     if (!IsActive())
     {
         Read(trans.SystemTransaction());
     }
 }
开发者ID:masroore,项目名称:db4o,代码行数:7,代码来源:BTree.cs

示例4: FinishTransaction

 private void FinishTransaction(Transaction trans)
 {
     var systemTransaction = trans.SystemTransaction();
     WriteAllNodes(systemTransaction);
     Write(systemTransaction);
     Purge();
 }
开发者ID:masroore,项目名称:db4o,代码行数:7,代码来源:BTree.cs

示例5: Add

 public virtual void Add(Transaction trans, IPreparedComparison preparedComparison
     , object key)
 {
     EnsureActive(trans);
     Enlist(trans);
     var rootOrSplit = _root.Add(trans, preparedComparison, key);
     if (rootOrSplit != null && rootOrSplit != _root)
     {
         EnsureDirty(trans);
         _root = new BTreeNode(trans, _root, rootOrSplit);
         _root.Write(trans.SystemTransaction());
         AddNode(_root);
     }
     ConvertCacheEvictedNodesToReadMode();
 }
开发者ID:masroore,项目名称:db4o,代码行数:15,代码来源:BTree.cs

示例6: PrepareWrite

 internal void PrepareWrite(Transaction trans)
 {
     if (_dead)
     {
         return;
     }
     var cacheEntry = Btree().CacheEntry(this);
     if (CanWrite())
     {
         return;
     }
     var buffer = cacheEntry.Buffer();
     if (buffer != null)
     {
         buffer.Seek(0);
         Read(trans.SystemTransaction(), buffer);
         cacheEntry.Buffer(null);
     }
     else
     {
         Read(trans.SystemTransaction());
     }
     _btree.AddToProcessing(this);
 }
开发者ID:masroore,项目名称:db4o,代码行数:24,代码来源:BTreeNode.cs

示例7: PrepareRead

 internal ByteArrayBuffer PrepareRead(Transaction trans)
 {
     var cacheEntry = Btree().CacheEntry(this);
     if (CanWrite())
     {
         return null;
     }
     if (IsNew())
     {
         return null;
     }
     var systemTransaction = trans.SystemTransaction();
     var buffer = cacheEntry.Buffer();
     if (buffer != null)
     {
         // Cache hit, still unread
         buffer.Seek(0);
         Read(systemTransaction, buffer);
         cacheEntry.Buffer(null);
         _btree.AddToProcessing(this);
         return null;
     }
     buffer = ProduceReadBuffer(systemTransaction);
     ReadNodeHeader(buffer);
     cacheEntry.Buffer(buffer);
     return buffer;
 }
开发者ID:masroore,项目名称:db4o,代码行数:27,代码来源:BTreeNode.cs

示例8: Split

 private BTreeNode Split(Transaction trans)
 {
     var res = new BTreeNode
         (_btree, _btree._halfNodeSize, _isLeaf, _parentID, GetID(), _nextID);
     Array.Copy(_keys, _btree._halfNodeSize, res._keys, 0, _btree._halfNodeSize
         );
     for (var i = _btree._halfNodeSize; i < _keys.Length; i++)
     {
         _keys[i] = null;
     }
     if (_children != null)
     {
         res._children = new object[_btree.NodeSize()];
         Array.Copy(_children, _btree._halfNodeSize, res._children, 0, _btree._halfNodeSize
             );
         for (var i = _btree._halfNodeSize; i < _children.Length; i++)
         {
             _children[i] = null;
         }
     }
     _count = _btree._halfNodeSize;
     res.Write(trans.SystemTransaction());
     _btree.AddNode(res);
     var splitID = res.GetID();
     PointNextTo(trans, splitID);
     SetNextID(trans, splitID);
     if (_children != null)
     {
         for (var i = 0; i < _btree._halfNodeSize; i++)
         {
             if (res._children[i] == null)
             {
                 break;
             }
             res.Child(i).SetParentID(trans, splitID);
         }
     }
     _btree.NotifySplit(trans, this, res);
     return res;
 }
开发者ID:masroore,项目名称:db4o,代码行数:40,代码来源:BTreeNode.cs


注:本文中的Transaction.SystemTransaction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。