1 /*
   2  * Test program for gzifstream and gzofstream
   3  *
   4  * by Ludwig Schwardt <schwardt@sun.ac.za>
   5  * original version by Kevin Ruland <kevin@rodin.wustl.edu>
   6  */
   7 
   8 #include "zfstream.h"
   9 #include <iostream>      // for cout
  10 
  11 int main() {
  12 
  13   gzofstream outf;
  14   gzifstream inf;
  15   char buf[80];
  16 
  17   outf.open("test1.txt.gz");
  18   outf << "The quick brown fox sidestepped the lazy canine\n"
  19        << 1.3 << "\nPlan " << 9 << std::endl;
  20   outf.close();
  21   std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
  22             << "The quick brown fox sidestepped the lazy canine\n"
  23             << 1.3 << "\nPlan " << 9 << std::endl;
  24 
  25   std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
  26   inf.open("test1.txt.gz");
  27   while (inf.getline(buf,80,'\n')) {
  28     std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
  29   }
  30   inf.close();
  31 
  32   outf.rdbuf()->pubsetbuf(0,0);
  33   outf.open("test2.txt.gz");
  34   outf << setcompression(Z_NO_COMPRESSION)
  35        << "The quick brown fox sidestepped the lazy canine\n"
  36        << 1.3 << "\nPlan " << 9 << std::endl;
  37   outf.close();
  38   std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
  39 
  40   std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
  41   inf.rdbuf()->pubsetbuf(0,0);
  42   inf.open("test2.txt.gz");
  43   while (inf.getline(buf,80,'\n')) {
  44     std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
  45   }
  46   inf.close();
  47 
  48   return 0;
  49 
  50 }