radarlib  1.4.6
dump_object.cpp
/*===========================================================================*/
/*
/* Questo programma fa il dump testuale di un file odimh5
/*
/* Esempi:
/* main.exe volume.h5 -> scrive su stdout
/* main.exe volume.h5 prova.txt -> scrive sull file prova.txt
/*
/*===========================================================================*/
#include <iostream>
int main(int argc, char* argv[])
{
char* input;
char* output;
if (argc == 2)
{
input = argv[1];
output = NULL;
}
else if (argc == 3)
{
input = argv[1];
output = argv[2];
}
else
{
std::cerr << "Usage: " << argv[0] << " <odimh5file> [outputfile]" << std::endl;
return -1;
}
OdimH5v20::OdimFactory* factory = NULL;
OdimH5v20::OdimObject* object = NULL;
try
{
/* creo la factory */
factory = new OdimH5v20::OdimFactory();
/* apro l'oggetto */
object = factory->open(input);
/* creo un dumper */
dumper = factory->getDumper();
/* stampo su video o su file */
if (output == NULL)
{
dumper->dump(object);
}
else
{
std::ofstream fout;
fout.exceptions(std::ios::failbit);
fout.open(output, std::ios::binary);
dumper->dump(object, fout);
fout.close();
}
std::cout << "Dump terminato!"<< std::endl;
}
catch (std::exception& stde)
{
std::cerr << "Errore durante l'esecuzione: " << stde.what() << std::endl;
}
catch (...)
{
std::cerr << "Errore sconosciuto" << std::endl;
}
delete object;
delete dumper;
delete factory;
return 0;
}
OdimH5 objects factory.
Definition: odimh5v20_factory.hpp:50
virtual OdimObject * open(const std::string &path)
Get a OdimH5 object from an existing file.
Definition: odimh5v20_factory.cpp:112
virtual OdimObjectDumper * getDumper()
Create a dumper for OdimH5 objects.
Definition: odimh5v20_factory.cpp:360
OdimH5 object dumper.
Definition: odimh5v20_dump.hpp:52
virtual void dump(OdimObject *object)
Dump object informations to standard output.
Definition: odimh5v20_dump.cpp:48
Generic OdimH5 v2.0 object.
Definition: odimh5v20_classes.hpp:95
Main header file of the library.