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


C# Transaction.SystemTransaction方法代码示例

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


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

示例1: BTreeNode

		public BTreeNode(Transaction trans, Db4objects.Db4o.Internal.Btree.BTreeNode firstChild
			, Db4objects.Db4o.Internal.Btree.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:bvangrinsven,项目名称:db4o-net,代码行数:12,代码来源:BTreeNode.cs

示例2: 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:erdincay,项目名称:db4o,代码行数:27,代码来源:BTree.cs

示例3: EnsureActive

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

示例4: FinishTransaction

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

示例5: Add

		public virtual void Add(Transaction trans, IPreparedComparison preparedComparison
			, object key)
		{
			EnsureActive(trans);
			Enlist(trans);
			BTreeNode 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:erdincay,项目名称:db4o,代码行数:15,代码来源:BTree.cs

示例6: PrepareWrite

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

示例7: PrepareRead

		internal ByteArrayBuffer PrepareRead(Transaction trans)
		{
			BTreeNodeCacheEntry cacheEntry = Btree().CacheEntry(this);
			if (CanWrite())
			{
				return null;
			}
			if (IsNew())
			{
				return null;
			}
			Transaction systemTransaction = trans.SystemTransaction();
			ByteArrayBuffer 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:bvangrinsven,项目名称:db4o-net,代码行数:27,代码来源:BTreeNode.cs

示例8: Split

		private Db4objects.Db4o.Internal.Btree.BTreeNode Split(Transaction trans)
		{
			Db4objects.Db4o.Internal.Btree.BTreeNode res = new Db4objects.Db4o.Internal.Btree.BTreeNode
				(_btree, _btree._halfNodeSize, _isLeaf, _parentID, GetID(), _nextID);
			System.Array.Copy(_keys, _btree._halfNodeSize, res._keys, 0, _btree._halfNodeSize
				);
			for (int i = _btree._halfNodeSize; i < _keys.Length; i++)
			{
				_keys[i] = null;
			}
			if (_children != null)
			{
				res._children = new object[_btree.NodeSize()];
				System.Array.Copy(_children, _btree._halfNodeSize, res._children, 0, _btree._halfNodeSize
					);
				for (int i = _btree._halfNodeSize; i < _children.Length; i++)
				{
					_children[i] = null;
				}
			}
			_count = _btree._halfNodeSize;
			res.Write(trans.SystemTransaction());
			_btree.AddNode(res);
			int splitID = res.GetID();
			PointNextTo(trans, splitID);
			SetNextID(trans, splitID);
			if (_children != null)
			{
				for (int 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:bvangrinsven,项目名称:db4o-net,代码行数:40,代码来源:BTreeNode.cs

示例9: GetIndex

		// do nothing.
		public override BTree GetIndex(Transaction trans)
		{
			return ((LocalTransaction)trans.SystemTransaction()).CommitTimestampSupport().TimestampToId
				();
		}
开发者ID:Orvid,项目名称:SQLInterfaceCollection,代码行数:6,代码来源:CommitTimestampFieldMetadata.cs


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