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
15 class ReadSms : public ReaderIface
16 {
17
18 public:
19
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
35 ReadSms( Interface* impl = NULL );
36
37
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
54 ReadUtilIface* readMeshIface;
55
56
57 Interface* mdbImpl;
58
59 Tag globalId, paramCoords, geomDimension;
60
61 int setId;
62 };
63
64 }
65
66 #endif