Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
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,
00023                          const EntityHandle* file_set,
00024                          const FileOptions& opts,
00025                          const SubsetList* subset_list = 0,
00026                          const Tag* file_id_tag        = 0 );
00027 
00028     ErrorCode read_tag_values( const char* file_name,
00029                                const char* tag_name,
00030                                const FileOptions& opts,
00031                                std::vector< int >& tag_values_out,
00032                                const SubsetList* subset_list = 0 );
00033 
00034     //! Constructor
00035     ReadSms( Interface* impl = NULL );
00036 
00037     //! Destructor
00038     virtual ~ReadSms();
00039 
00040   private:
00041     ErrorCode add_entities( EntityHandle start, EntityHandle count, const Tag* file_id_tag );
00042 
00043     ErrorCode load_file_impl( FILE* file, const Tag* file_id_tag );
00044 
00045     ErrorCode get_set( std::vector< EntityHandle >* sets,
00046                        int set_type,
00047                        int set_id,
00048                        Tag set_tag,
00049                        EntityHandle& this_set,
00050                        const Tag* file_id_tag );
00051 
00052     ErrorCode read_parallel_info( FILE* file_ptr );
00053 
00054     ReadUtilIface* readMeshIface;
00055 
00056     //! interface instance
00057     Interface* mdbImpl;
00058 
00059     Tag globalId, paramCoords, geomDimension;
00060 
00061     int setId;
00062 };
00063 
00064 }  // namespace moab
00065 
00066 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines