示例#1
0
 public void Dispose()
 {
     _writer?.Dispose();
     _stream?.Dispose();
     _memWriter?.Dispose();
     _memStream?.Dispose();
 }
示例#2
0
        private void SendWriter(ExtendedBinaryWriter writer)
        {
            writer?.Flush();

            var fullUri = new Uri(_uri, "diag?sid=" + _sessionId + (_contextName != null ? "&ctx=" + _contextName : ""));

            var binaryContent = writer != null
                ? (writer.BaseStream as MemoryStream).ToArray()
                : Array.Empty <byte>();

            using (var content = new ByteArrayContent(binaryContent))
            {
                try
                {
                    var response     = _client.PostAsync(fullUri, content).Result;
                    var responseBody = response.Content.ReadAsStringAsync().Result;
                    if (responseBody != "ACK")
                    {
                        _communicationErrorCount++;
                    }
                }
                catch (Exception)
                {
                    _communicationErrorCount++;
                }
            }

            writer?.BaseStream.Dispose();
            writer?.Dispose();
        }
示例#3
0
 /// <summary>
 /// protected implementation of Dispose pattern.
 /// </summary>
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         _writer.Dispose();
     }
 }
 public void Dispose()
 {
     if (!_leaveOpen)
     {
         _blockStream.Dispose();
     }
     _writer.Dispose();
 }
示例#5
0
 public void Dispose()
 {
     _writer?.Dispose();
     if (!_leaveOpen)
     {
         _stream?.Dispose();
     }
 }
示例#6
0
 public void Dispose()
 {
     Flush();
     if (!_leaveOpen)
     {
         _stream.Dispose();
     }
     _writer.Dispose();
 }
示例#7
0
        private void Close()
        {
            if (_writer == null)
            {
                return;
            }
            //write the true value of intervalListPosition
            _intervalListPosition = _writer.BaseStream.Position;
            WriteIntervals();
            //going back to the location where we store the interval list position in file
            _writer.BaseStream.Position = _intervalListOffset;
            _writer.Write(_intervalListPosition);

            _reader?.Dispose();
            _writer?.Dispose();
        }
示例#8
0
        public void Dispose()
        {
            _index.Write();

            if (!_leaveOpen)
            {
                _writer?.Dispose();
                _indexWriter?.Dispose();
                _stream?.Dispose();
                _indexStream?.Dispose();
                _block?.Dispose();
            }

            _memWriter?.Dispose();
            _memStream?.Dispose();
        }
示例#9
0
        /// <summary>
        /// protected implementation of Dispose pattern. 
        /// </summary>
        private void Dispose(bool disposing)
        {
            lock (this)
            {
                if (_isDisposed) return;

                if (disposing)
                {
                    // Free any other managed objects here. 
                    _writer.Dispose();
                }

                // Free any unmanaged objects here. 
                _isDisposed = true;
            }
        }
示例#10
0
        private void CloseWriter()
        {
            // write out the last interval
            if (_currentInterval != null)
            {
                WriteInterval(_currentInterval, _writer);
            }

            // write the true value of intervalListPosition
            _intervalListPosition = _writer.BaseStream.Position;
            WriteIntervals();

            // going back to the location where we store the interval list position in file
            _writer.BaseStream.Position = _intervalListOffset;
            _writer.Write(_intervalListPosition);

            _writer.Dispose();
        }
示例#11
0
        protected virtual void Dispose(bool disposing)
        {
            if (!_isDisposed)
            {
                if (disposing)
                {
                    _client?.Dispose();
                    _client = null;

                    _currentWriter?.Dispose();
                    _currentWriter = null;

                    _currentDictionaryWriter?.Dispose();
                    _currentDictionaryWriter = null;
                }

                _isDisposed = true;
            }
        }
示例#12
0
        public void AddScoreTest()
        {
            var randShorts = GetRandShorts();
            var randomPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            var writer     = new ExtendedBinaryWriter(FileUtilities.GetCreateStream(randomPath));

            var version = new DataSourceVersion("phylop", "0", DateTime.Now.Ticks, "unit test");

            var phylopWriter = new PhylopWriter("chr1", version, GenomeAssembly.Unknown, 100, writer);

            foreach (short s in randShorts)
            {
                phylopWriter.AddScore(s); // artificially forcing the writer to flush at every 100 scores
            }
            // we should have 41 intervals but note that the last interval is not dumped by AddScore. Therefore, we have 40
            Assert.Equal(40, phylopWriter.ChromosomeIntervals.Count);

            writer.Dispose();
            File.Delete(randomPath);
        }
示例#13
0
        /// <summary>
        /// protected implementation of Dispose pattern.
        /// </summary>
        private void Dispose(bool disposing)
        {
            if (disposing)
            {
                // write a negative length
                _writer.WriteOpt(-1);


                // write the intervals
                WriteSupplementaryIntervals();

                // write the guard integer
                _writer.Flush();
                _eofOffset = _stream.Position;
                _writer.Write(SupplementaryAnnotationCommon.GuardInt);

                // update the offsets in the header
                _stream.Position = _offsetHeader;
                _writer.Write(_dataSourceVersionsOffset);
                _writer.Write(_dataOffset);
                _writer.Write(_intervalOffset);
                _writer.Write(_eofOffset);

                // close the file streams
                _writer.Dispose();
                _stream.Dispose();
                _index.Write(_saPath + ".idx", _currentRefSeq);
            }

            // reset all the class variables
            _stream = null;

            _dataSourceVersionsOffset = 0;
            _dataOffset     = 0;
            _eofOffset      = 0;
            _offsetHeader   = 0;
            _intervalOffset = 0;

            _index = null;
        }
 public void Dispose() => _writer.Dispose();
示例#15
0
 public void Dispose()
 {
     _writer?.Dispose();
     _blockReader?.Dispose();
     _blockStream?.Dispose();
 }