// // 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)); } }
public long Deserialize(byte[] buffer, int offset, int length) { if (length != 8) { throw new ArgumentException("Invalid length: " + length); } return(BufferHelper.ReadBufferInt64(buffer, offset)); }