/// <exception cref="System.Exception"></exception>
		public virtual void Test()
		{
			int[] original = new int[] { 10, 99, 77 };
			PersistentIntegerArray arr = new PersistentIntegerArray(SlotChangeFactory.IdSystem
				, null, original);
			arr.Write(SystemTrans());
			int id = arr.GetID();
			Reopen();
			arr = new PersistentIntegerArray(SlotChangeFactory.IdSystem, null, id);
			arr.Read(SystemTrans());
			int[] copy = arr.Array();
			ArrayAssert.AreEqual(original, copy);
		}
Пример #2
0
		private void InitializeNew()
		{
			_bTree = new BTree(Transaction(), BTreeConfiguration(), new BTreeIdSystem.IdSlotMappingHandler
				());
			int idGeneratorValue = _container.Handlers.LowestValidId() - 1;
			_persistentState = new PersistentIntegerArray(SlotChangeFactory.IdSystem, _transactionalIdSystem
				, new int[] { _bTree.GetID(), idGeneratorValue, 0 });
			_persistentState.Write(Transaction());
			_parentIdSystem.ChildId(_persistentState.GetID());
		}
Пример #3
0
		private void InitializeExisting(int persistentArrayId)
		{
			_persistentState = new PersistentIntegerArray(SlotChangeFactory.IdSystem, _transactionalIdSystem
				, persistentArrayId);
			_persistentState.Read(Transaction());
			_bTree = new BTree(Transaction(), BTreeConfiguration(), BTreeId(), new BTreeIdSystem.IdSlotMappingHandler
				());
		}
		private void InitializeNew()
		{
			CreateBTrees(0, 0);
			_slotsByAddress.Write(Transaction());
			_slotsByLength.Write(Transaction());
			int[] ids = new int[] { _slotsByAddress.GetID(), _slotsByLength.GetID() };
			_idArray = new PersistentIntegerArray(SlotChangeFactory.FreeSpace, _idSystem, ids
				);
			_idArray.Write(Transaction());
			_file.SystemData().BTreeFreespaceId(_idArray.GetID());
		}
		private void InitializeExisting(int id)
		{
			_idArray = new PersistentIntegerArray(SlotChangeFactory.FreeSpace, _idSystem, id);
			_idArray.Read(Transaction());
			int[] ids = _idArray.Array();
			int addressId = ids[0];
			int lengthID = ids[1];
			CreateBTrees(addressId, lengthID);
			_slotsByAddress.Read(Transaction());
			_slotsByLength.Read(Transaction());
			_delegate.Read(_file, _file.SystemData().InMemoryFreespaceSlot());
		}