🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #15994

Strumień filtering_stream tworzony dwuetapowo przy pomocy biblioteki boost.IOStreams

#15994
From: Miroslaw.Makowiecki
Date: Tue, 27 Mar 2007 10:17
29 lines
2658 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");
//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 jest 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 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: <1174990645.516467.275370@n59g2000hsh.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!n59g2000hsh.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!n59g2000hsh.googlegroups.com!not-for-mail
From: Miroslaw.Makowiecki@gmail.com
Newsgroups: pl.comp.objects
Subject: Strumień filtering_stream tworzony dwuetapowo przy
 pomocy biblioteki boost.IOStreams
Date: 27 Mar 2007 03:17:25 -0700
Organization: http://groups.google.com
Lines: 31
Message-ID: <1174990645.516467.275370@n59g2000hsh.googlegroups.com>
NNTP-Posting-Host: 83.18.174.178
Mime-Version: 1.0
X-Trace: posting.google.com 1174990647 25275 127.0.0.1 (27 Mar 2007 10:17:27 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 27 Mar 2007 10:17:27 +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: n59g2000hsh.googlegroups.com; posting-host=83.18.174.178;   posting-account=ZtCzpw0AAAB7bcDRjtJwIIcbCszsYq0O
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit