Beispiel #1
0
        internal override bool TryStore(string key, long contentLength, DateTime expiresUtc, DateTime lastModifiedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata, out Stream writeStream)
        {
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }
            RequestCacheEntry cacheEntry = new RequestCacheEntry {
                IsPrivateEntry      = base.IsPrivateCache,
                StreamSize          = contentLength,
                ExpiresUtc          = expiresUtc,
                LastModifiedUtc     = lastModifiedUtc,
                LastAccessedUtc     = DateTime.UtcNow,
                LastSynchronizedUtc = DateTime.UtcNow,
                MaxStale            = maxStale,
                HitCount            = 0,
                UsageCount          = 0,
                IsPartialEntry      = false,
                EntryMetadata       = entryMetadata,
                SystemMetadata      = systemMetadata
            };

            writeStream = null;
            Stream stream = null;

            if (this._UseWinInet)
            {
                base.TryStore(key, contentLength, expiresUtc, lastModifiedUtc, maxStale, entryMetadata, systemMetadata, out stream);
            }
            writeStream = new WriteOnlyStream(key, this, cacheEntry, stream);
            return(true);
        }
Beispiel #2
0
        public async Task ThrowsWhenStreamIsNotReadable()
        {
            var writeOnlyStream = new WriteOnlyStream();
            var ex = await Assert.ThrowsAsync <ArgumentException>(() => TextHelper.LooksLikeUtf8TextStreamAsync(writeOnlyStream, 10));

            Assert.Equal("stream", ex.ParamName);
        }
Beispiel #3
0
        public Stream OpenWrite(string file)
        {
            var ret = new WriteOnlyStream(_backend.Open(file, OpenMode.OpenOrCreate));

            WriteOperation?.Invoke(file); // Won't fire if the stream is written to afterwards... FIXME?
            return(ret);
        }
        internal override bool TryStore(string key, long contentLength, DateTime expiresUtc, DateTime lastModifiedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata, out Stream writeStream)
        {
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }

            RequestCacheEntry requestCacheEntry = new RequestCacheEntry();

            requestCacheEntry.IsPrivateEntry      = this.IsPrivateCache;
            requestCacheEntry.StreamSize          = contentLength;
            requestCacheEntry.ExpiresUtc          = expiresUtc;
            requestCacheEntry.LastModifiedUtc     = lastModifiedUtc;
            requestCacheEntry.LastAccessedUtc     = DateTime.UtcNow;
            requestCacheEntry.LastSynchronizedUtc = DateTime.UtcNow;
            requestCacheEntry.MaxStale            = maxStale;
            requestCacheEntry.HitCount            = 0;
            requestCacheEntry.UsageCount          = 0;
            requestCacheEntry.IsPartialEntry      = false;
            requestCacheEntry.EntryMetadata       = entryMetadata;
            requestCacheEntry.SystemMetadata      = systemMetadata;

            writeStream = null;
            Stream realWriteStream = null;


            writeStream = new WriteOnlyStream(key, this, requestCacheEntry, realWriteStream);
            return(true);
        }
Beispiel #5
0
        public void DisposeWhenUsingWriteOnlyStream()
        {
            var writeOnlyStream = new WriteOnlyStream();

            using( var csvHelper = new CsvHelper( writeOnlyStream ) )
            {
                csvHelper.Writer.WriteField( "test" );
            }
        }
Beispiel #6
0
        public void DisposeWhenUsingWriteOnlyStream()
        {
            var writeOnlyStream = new WriteOnlyStream();

            using (var csvHelper = new CsvHelper(writeOnlyStream))
            {
                csvHelper.Writer.WriteField("test");
            }
        }
Beispiel #7
0
 public void TestWriteOnlyStream()
 {
     var tree = CSharpSyntaxTree.ParseText("class Program { static void Main() { } }");
     var compilation = CSharpCompilation.Create("Program",
                                                new[] { tree },
                                                new[] { MetadataReference.CreateFromAssembly(typeof(object).Assembly) },
                                                new CSharpCompilationOptions(OutputKind.ConsoleApplication).WithFeatures((new[] { "deterministic" }).AsImmutable()));
     var output = new WriteOnlyStream();
     compilation.Emit(output);
 }
        public void TestWriteOnlyStream()
        {
            var tree        = CSharpSyntaxTree.ParseText("class Program { static void Main() { } }");
            var compilation = CSharpCompilation.Create("Program",
                                                       new[] { tree },
                                                       new[] { MetadataReference.CreateFromAssemblyInternal(typeof(object).Assembly) },
                                                       TestOptions.DebugExe.WithDeterministic(true));
            var output = new WriteOnlyStream();

            compilation.Emit(output);
        }
