From 8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 Mon Sep 17 00:00:00 2001 From: Constantin Jucovschi Date: Fri, 24 Apr 2009 07:20:22 -0400 Subject: Initial commit --- conversion/convfactory.cc | 189 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 conversion/convfactory.cc (limited to 'conversion/convfactory.cc') diff --git a/conversion/convfactory.cc b/conversion/convfactory.cc new file mode 100644 index 0000000..31f27ae --- /dev/null +++ b/conversion/convfactory.cc @@ -0,0 +1,189 @@ +/* +* This file is part of rasdaman community. +* +* Rasdaman community is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Rasdaman community is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with rasdaman community. If not, see . +* +* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / +rasdaman GmbH. +* +* For more information please see +* or contact Peter Baumann via . +/ +/** + * SOURCE: convertor.cc + * + * MODULE: conversion + * + * CLASSES: r_Convertor_Factory + * Create convertors out of data formats + * + * COMMENTS: + * - temporary, for debugging +*/ + +#include "raslib/rminit.hh" +#include "debug.hh" + +#include "conversion/convfactory.hh" + +// all the conversion types, for easy creation +#include "tiff.hh" +#include "hdf.hh" +#include "png.hh" +#include "jpeg.hh" +#include "bmp.hh" +#include "vff.hh" +#include "tor.hh" +#include "dem.hh" +#include "ecw.hh" +#include "ntf.hh" +#include "csv.hh" + + + +bool r_Convertor_Factory::is_supported( r_Data_Format fmt ) +{ + ENTER( "r_Convertor_Factory::is_supported( " << fmt << " )" ); + + bool retval=false; + switch (fmt) + { + case r_TIFF: + case r_PNG: + case r_JPEG: + case r_BMP: + case r_VFF: + case r_TOR: + case r_DEM: + case r_ECW: +#ifndef DISABLE_HDF + case r_HDF: +#endif + // case r_NTF: + retval=true; + break; + default: + retval=false; + break; + } + + LEAVE( "r_Convertor_Factory::is_supported() -> " << retval ); + return retval; +} + +r_Convertor *r_Convertor_Factory::create( r_Data_Format fmt, const char *src, const r_Minterval &interv, const r_Type *tp) throw(r_Error) +{ + ENTER( "r_Convertor_Factory::create( fmt=" << fmt << ", &src=" << ((r_Ptr) src) << ", interval=" << interv << ", &type=" << ((r_Ptr) tp) << " )" ); + r_Convertor *result = NULL; + + switch (fmt) + { + case r_TIFF: + result = new r_Conv_TIFF(src, interv, tp); + break; + case r_PNG: + result = new r_Conv_PNG(src, interv, tp); + break; + case r_CSV: + result = new r_Conv_CSV(src, interv, tp); + break; + case r_JPEG: + result = new r_Conv_JPEG(src, interv, tp); + break; + case r_BMP: + result = new r_Conv_BMP(src, interv, tp); + break; + case r_VFF: + result = new r_Conv_VFF(src, interv, tp); + break; + case r_TOR: + result = new r_Conv_TOR(src, interv, tp); + break; + case r_DEM: + result = new r_Conv_DEM(src, interv, tp); + break; + case r_ECW: + result = new r_Conv_ECW(src, interv, tp); + break; +#ifndef DISABLE_HDF + case r_HDF: + result = new r_Conv_HDF(src, interv, tp); + break; +#endif + // case r_NTF: + // TALK( "creating NTF converter..." ); + // result = new r_Conv_NTF(src, interv, tp); + // break; + default: + RMInit::logOut << "Error: in conversion factory during create: unsupported format: " << fmt << endl; + r_Error err(CONVERSIONFORMATNOTSUPPORTED); + throw(err); + } + + LEAVE( "r_Convertor_Factory::create() -> " << result ); + return result; +} + + +r_Convertor *r_Convertor_Factory::create( r_Data_Format fmt, const char *src, const r_Minterval &interv, int type ) throw(r_Error) +{ + ENTER( "r_Convertor_Factory::create( fmt=" << fmt << ", &src=" << ((r_Ptr) src) << ", interval=" << interv << ", type=" << type << " )" ); + + r_Convertor *result = NULL; + + switch (fmt) + { + case r_TIFF: + result = new r_Conv_TIFF(src, interv, type); + break; + case r_PNG: + result = new r_Conv_PNG(src, interv, type); + break; + case r_JPEG: + result = new r_Conv_JPEG(src, interv, type); + break; + case r_BMP: + result = new r_Conv_BMP(src, interv, type); + break; + case r_VFF: + result = new r_Conv_VFF(src, interv, type); + break; + case r_TOR: + result = new r_Conv_TOR(src, interv, type); + break; + case r_DEM: + result = new r_Conv_DEM(src, interv, type); + break; + case r_ECW: + result = new r_Conv_ECW(src, interv, type); + break; +#ifndef DISABLE_HDF + case r_HDF: + result = new r_Conv_HDF(src, interv, type); + break; +#endif + // case r_NTF: + // TALK( "creating NTF converter..." ); + // result = new r_Conv_NTF(src, interv, type); + // break; + default: + RMInit::logOut << "Error: in conversion factory during create: unsupported format: " << fmt << endl; + r_Error err(CONVERSIONFORMATNOTSUPPORTED); + throw(err); + } + + LEAVE( "r_Convertor_Factory::create() -> " << result ); + return result; +} + -- cgit