MOAB: Mesh Oriented datABase  (version 5.2.1)
ReadSms.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines