private void InitializeMembers(StreamingContext context) { this.baseStream = null; this.ownsBaseStream = false; this.forwardStream = null; this.fileMode = FitsFileMode.Unknown; this.path = null; this.endianness = Endianness.LittleEndian; this.bitConverter = null; this.hdus = new List<HduBase>(); this.hduCounter = -1; }
protected void OpenForWrite() { if (FileMode != FitsFileMode.Write) { throw new InvalidOperationException(); } if (baseStream == null) { OpenOwnStream(); } forwardStream = new SeekForwardStream(new DetachedStream(baseStream)); CreateBitConverter(); }
private void CopyMembers(FitsFile old) { this.baseStream = null; this.ownsBaseStream = false; this.forwardStream = null; this.fileMode = old.fileMode; this.path = old.path; this.endianness = old.endianness; this.bitConverter = old.bitConverter; // Deep copy HDUs this.hdus = new List<HduBase>(); foreach (var hdu in old.hdus) { this.hdus.Add((HduBase)hdu.Clone()); } this.hduCounter = old.hduCounter; }
/// <summary> /// Closes the data file /// </summary> public void Close() { if (forwardStream != null) { forwardStream.Flush(); forwardStream.Close(); forwardStream.Dispose(); forwardStream = null; } if (ownsBaseStream && baseStream != null) { baseStream.Flush(); baseStream.Close(); baseStream.Dispose(); baseStream = null; ownsBaseStream = false; } }