Ejemplo n.º 1
0
        //
        // Public Methods
        //

        public long GetHeader(int field)
        {
            if (isDisposed)
            {
                throw new ObjectDisposedException("Block");
            }

            // Validate field number
            if (field < 0)
            {
                throw new IndexOutOfRangeException();
            }
            if (field >= (storage.BlockHeaderSize / 8))
            {
                throw new ArgumentException("Invalid field: " + field);
            }

            // Check from cache, if it is there then return it
            if (field < cachedHeaderValue.Length)
            {
                if (cachedHeaderValue[field] == null)
                {
                    cachedHeaderValue[field] = BufferHelper.ReadBufferInt64(firstSector, field * 8);
                }
                return((long)cachedHeaderValue[field]);
            }
            // Otherwise return straight away
            else
            {
                return(BufferHelper.ReadBufferInt64(firstSector, field * 8));
            }
        }
Ejemplo n.º 2
0
        public long Deserialize(byte[] buffer, int offset, int length)
        {
            if (length != 8)
            {
                throw new ArgumentException("Invalid length: " + length);
            }

            return(BufferHelper.ReadBufferInt64(buffer, offset));
        }