genericIO
genericIO.h
1 #ifndef GENERIC_IO_H
2 #define GENERIC_IO_H 1
3 #include "genericFile.h"
4 #include "paramObj.h"
5 #include <memory>
6 #include <map>
7 #include <assert.h>
8 namespace SEP {
10 class genericIO {
11 public:
12 genericIO(){
13  ;
14 }
15 
21 std::shared_ptr<SEP::genericRegFile> getRegFile(const std::string &name,const SEP::usage_code usage);
22 std::shared_ptr<SEP::genericIrregFile> getIrregFile(const std::string& name,const SEP::usage_code usage);
23 virtual std::shared_ptr<SEP::genericRegFile> getRegFileTag(const std::string &tag, const std::string &name,const SEP::usage_code usage)=0;
24 virtual std::shared_ptr<SEP::genericIrregFile> getIrregFileTag(const std::string &tag,const std::string& name,const SEP::usage_code usage)=0;
25 virtual std::shared_ptr<paramObj> getParamObj(){
26  return _param;
27 }
28 void addRegFile(std::string x,std::shared_ptr<genericRegFile> r){
29  _regFiles[x]=r;
30 }
31 void addIrregFile(std::string x, std::shared_ptr<genericIrregFile> r){
32  _irregFiles[x]=r;
33 }
34 std::shared_ptr<genericRegFile> getRegFile(const std::string x){
35  if(!regFileExists(x))
36  _param->error(std::string("Requested unknown file ")+x);
37  return _regFiles[x];
38 }
39 bool regFileExists(const std::string name){
40  if(_regFiles.count(name)==0) return false;
41  return true;
42 }
43 bool irregFileExists(const std::string name){
44  if(_irregFiles.count(name)==0) return false;
45  return true;
46 }
47 
48 std::shared_ptr<genericIrregFile> getIrregFile(const std::string x){
49  if(_irregFiles.count(x)==0)
50  _param->error(std::string("Requested unknown file ")+x);
51  return _irregFiles[x];
52 }
53 void setValid(const bool x){
54  _valid=x;
55 }
56 bool getValid(){
57  return _valid;
58 }
59 
60 virtual void close(){
61  filesClose();
62 }
63 
64 ~genericIO(){
65  close();
66 }
67 virtual void filesClose();
68 protected:
69 std::map<std::string,std::shared_ptr<genericRegFile> > _regFiles;
70 std::map<std::string, std::shared_ptr<genericIrregFile> > _irregFiles;
71 std::shared_ptr<paramObj> _param;
72 bool _valid;
73 };
74 
75 }
76 #endif
Definition: genericIO.h:10
std::shared_ptr< SEP::genericRegFile > getRegFile(const std::string &name, const SEP::usage_code usage)
Return genericRegFile object for this IO (abstract)
Definition: genericIO.cpp:13
Definition: axis.h:8