コード例 #1
0
ファイル: FitsFile.cs プロジェクト: skyquery/sharpfitsio
        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;
        }
コード例 #2
0
ファイル: FitsFile.cs プロジェクト: skyquery/sharpfitsio
        protected void OpenForWrite()
        {
            if (FileMode != FitsFileMode.Write)
            {
                throw new InvalidOperationException();
            }

            if (baseStream == null)
            {
                OpenOwnStream();
            }

            forwardStream = new SeekForwardStream(new DetachedStream(baseStream));

            CreateBitConverter();
        }
コード例 #3
0
ファイル: FitsFile.cs プロジェクト: skyquery/sharpfitsio
        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;
        }
コード例 #4
0
ファイル: FitsFile.cs プロジェクト: skyquery/sharpfitsio
        /// <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;
            }
        }