7661f1c2bf
This patch replaces the gzstream zlib wrapper with the iostream3 wrapper provided as part of zlib contributions. The main reason for the switch is to avoid including LGPL in the default gem5 build. iostream3 is provided under a more permissive license: The code is provided "as is", with the permission to use, copy, modify, distribute and sell it for any purpose without fee.
50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
/*
|
|
* Test program for gzifstream and gzofstream
|
|
*
|
|
* by Ludwig Schwardt <schwardt@sun.ac.za>
|
|
* original version by Kevin Ruland <kevin@rodin.wustl.edu>
|
|
*/
|
|
|
|
#include "zfstream.h"
|
|
#include <iostream> // for cout
|
|
|
|
int main() {
|
|
|
|
gzofstream outf;
|
|
gzifstream inf;
|
|
char buf[80];
|
|
|
|
outf.open("test1.txt.gz");
|
|
outf << "The quick brown fox sidestepped the lazy canine\n"
|
|
<< 1.3 << "\nPlan " << 9 << std::endl;
|
|
outf.close();
|
|
std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
|
|
<< "The quick brown fox sidestepped the lazy canine\n"
|
|
<< 1.3 << "\nPlan " << 9 << std::endl;
|
|
|
|
std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
|
|
inf.open("test1.txt.gz");
|
|
while (inf.getline(buf,80,'\n')) {
|
|
std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
|
|
}
|
|
inf.close();
|
|
|
|
outf.rdbuf()->pubsetbuf(0,0);
|
|
outf.open("test2.txt.gz");
|
|
outf << setcompression(Z_NO_COMPRESSION)
|
|
<< "The quick brown fox sidestepped the lazy canine\n"
|
|
<< 1.3 << "\nPlan " << 9 << std::endl;
|
|
outf.close();
|
|
std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
|
|
|
|
std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
|
|
inf.rdbuf()->pubsetbuf(0,0);
|
|
inf.open("test2.txt.gz");
|
|
while (inf.getline(buf,80,'\n')) {
|
|
std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
|
|
}
|
|
inf.close();
|
|
|
|
return 0;
|
|
|
|
}
|