Ejemplo n.º 1
0
        public IDisposable Initialize(DatabaseSmugglerOptions options, SmugglerResult result, out long buildVersion)
        {
            _result       = result;
            _returnBuffer = _context.GetManagedBuffer(out _buffer);
            _state        = new JsonParserState();
            _parser       = new UnmanagedJsonParser(_context, _state, "file");

            if (UnmanagedJsonParserHelper.Read(_peepingTomStream, _parser, _state, _buffer) == false)
            {
                UnmanagedJsonParserHelper.ThrowInvalidJson("Unexpected end of json.", _peepingTomStream, _parser);
            }

            if (_state.CurrentTokenType != JsonParserToken.StartObject)
            {
                UnmanagedJsonParserHelper.ThrowInvalidJson("Expected start object, but got " + _state.CurrentTokenType, _peepingTomStream, _parser);
            }

            buildVersion      = ReadBuildVersion();
            _buildVersionType = BuildVersion.Type(buildVersion);
            _readLegacyEtag   = options.ReadLegacyEtag;

            return(new DisposableAction(() =>
            {
                _parser.Dispose();
                _returnBuffer.Dispose();
                _returnWriteBuffer.Dispose();
            }));
        }
Ejemplo n.º 2
0
 public void Dispose()
 {
     _response.Response.Dispose();
     _response.Stream.Dispose();
     _parser.Dispose();
     _returnBuffer.Dispose();
 }
Ejemplo n.º 3
0
 public virtual void Dispose()
 {
     try
     {
         Flush();
     }
     catch (ObjectDisposedException)
     {
         //we are disposing, so this exception doesn't matter
     }
     finally
     {
         _returnBuffer.Dispose();
         _context.ReturnMemory(_parserAuxiliarMemory);
     }
 }
Ejemplo n.º 4
0
 public void Dispose()
 {
     // we do not dispose _stream
     _returnedBuffer.Dispose();
 }