Ejemplo n.º 1
0
        public void Close()
        {
            if (_File == null)
            {
                return;
            }

            if (_Mode == Mode.Write)
            {
                if (_UnitBlock[0] != 0)
                {
                    Array.Copy(_UnitBlock, 0, _Segment, _CurrentUnitIndex * UnitBlockSize, _UnitBlock.Length);
                }

                if (_Segment[0] != 0)
                {
                    _File.Write(_Segment, 0, _Segment.Length);
                }

                _File.Flush();
            }

            _File.Close();
            _File = null;
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileName">DDX file path</param>
        /// <param name="write">if true for write else for read</param>
        public DDXFile(string filePath, Mode mode)
        {
            _Mode     = mode;
            _FilePath = filePath;

            if (_Mode == Mode.Write)
            {
                _TempMem   = new MemoryStream(256);
                _UnitBlock = new byte[UnitBlockSize];
                _Segment   = new byte[SegmentSize]; //One segment include 32 unit blocks .
                //_File = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
                _File = new Hubble.Framework.IO.CachedFileStream(filePath, FileMode.Create, FileAccess.ReadWrite);
            }
            else if (_Mode == Mode.Enum)
            {
                //_File = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                _File = new Hubble.Framework.IO.CachedFileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
            }
            else if (_Mode == Mode.Read)
            {
                //_File = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                _File = new Hubble.Framework.IO.CachedFileStream(Hubble.Framework.IO.CachedFileStream.CachedType.NoCache, filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                GetSegmentStartStrings();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Close .idx file
        /// </summary>
        public void Close()
        {
            try
            {
                if (_IndexFile != null)
                {
                    if (_Mode == Mode.Write)
                    {
                        _IndexFile.Flush();
                    }

                    _IndexFile.Close();
                    _IndexFile = null;
                }
            }
            catch
            {
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Constractor
        /// </summary>
        /// <param name="filePath">.idx file path</param>
        /// <param name="mode">file access mode</param>
        public IDXFile(string filePath, Mode mode)
        {
            _Mode     = mode;
            _FilePath = filePath;

            switch (mode)
            {
            case Mode.Read:
                //_IndexFile = new FileStream(_FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                _IndexFile = new Hubble.Framework.IO.CachedFileStream(Hubble.Framework.IO.CachedFileStream.CachedType.NoCache, _FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);

                break;

            case Mode.Write:
                //_IndexFile = new FileStream(_FilePath, FileMode.Create, FileAccess.ReadWrite);
                _IndexFile = new Hubble.Framework.IO.CachedFileStream(_FilePath, FileMode.Create, FileAccess.ReadWrite);
                break;
            }
        }