$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 /* 00002 * RegisterView.cpp 00003 * 00004 * Created on: Jul 29, 2015 00005 * Author: parilla 00006 */ 00007 00008 #include "otsdaq-core/ConfigurationDataFormats/RegisterView.h" 00009 00010 using namespace ots; 00011 00012 RegisterView::RegisterView(std::string name) 00013 : name_(name), version_(-1), comment_(""), author_(""), creationTime_(time(0)) 00014 { 00015 } 00016 //============================================================================== 00017 RegisterView::~RegisterView() 00018 { 00019 // TODO Auto-generated destructor stub 00020 } 00021 //============================================================================== 00022 unsigned int RegisterView::findRow(unsigned int col, const std::string value) const 00023 { 00024 for(unsigned int row = 0; row < theDataView_.size(); row++) 00025 { 00026 if(theDataView_[row][col] == value) 00027 return row; 00028 } 00029 // std::cout << __COUT_HDR_FL__ << "\tIn view: " << name_ << " I Can't find " << value 00030 // << " in column " << col << " with name: " << registersInfo_[col].getName() << 00031 // std::endl; 00032 assert(0); 00033 return 0; 00034 } 00035 00036 //============================================================================== 00037 unsigned int RegisterView::findRow(unsigned int col, const unsigned int value) const 00038 { 00039 std::stringstream s; 00040 s << value; 00041 return findRow(col, s.str()); 00042 } 00043 // Getters 00044 //============================================================================== 00045 std::string RegisterView::getName(void) const { return name_; } 00046 00047 //============================================================================== 00048 int RegisterView::getVersion(void) const { return version_; } 00049 00050 //============================================================================== 00051 std::string RegisterView::getComment(void) const { return comment_; } 00052 00053 //============================================================================== 00054 std::string RegisterView::getAuthor(void) const { return author_; } 00055 //============================================================================== 00056 time_t RegisterView::getCreationTime(void) const { return creationTime_; } 00057 //============================================================================== 00058 const std::vector<ViewRegisterInfo>& RegisterView::getRegistersInfo(void) const 00059 { 00060 return registersInfo_; 00061 } 00062 //============================================================================== 00063 std::vector<ViewRegisterInfo>* RegisterView::getRegistersInfoPointer(void) 00064 { 00065 return ®istersInfo_; 00066 } 00067 //============================================================================== 00068 const std::vector<ViewRegisterSequencerInfo>& RegisterView::getRegistersSequencerInfo( 00069 void) const 00070 { 00071 return registersSequencerInfo_; 00072 } 00073 //============================================================================== 00074 std::vector<ViewRegisterSequencerInfo>* RegisterView::getRegistersSequencerInfoPointer( 00075 void) 00076 { 00077 return ®istersSequencerInfo_; 00078 } 00079 //============================================================================== 00080 unsigned int RegisterView::getNumberOfRows(void) const { return theDataView_.size(); } 00081 00082 //============================================================================== 00083 unsigned int RegisterView::getNumberOfColumns(void) const 00084 { 00085 // return registersInfo_.getNumberOfColumns(); 00086 return 1; 00087 } 00088 // Setters 00089 //============================================================================== 00090 void RegisterView::setName(std::string name) { name_ = name; } 00091 00092 //============================================================================== 00093 void RegisterView::setVersion(int version) { version_ = version; } 00094 00095 //============================================================================== 00096 void RegisterView::setVersion(char* version) { version_ = atoi(version); } 00097 00098 //============================================================================== 00099 void RegisterView::setComment(std::string comment) { comment_ = comment; } 00100 00101 //============================================================================== 00102 void RegisterView::setAuthor(std::string author) { author_ = author; } 00103 //============================================================================== 00104 void RegisterView::setCreationTime(time_t t) { creationTime_ = t; } 00105 //============================================================================== 00106 /*void RegisterView::reset (void) 00107 { 00108 version_ = -1; 00109 comment_ = ""; 00110 author_ + ""; 00111 columnsInfo_.clear(); 00112 theDataView_.clear(); 00113 }*/ 00114 //============================================================================== 00115 // returns index of added row, always is last row 00116 // return -1 on failure 00117 int RegisterView::addRow(void) 00118 { 00119 int row = getNumberOfRows(); 00120 theDataView_.resize(getNumberOfRows() + 1, 00121 std::vector<std::string>(getNumberOfColumns())); 00122 00123 // fill each col of new row with default values 00124 for(unsigned int col = 0; col < getNumberOfColumns(); ++col) 00125 { 00126 theDataView_[row][col] = "DEFAULT"; // GET COLUMN NAMES 00127 } 00128 00129 return row; 00130 } 00131 00132 //============================================================================== 00133 // returns true on success 00134 // return false on failure 00135 bool RegisterView::deleteRow(int r) 00136 { 00137 if(r >= (int)getNumberOfRows()) 00138 return false; // out of bounds 00139 00140 theDataView_.erase(theDataView_.begin() + r); 00141 return true; 00142 }