otsdaq  v1_01_03
 All Classes Namespaces Functions
RegisterView.cpp
1 /*
2  * RegisterView.cpp
3  *
4  * Created on: Jul 29, 2015
5  * Author: parilla
6  */
7 
8 #include "otsdaq-core/ConfigurationDataFormats/RegisterView.h"
9 
10 using namespace ots;
11 
12 RegisterView::RegisterView(std::string name):
13  name_ (name),
14  version_(-1),
15  comment_(""),
16  author_ (""),
17  creationTime_ (time(0))
18 {}
19 //==============================================================================
20 RegisterView::~RegisterView() {
21  // TODO Auto-generated destructor stub
22 }
23 //==============================================================================
24 unsigned int RegisterView::findRow(unsigned int col, const std::string value) const
25 {
26  for(unsigned int row=0; row<theDataView_.size(); row++)
27  {
28  if(theDataView_[row][col] == value)
29  return row;
30  }
31  //std::cout << __COUT_HDR_FL__ << "\tIn view: " << name_ << " I Can't find " << value << " in column " << col << " with name: " << registersInfo_[col].getName() << std::endl;
32  assert(0);
33  return 0;
34 }
35 
36 //==============================================================================
37 unsigned int RegisterView::findRow(unsigned int col, const unsigned int value) const
38 {
39  std::stringstream s;
40  s << value;
41  return findRow(col,s.str());
42 }
43 //Getters
44 //==============================================================================
45 std::string RegisterView::getName(void) const
46 {
47  return name_;
48 }
49 
50 //==============================================================================
51 int RegisterView::getVersion(void) const
52 {
53  return version_;
54 }
55 
56 //==============================================================================
57 std::string RegisterView::getComment(void) const
58 {
59  return comment_;
60 }
61 
62 //==============================================================================
63 std::string RegisterView::getAuthor(void) const
64 {
65  return author_;
66 }
67 //==============================================================================
68 time_t RegisterView::getCreationTime(void) const
69 {
70  return creationTime_;
71 }
72 //==============================================================================
73 const std::vector<ViewRegisterInfo>& RegisterView::getRegistersInfo (void) const
74 {
75  return registersInfo_;
76 }
77 //==============================================================================
78 std::vector<ViewRegisterInfo>* RegisterView::getRegistersInfoPointer(void)
79 {
80  return &registersInfo_;
81 }
82 //==============================================================================
83 const std::vector<ViewRegisterSequencerInfo>& RegisterView::getRegistersSequencerInfo (void) const
84 {
85  return registersSequencerInfo_;
86 }
87 //==============================================================================
88 std::vector<ViewRegisterSequencerInfo>* RegisterView::getRegistersSequencerInfoPointer(void)
89 {
90  return &registersSequencerInfo_;
91 }
92 //==============================================================================
93 unsigned int RegisterView::getNumberOfRows(void) const
94 {
95  return theDataView_.size();
96 }
97 
98 //==============================================================================
99 unsigned int RegisterView::getNumberOfColumns(void) const
100 {
101  //return registersInfo_.getNumberOfColumns();
102  return 1;
103  }
104 //Setters
105 //==============================================================================
106 void RegisterView::setName(std::string name)
107 {
108  name_ = name;
109 }
110 
111 //==============================================================================
112 void RegisterView::setVersion(int version)
113 {
114  version_ = version;
115 }
116 
117 //==============================================================================
118 void RegisterView::setVersion(char* version)
119 {
120  version_ = atoi(version);
121 }
122 
123 //==============================================================================
124 void RegisterView::setComment(std::string comment)
125 {
126  comment_ = comment;
127 }
128 
129 //==============================================================================
130 void RegisterView::setAuthor(std::string author)
131 {
132  author_ = author;
133 }
134 //==============================================================================
135 void RegisterView::setCreationTime(time_t t)
136 {
137  creationTime_ = t;
138 }
139 //==============================================================================
140 /*void RegisterView::reset (void)
141 {
142  version_ = -1;
143  comment_ = "";
144  author_ + "";
145  columnsInfo_.clear();
146  theDataView_.clear();
147  }*/
148 //==============================================================================
149 //returns index of added row, always is last row
150 //return -1 on failure
151 int RegisterView::addRow (void)
152 {
153  int row = getNumberOfRows();
154  theDataView_.resize(getNumberOfRows()+1,std::vector<std::string>(getNumberOfColumns()));
155 
156  //fill each col of new row with default values
157  for(unsigned int col=0;col<getNumberOfColumns();++col){
158  theDataView_[row][col] = "DEFAULT"; //GET COLUMN NAMES
159  }
160 
161  return row;
162 }
163 
164 //==============================================================================
165 //returns true on success
166 //return false on failure
167 bool RegisterView::deleteRow(int r)
168 {
169  if(r >= (int)getNumberOfRows()) return false; //out of bounds
170 
171  theDataView_.erase(theDataView_.begin()+r);
172  return true;
173 }