MOAB: Mesh Oriented datABase
(version 5.2.1)
|
00001 #ifndef READ_SMS_HPP 00002 #define READ_SMS_HPP 00003 00004 #include "moab/Forward.hpp" 00005 #include "moab/ReaderIface.hpp" 00006 #include "moab/Range.hpp" 00007 #include <vector> 00008 00009 namespace moab 00010 { 00011 00012 class ReadUtilIface; 00013 00014 // Base class for binary and ASCII readers 00015 class ReadSms : public ReaderIface 00016 { 00017 00018 public: 00019 //! factory method 00020 static ReaderIface* factory( Interface* ); 00021 00022 ErrorCode load_file( const char* file_name, const EntityHandle* file_set, const FileOptions& opts, 00023 const SubsetList* subset_list = 0, const Tag* file_id_tag = 0 ); 00024 00025 ErrorCode read_tag_values( const char* file_name, const char* tag_name, const FileOptions& opts, 00026 std::vector< int >& tag_values_out, const SubsetList* subset_list = 0 ); 00027 00028 //! Constructor 00029 ReadSms( Interface* impl = NULL ); 00030 00031 //! Destructor 00032 virtual ~ReadSms(); 00033 00034 private: 00035 ErrorCode add_entities( EntityHandle start, EntityHandle count, const Tag* file_id_tag ); 00036 00037 ErrorCode load_file_impl( FILE* file, const Tag* file_id_tag ); 00038 00039 ErrorCode get_set( std::vector< EntityHandle >* sets, int set_type, int set_id, Tag set_tag, EntityHandle& this_set, 00040 const Tag* file_id_tag ); 00041 00042 ErrorCode read_parallel_info( FILE* file_ptr ); 00043 00044 ReadUtilIface* readMeshIface; 00045 00046 //! interface instance 00047 Interface* mdbImpl; 00048 00049 Tag globalId, paramCoords, geomDimension; 00050 00051 int setId; 00052 }; 00053 00054 } // namespace moab 00055 00056 #endif