111293Sandreas.hansson@arm.com/*
211293Sandreas.hansson@arm.com * Test program for gzifstream and gzofstream
311293Sandreas.hansson@arm.com *
411293Sandreas.hansson@arm.com * by Ludwig Schwardt <schwardt@sun.ac.za>
511293Sandreas.hansson@arm.com * original version by Kevin Ruland <kevin@rodin.wustl.edu>
611293Sandreas.hansson@arm.com */
711293Sandreas.hansson@arm.com
811293Sandreas.hansson@arm.com#include "zfstream.h"
911293Sandreas.hansson@arm.com#include <iostream>      // for cout
1011293Sandreas.hansson@arm.com
1111293Sandreas.hansson@arm.comint main() {
1211293Sandreas.hansson@arm.com
1311293Sandreas.hansson@arm.com  gzofstream outf;
1411293Sandreas.hansson@arm.com  gzifstream inf;
1511293Sandreas.hansson@arm.com  char buf[80];
1611293Sandreas.hansson@arm.com
1711293Sandreas.hansson@arm.com  outf.open("test1.txt.gz");
1811293Sandreas.hansson@arm.com  outf << "The quick brown fox sidestepped the lazy canine\n"
1911293Sandreas.hansson@arm.com       << 1.3 << "\nPlan " << 9 << std::endl;
2011293Sandreas.hansson@arm.com  outf.close();
2111293Sandreas.hansson@arm.com  std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
2211293Sandreas.hansson@arm.com            << "The quick brown fox sidestepped the lazy canine\n"
2311293Sandreas.hansson@arm.com            << 1.3 << "\nPlan " << 9 << std::endl;
2411293Sandreas.hansson@arm.com
2511293Sandreas.hansson@arm.com  std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
2611293Sandreas.hansson@arm.com  inf.open("test1.txt.gz");
2711293Sandreas.hansson@arm.com  while (inf.getline(buf,80,'\n')) {
2811293Sandreas.hansson@arm.com    std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
2911293Sandreas.hansson@arm.com  }
3011293Sandreas.hansson@arm.com  inf.close();
3111293Sandreas.hansson@arm.com
3211293Sandreas.hansson@arm.com  outf.rdbuf()->pubsetbuf(0,0);
3311293Sandreas.hansson@arm.com  outf.open("test2.txt.gz");
3411293Sandreas.hansson@arm.com  outf << setcompression(Z_NO_COMPRESSION)
3511293Sandreas.hansson@arm.com       << "The quick brown fox sidestepped the lazy canine\n"
3611293Sandreas.hansson@arm.com       << 1.3 << "\nPlan " << 9 << std::endl;
3711293Sandreas.hansson@arm.com  outf.close();
3811293Sandreas.hansson@arm.com  std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
3911293Sandreas.hansson@arm.com
4011293Sandreas.hansson@arm.com  std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
4111293Sandreas.hansson@arm.com  inf.rdbuf()->pubsetbuf(0,0);
4211293Sandreas.hansson@arm.com  inf.open("test2.txt.gz");
4311293Sandreas.hansson@arm.com  while (inf.getline(buf,80,'\n')) {
4411293Sandreas.hansson@arm.com    std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
4511293Sandreas.hansson@arm.com  }
4611293Sandreas.hansson@arm.com  inf.close();
4711293Sandreas.hansson@arm.com
4811293Sandreas.hansson@arm.com  return 0;
4911293Sandreas.hansson@arm.com
5011293Sandreas.hansson@arm.com}
51