Changeset 1251 for MOAB/trunk/MBReaderWriterSet.cpp
- Timestamp:
- 08/24/07 12:16:31 (2 years ago)
- Files:
-
- MOAB/trunk/MBReaderWriterSet.cpp (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
MOAB/trunk/MBReaderWriterSet.cpp
r752 r1251 47 47 { 48 48 #ifdef HDF5_FILE 49 const char* hdf5_ list[] = { "h5m", "mhdf", NULL };50 register_factory( ReadHDF5::factory, WriteHDF5::factory, "MOAB native (HDF5)", hdf5_ list);49 const char* hdf5_sufxs[] = { "h5m", "mhdf", NULL }; 50 register_factory( ReadHDF5::factory, WriteHDF5::factory, "MOAB native (HDF5)", hdf5_sufxs, "MOAB" ); 51 51 #endif 52 52 53 53 #ifdef NETCDF_FILE 54 const char* exo_list[] = { "exo", "exoII", "exo2", "g", "gen", NULL }; 55 register_factory( ReadNCDF::factory, WriteNCDF::factory, "Exodus II", exo_list ); 56 #endif 57 58 const char* vtk_list[] = { "vtk", NULL }; 59 register_factory( ReadVtk::factory, WriteVtk::factory, "Kitware VTK", vtk_list ); 60 61 const char* cub_list[] = { "cub", NULL }; 62 register_factory( Tqdcfr::factory, NULL, "Cubit", cub_list ); 54 const char* exo_sufxs[] = { "exo", "exoII", "exo2", "g", "gen", NULL }; 55 register_factory( ReadNCDF::factory, WriteNCDF::factory, "Exodus II", exo_sufxs, "EXODUS" ); 56 #endif 57 58 register_factory( ReadVtk::factory, WriteVtk::factory, "Kitware VTK", "vtk", "VTK" ); 59 60 register_factory( Tqdcfr::factory, NULL, "Cubit", "cub", "CUBIT" ); 63 61 64 62 #ifdef NETCDF_FILE 65 const char* slac_list[] = { "slac", NULL }; 66 register_factory( NULL, WriteSLAC::factory, "SLAC", slac_list ); 67 #endif 68 69 const char* gmv_list[] = { "gmv", NULL }; 70 register_factory( NULL, WriteGMV::factory, "GMV", gmv_list ); 71 72 const char* ans_list[] = { "ans", NULL }; 73 register_factory( NULL, WriteAns::factory, "Ansys", ans_list ); 74 75 const char* gmsh_list[] = { "msh", "gmsh", NULL }; 76 register_factory( ReadGmsh::factory, WriteGmsh::factory, "Gmsh mesh file", gmsh_list ); 77 78 const char* stl_list[] = { "stl", NULL }; 79 register_factory( ReadSTL::ascii_instance, WriteSTL::ascii_instance, "Stereo Lithography File (STL)", stl_list ); 80 81 const char* stlb_list[] = { "stlb", NULL }; 82 register_factory( ReadSTL::binary_instance, WriteSTL::binary_instance, "Binary Stereo Lithography (STL)", stlb_list ); 63 register_factory( NULL, WriteSLAC::factory, "SLAC", "slac", "SLAC" ); 64 #endif 65 66 register_factory( NULL, WriteGMV::factory, "GMV", "gmv", "GMV" ); 67 68 register_factory( NULL, WriteAns::factory, "Ansys", "ans", "ANSYS" ); 69 70 const char* gmsh_sufxs[] = { "msh", "gmsh", NULL }; 71 register_factory( ReadGmsh::factory, WriteGmsh::factory, "Gmsh mesh file", gmsh_sufxs, "GMSH" ); 72 73 register_factory( ReadSTL::ascii_instance, WriteSTL::ascii_instance, "Stereo Lithography File (STL)", "stl", "STL" ); 83 74 } 84 75 … … 91 82 writer_factory_t writer, 92 83 const char* description, 93 const char** extensions ) 84 const char* const* extensions, 85 const char* name ) 94 86 { 95 87 if (!reader && !writer) … … 97 89 98 90 // count extensions and check for duplicates 99 const char* * iter;91 const char* const* iter; 100 92 for (iter = extensions; *iter; ++iter) 101 93 { 102 iter _typeh = handler_from_extension( *iter );94 iterator h = handler_from_extension( *iter ); 103 95 if (h != end()) 104 96 { … … 113 105 } 114 106 } 115 handlerList.push_back( Handler(reader, writer, description, extensions, iter - extensions) );107 handlerList.push_back( Handler(reader, writer, name, description, extensions, iter - extensions) ); 116 108 return MB_SUCCESS; 117 109 } 110 111 MBErrorCode MBReaderWriterSet::register_factory( reader_factory_t reader, 112 writer_factory_t writer, 113 const char* description, 114 const char* extension, 115 const char* name ) 116 { 117 const char* extensions[2] = {extension, NULL}; 118 return register_factory( reader, writer, description, extensions, name ); 119 } 120 118 121 119 122 MBReaderIface* MBReaderWriterSet::get_file_extension_reader( … … 121 124 { 122 125 std::string ext = extension_from_filename( filename ); 123 iter _typehandler = handler_from_extension( ext, true, false );126 iterator handler = handler_from_extension( ext, true, false ); 124 127 return handler == end() ? NULL : handler->make_reader(mbCore); 125 128 } … … 129 132 { 130 133 std::string ext = extension_from_filename( filename ); 131 iter _typehandler = handler_from_extension( ext, false, true );134 iterator handler = handler_from_extension( ext, false, true ); 132 135 return handler == end() ? NULL : handler->make_writer(mbCore); 133 136 } … … 145 148 MBReaderWriterSet::Handler::Handler( reader_factory_t read_f, 146 149 writer_factory_t write_f, 150 const char* name, 147 151 const char* desc, 148 const char* * ext,152 const char* const* ext, 149 153 int num_ext ) 150 : mReader(read_f), mWriter(write_f), m Description(desc), mExtensions(num_ext)154 : mReader(read_f), mWriter(write_f), mName(name), mDescription(desc), mExtensions(num_ext) 151 155 { 152 156 for (int i = 0; i < num_ext; ++i) … … 158 162 #endif 159 163 160 MBReaderWriterSet::iter _type164 MBReaderWriterSet::iterator 161 165 MBReaderWriterSet::handler_from_extension( const std::string& ext, 162 166 bool with_reader, 163 167 bool with_writer ) const 164 168 { 165 iter _typeiter;169 iterator iter; 166 170 std::vector<std::string>::const_iterator siter; 167 171 … … 192 196 return end(); 193 197 } 194 198 199 MBReaderWriterSet::iterator 200 MBReaderWriterSet::handler_by_name( const char* name ) const 201 { 202 return std::find( begin(), end(), name ); 203 } 204 205 bool MBReaderWriterSet::Handler::operator==( const char* name ) const 206 { 207 // do case-insensitive comparison 208 std::string::const_iterator siter = mName.begin(); 209 for (; *name; ++name, ++siter) 210 if (siter == mName.end() || tolower(*name) != tolower(*siter)) 211 return false; 212 return *name == '\0'; 213 } 214 215