| 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 | 
 } |