public virtual Slot AllocateTransactionLogSlot(int length)
        {
            Slot slot = _delegate.AllocateTransactionLogSlot(_blockConverter.BytesToBlocks(length
                                                                                           ));

            if (slot == null)
            {
                return(null);
            }
            return(_blockConverter.ToNonBlockedLength(slot));
        }
예제 #2
0
        public override Slot AllocateSlot(bool appendToFile, int slotChangeCount)
        {
            int transactionLogByteCount        = TransactionLogSlotLength(slotChangeCount);
            IFreespaceManager freespaceManager = _container.FreespaceManager();

            if (!appendToFile && freespaceManager != null)
            {
                Slot slot = freespaceManager.AllocateTransactionLogSlot(transactionLogByteCount);
                if (slot != null)
                {
                    return(slot);
                }
            }
            return(_container.AppendBytes(transactionLogByteCount));
        }