Beispiel #9
0
        public void WriteUsingWriteOnlyStreamTest()
        {
            var writeOnlyStream = new WriteOnlyStream();

            var csvHelper = new CsvHelper( writeOnlyStream );
            csvHelper.Writer.WriteField( "test" );

            try
            {
                csvHelper.Reader.Read();
                Assert.Fail( "Accessing the reader did not throw and exception." );
            }
            catch( CsvReaderException ) {}
        }
        public void WHEN_stream_cannot_be_read_THEN_an_argument_exception_is_thrown()
        {
            var stream = new WriteOnlyStream();

            Func <PBIFile> sut = () => PBIReader.OpenFile(stream);

            sut.Should().Throw <ArgumentException>()
            .WithMessage("'fileStream' cannot be read.");

            Func <Task <PBIFile> > sutAsync = async() => await PBIReader.OpenFileAsync(stream);

            sutAsync.Should().Throw <ArgumentException>()
            .WithMessage($"'fileStream' cannot be read.");
        }
Beispiel #11
0
        public void WriteUsingWriteOnlyStreamTest()
        {
            var writeOnlyStream = new WriteOnlyStream();

            var csvHelper = new CsvHelper(writeOnlyStream);

            csvHelper.Writer.WriteField("test");

            try
            {
                csvHelper.Reader.Read();
                Assert.Fail("Accessing the reader did not throw and exception.");
            }
            catch (CsvReaderException) {}
        }
        public void WriteFromSpan_InputSizeLargerThanHalfOfMaxInt_ShouldSuccess()
        {
            const int InputSize = int.MaxValue / 2 + 1;

            byte[] bytes;
            try
            {
                bytes = new byte[InputSize];
            }
            catch (OutOfMemoryException)
            {
                return;
            }

            var writableStream = new WriteOnlyStream();

            using (var bs = new BufferedStream(writableStream))
            {
                bs.Write(new ReadOnlySpan <byte>(bytes));
                Assert.Equal(InputSize, writableStream.Position);
            }
        }
 public void TestWriteOnlyStream()
 {
     var tree = CSharpSyntaxTree.ParseText("class Program { static void Main() { } }");
     var compilation = CSharpCompilation.Create("Program",
                                                new[] { tree },
                                                new[] { MetadataReference.CreateFromAssemblyInternal(typeof(object).Assembly) },
                                                new CSharpCompilationOptions(OutputKind.ConsoleApplication).WithDeterminism(true));
     var output = new WriteOnlyStream();
     compilation.Emit(output);
 }
 internal override bool TryStore(string key, long contentLength, DateTime expiresUtc, DateTime lastModifiedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata, out Stream writeStream)
 {
     if (key == null)
     {
         throw new ArgumentNullException("key");
     }
     RequestCacheEntry cacheEntry = new RequestCacheEntry {
         IsPrivateEntry = base.IsPrivateCache,
         StreamSize = contentLength,
         ExpiresUtc = expiresUtc,
         LastModifiedUtc = lastModifiedUtc,
         LastAccessedUtc = DateTime.UtcNow,
         LastSynchronizedUtc = DateTime.UtcNow,
         MaxStale = maxStale,
         HitCount = 0,
         UsageCount = 0,
         IsPartialEntry = false,
         EntryMetadata = entryMetadata,
         SystemMetadata = systemMetadata
     };
     writeStream = null;
     Stream stream = null;
     if (this._UseWinInet)
     {
         base.TryStore(key, contentLength, expiresUtc, lastModifiedUtc, maxStale, entryMetadata, systemMetadata, out stream);
     }
     writeStream = new WriteOnlyStream(key, this, cacheEntry, stream);
     return true;
 }
        internal override bool TryStore(string key, long contentLength, DateTime expiresUtc, DateTime lastModifiedUtc, TimeSpan maxStale, StringCollection entryMetadata, StringCollection systemMetadata, out Stream writeStream)
        {
            if (key == null)
                throw new ArgumentNullException("key");

            RequestCacheEntry requestCacheEntry = new RequestCacheEntry();
            requestCacheEntry.IsPrivateEntry = this.IsPrivateCache;
            requestCacheEntry.StreamSize = contentLength;
            requestCacheEntry.ExpiresUtc = expiresUtc;
            requestCacheEntry.LastModifiedUtc = lastModifiedUtc;
            requestCacheEntry.LastAccessedUtc = DateTime.UtcNow;
            requestCacheEntry.LastSynchronizedUtc = DateTime.UtcNow;
            requestCacheEntry.MaxStale = maxStale;
            requestCacheEntry.HitCount = 0;
            requestCacheEntry.UsageCount = 0;
            requestCacheEntry.IsPartialEntry = false;
            requestCacheEntry.EntryMetadata = entryMetadata;
            requestCacheEntry.SystemMetadata = systemMetadata;

            writeStream = null;
            Stream realWriteStream = null;

            
            writeStream = new WriteOnlyStream(key, this, requestCacheEntry, realWriteStream);
            return true;
        }
Beispiel #16
0
        /// <inheritdoc />
        public override int WriteStream(long length, ObjectType objectType, out OdbBackendStream stream)
        {
            stream = new WriteOnlyStream(this, objectType, length);

            return((int)ReturnCode.GIT_OK);
        }