public async Task <float> measureDownloadSpeed(Uri uri) { Contract.Requires(uri != null); var req = WebRequest.Create(uri); req.Credentials = CredentialCache.DefaultCredentials; req.Proxy = hch.Proxy; req.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore); emitProgressEvent(0); float speed; using (var devNull = new DevNullStream()) { using (var resp = await req.GetResponseAsync() as HttpWebResponse) { var len = resp.ContentLength; EventedStream.dataLoadListener cb = (o, bytes) => emitProgressEvent(bytes * 100 / len); using (var str = resp.GetResponseStream()) { devNull.onLoading += cb; sw.Restart(); await str.CopyToAsync(devNull); sw.Stop(); devNull.onLoading -= cb; } speed = (float)(len / (sw.Elapsed.TotalSeconds)); } } return(speed); }
//----------------------------------------------------------------------------------------- private long Compress(Func <Stream, Stream> compressionStreamFunc) { using (var ms = new DevNullStream()) { using (var cs = compressionStreamFunc(ms)) { cs.Write(data, 0, data.Length); } return(ms.Length); } }
public async Task<float> measureDownloadSpeed(Uri uri){ Contract.Requires(uri != null); var req = WebRequest.Create(uri); req.Credentials = CredentialCache.DefaultCredentials; req.Proxy = hch.Proxy; req.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore); emitProgressEvent(0); float speed; using (var devNull = new DevNullStream()) { using (var resp = await req.GetResponseAsync() as HttpWebResponse) { var len = resp.ContentLength; EventedStream.dataLoadListener cb = (o,bytes) => emitProgressEvent(bytes*100/len); using (var str = resp.GetResponseStream()) { devNull.onLoading += cb; sw.Restart(); await str.CopyToAsync(devNull); sw.Stop(); devNull.onLoading -= cb; } speed = (float)(len / (sw.Elapsed.TotalSeconds)); } } return speed; }
public async Task RangedRandomToDevNull() { using (Stream cs = new RangedRandomBytesStream(defCount, 0xAD, 0xEF), dns = new DevNullStream()) await dns.CopyToAsync(cs); }
public async Task ConstantToDevNull() { using (Stream cs = new ConstantStream(defCount, new byte[] { 0xDE, 0xAD, 0xBE, 0xEF }), dns = new DevNullStream()) await dns.CopyToAsync(cs); }
public async Task RangedRandomToDevNull() { using (Stream cs = new RangedRandomBytesStream(defCount, 0xAD, 0xEF), dns = new DevNullStream()) await dns.CopyToAsync(cs); }
public async Task ConstantToDevNull() { using (Stream cs = new ConstantStream(defCount, new byte[] { 0xDE, 0xAD, 0xBE, 0xEF }), dns = new DevNullStream()) await dns.CopyToAsync(cs); }