00001 //-------------------------------------------------- 00012 //--------------------------------------------------- 00013 00014 00015 #include "data_io_factory.h" 00016 #include "analyze_data_io.h" 00017 00018 namespace imedgine 00019 { 00020 //--------------------------------------------------- 00021 00022 DataIOFactory::DataIOFactory() 00023 { 00024 } 00025 00026 //--------------------------------------------------- 00027 00028 DataIOFactory::~DataIOFactory() 00029 { 00030 } 00031 00032 //--------------------------------------------------- 00033 00034 DataIOFactory::data_io_type DataIOFactory::createDataIO(std::string extension) 00035 throw(FormatNotSupportedException) 00036 { 00037 data_io_map_type::iterator map_iterator = data_io_map_.find(extension); 00038 if (map_iterator != data_io_map_.end()) 00039 { 00040 return map_iterator->second; 00041 } 00042 else 00043 { 00044 //TODO externalize! externalize! externalize! 00045 if (extension == "hdr") 00046 { 00047 data_io_type analyze_data_io(new AnalyzeDataIO()); 00048 data_io_map_.insert(data_io_map_pair_type("hdr", analyze_data_io)); 00049 return analyze_data_io; 00050 } 00051 else 00052 { 00053 throw(FormatNotSupportedException(extension)); 00054 } 00055 } 00056 } 00057 }