Jive reference manual
GzipFileReader.cpp
#include <jem/base/System.h>
#include <jem/io/FileName.h>
#include <jem/io/FileWriter.h>
#include <jem/io/GzipFileReader.h>
using namespace jem;
using namespace jem::io;
//-----------------------------------------------------------------------
// unzip
//-----------------------------------------------------------------------
int unzip ( int argc, char** argv )
{
const int N = 128;
Ref<Reader> input;
Ref<Writer> output;
char buf[N];
for ( int i = 1; i < argc; i++ )
{
String fname = argv[i];
idx_t k = FileName::findSuffix ( fname );
if ( k < 0 || fname[slice(k,END)] != ".gz" )
{
continue;
}
input = newInstance<GzipFileReader> ( fname );
output = newInstance<FileWriter> ( fname[slice(BEGIN,k)] );
k = input->read ( buf, N );
while ( k > 0 )
{
output->write ( buf, k );
k = input->read ( buf, N );
}
}
return 0;
}
//-----------------------------------------------------------------------
// main
//-----------------------------------------------------------------------
int main ( int argc, char** argv )
{
return System::exec ( & unzip, argc, argv );
}