Article View: pl.comp.objects
Article #16008Strumień tworzony dwuetapowo przy pomocy boost.IOStreams
From: Miroslaw.Makowiecki
Date: Tue, 27 Mar 2007 10:27
Date: Tue, 27 Mar 2007 10:27
34 lines
2797 bytes
2797 bytes
Mamy oto kod:
//strumień1
filtering_stream<input> stream1;
stream1.push(Liczenie_znakow());
stream1.push(LIczenie_sumy_md5());
stream1.push(liczenie_sumy_sha1());
std::fstream file("/home/gigat/duzy_plik.iso");
stream1.push(file)
//strumień2
filtering_stream<input> stream2;
stream2.push(Liczenie_sumy_sha256());
stream2.push(Liczenie_kolejnych_linni());
stream2.push(gzip_decompressor());
stream2.push(stream1);
Jak wiemy linia stream2.push(stream1) powoduje że strumień stream2
jest mało wydajny,było by wydajne, gdy by zamiast
stream2.push(stream1)
wsadziliśmy kolejne wywołania push strumienia stream1,ale ja chcę by
strumień był tworzony dwuetapowo, strumień stream1 robi prawie coś
innego niż strumień stream2, oczywiste jest że strumień stream2 jest
połączony ze strumieniem stream1. W moim programie z takim samym
prawdopodobieństwem korzystam że strumienia stream1 i stream2.
Oczywiście strumień stream1 i stream2 obudowuję w klasy, którego
wygoda jest taka sama,jak korzystanie std::fstream.
Pytanie czy powyższy sposób postępowania strumienia stream1 i
stream2
można udoskonalić(pamiętajmy definiujemy strumień dwuetapowo),by
stream2 był maksymalnie wydajny,tak samo zamiast
stream2.push(stream1)
gdy byśmy wsadziliśmy kolejne wywołania push w stream1,jeśli to da
się
to zrobić, to jak?
Proszę o ewentualne linki i pomoce rozwiązujące mój problem!
Za każdą pomoc jestem wdzięczny!
Technical Details
Message-ID:
<1174991222.912076.19680@p77g2000hsh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!p77g2000hsh.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!p77g2000hsh.googlegroups.com!not-for-mail From: Miroslaw.Makowiecki@gmail.com Newsgroups: pl.comp.objects Subject: Strumień tworzony dwuetapowo przy pomocy boost.IOStreams Date: 27 Mar 2007 03:27:02 -0700 Organization: http://groups.google.com Lines: 36 Message-ID: <1174991222.912076.19680@p77g2000hsh.googlegroups.com> NNTP-Posting-Host: 83.18.174.178 Mime-Version: 1.0 X-Trace: posting.google.com 1174991224 26624 127.0.0.1 (27 Mar 2007 10:27:04 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 27 Mar 2007 10:27:04 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.18-1-686; X11; i686; pl) KHTML/3.5.5 (like Gecko) (Debian package 4:3.5.5a.dfsg.1-6),gzip(gfe),gzip(gfe) X-HTTP-Via: 1.0 HAVP, 1.0 zwolen:8080 (squid/2.5.STABLE9) Complaints-To: groups-abuse@google.com Injection-Info: p77g2000hsh.googlegroups.com; posting-host=83.18.174.178; posting-account=ZtCzpw0AAAB7bcDRjtJwIIcbCszsYq0O Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit