Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
ReadSms.hpp
Go to the documentation of this file.
1 #ifndef READ_SMS_HPP
2 #define READ_SMS_HPP
3 
4 #include "moab/Forward.hpp"
5 #include "moab/ReaderIface.hpp"
6 #include "moab/Range.hpp"
7 #include <vector>
8 
9 namespace moab
10 {
11 
12 class ReadUtilIface;
13 
14 // Base class for binary and ASCII readers
15 class ReadSms : public ReaderIface
16 {
17 
18  public:
19  //! factory method
20  static ReaderIface* factory( Interface* );
21 
22  ErrorCode load_file( const char* file_name,
23  const EntityHandle* file_set,
24  const FileOptions& opts,
25  const SubsetList* subset_list = 0,
26  const Tag* file_id_tag = 0 );
27 
28  ErrorCode read_tag_values( const char* file_name,
29  const char* tag_name,
30  const FileOptions& opts,
31  std::vector< int >& tag_values_out,
32  const SubsetList* subset_list = 0 );
33 
34  //! Constructor
35  ReadSms( Interface* impl = NULL );
36 
37  //! Destructor
38  virtual ~ReadSms();
39 
40  private:
41  ErrorCode add_entities( EntityHandle start, EntityHandle count, const Tag* file_id_tag );
42 
43  ErrorCode load_file_impl( FILE* file, const Tag* file_id_tag );
44 
45  ErrorCode get_set( std::vector< EntityHandle >* sets,
46  int set_type,
47  int set_id,
48  Tag set_tag,
49  EntityHandle& this_set,
50  const Tag* file_id_tag );
51 
52  ErrorCode read_parallel_info( FILE* file_ptr );
53 
55 
56  //! interface instance
58 
60 
61  int setId;
62 };
63 
64 } // namespace moab
65 
66 #endif