コード例 #1
0
 public void Properties_Are_Simple_Accessors()
 {
     using (var mem = new MemoryStream(new byte[0]))
     {
         var _ = new PushFuncStream(mem, true, CancellationToken.None);
         Assert.True(_.Dispose);
         Assert.True(_.Token.Equals(CancellationToken.None));
         Assert.True(ReferenceEquals(_.Writable, mem));
     }
 }
コード例 #2
0
 public void Ctor_Throws_Error_When_Stream_Is_Not_Writable()
 {
     using (var mem = new MemoryStream(new byte[0], false))
     {
         Assert.True(Assert.Throws <DdnDfException>(() =>
         {
             var _ = new PushFuncStream(mem, true, CancellationToken.None);
         }).ErrorCode == DdnDfErrorCode.Unspecified);
     }
 }
コード例 #3
0
        internal static async Task PushPpcJsonEnumeration <T>(this BlockingCollection <T> bc,
                                                              JsonSerializer serializer, Encoding enc, int writerBuffer,
                                                              CancellationTokenSource pcts, bool autoFlush,
                                                              CancellationToken token, PushFuncStream pfs, IProducer <T> producer,
                                                              int ppcBufferSize)
        {
            var errList            = new List <Exception>();
            var serialConsumerTask = Task.Run(
                () => JsonEnumeration(bc, serializer, enc, writerBuffer, pcts, autoFlush)(pfs), token);

            await PpcJsonEnumerationProducer(bc, producer, token, ppcBufferSize, errList, pcts)
            .ConfigureAwait(false);

            try
            {
                await serialConsumerTask.ConfigureAwait(false);
            }
            catch (Exception e)
            {
                errList.Add(e);
            }

            if (errList.Count > 0)
            {
                throw new AggregateException("Error during JSON PUSH streaming.", errList);
            }
        }