CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
MonPNGreenDat Class Reference

#include <MonPNGreenDat.h>

Inheritance diagram for MonPNGreenDat:
IDataItem IDBObject

Public Member Functions

float getADCMeanG1 () const
 
float getADCMeanG16 () const
 
float getADCRMSG1 () const
 
float getADCRMSG16 () const
 
float getPedMeanG1 () const
 
float getPedMeanG16 () const
 
float getPedRMSG1 () const
 
float getPedRMSG16 () const
 
std::string getTable ()
 
bool getTaskStatus () const
 
 MonPNGreenDat ()
 
void setADCMeanG1 (float mean)
 
void setADCMeanG16 (float mean)
 
void setADCRMSG1 (float mean)
 
void setADCRMSG16 (float mean)
 
void setPedMeanG1 (float mean)
 
void setPedMeanG16 (float mean)
 
void setPedRMSG1 (float mean)
 
void setPedRMSG16 (float mean)
 
void setTaskStatus (bool status)
 
 ~MonPNGreenDat ()
 
- Public Member Functions inherited from IDataItem
 IDataItem ()
 
- Public Member Functions inherited from IDBObject
oracle::occi::Connection * getConn () const
 
oracle::occi::Environment * getEnv () const
 
void setConnection (oracle::occi::Environment *env, oracle::occi::Connection *conn)
 
virtual ~IDBObject ()
 

Private Member Functions

void fetchData (std::map< EcalLogicID, MonPNGreenDat > *fillVec, MonRunIOV *iov) noexcept(false)
 
void prepareWrite () noexcept(false)
 
void writeArrayDB (const std::map< EcalLogicID, MonPNGreenDat > *data, MonRunIOV *iov) noexcept(false)
 
void writeDB (const EcalLogicID *ecid, const MonPNGreenDat *item, MonRunIOV *iov) noexcept(false)
 

Private Attributes

float m_adcMeanG1
 
float m_adcMeanG16
 
float m_adcRMSG1
 
float m_adcRMSG16
 
float m_pedMeanG1
 
float m_pedMeanG16
 
float m_pedRMSG1
 
float m_pedRMSG16
 
bool m_taskStatus
 

Friends

class EcalCondDBInterface
 

Additional Inherited Members

- Static Public Attributes inherited from IDBObject
static int const ECALDB_NROWS =1024
 
- Protected Member Functions inherited from IDataItem
void checkPrepare () noexcept(false)
 
void createReadStatement () noexcept(false)
 
void setPrefetchRowCount (int ncount) noexcept(false)
 
void terminateReadStatement () noexcept(false)
 
void terminateWriteStatement () noexcept(false)
 
- Protected Member Functions inherited from IDBObject
void checkConnection () const noexcept(false)
 
- Protected Attributes inherited from IDataItem
oracle::occi::Statement * m_readStmt
 
oracle::occi::Statement * m_writeStmt
 
- Protected Attributes inherited from IDBObject
oracle::occi::Connection * m_conn
 
oracle::occi::Environment * m_env
 

Detailed Description

Definition at line 12 of file MonPNGreenDat.h.

Constructor & Destructor Documentation

MonPNGreenDat::MonPNGreenDat ( )

Definition at line 12 of file MonPNGreenDat.cc.

References NULL.

13 {
14  m_env = NULL;
15  m_conn = NULL;
16  m_writeStmt = NULL;
17  m_readStmt = NULL;
18 
19  m_adcMeanG1 =0;
20  m_adcRMSG1 = 0;
21  m_adcMeanG16 = 0;
22  m_adcRMSG16 = 0;
23  m_pedMeanG1 = 0;
24  m_pedRMSG1 = 0;
25  m_pedMeanG16 = 0;
26  m_pedRMSG16 = 0;
27  m_taskStatus = 0;
28 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:28
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
#define NULL
Definition: scimark2.h:8
float m_adcMeanG16
Definition: MonPNGreenDat.h:65
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:29
float m_pedMeanG16
Definition: MonPNGreenDat.h:69
MonPNGreenDat::~MonPNGreenDat ( )

Definition at line 32 of file MonPNGreenDat.cc.

33 {
34 }

Member Function Documentation

void MonPNGreenDat::fetchData ( std::map< EcalLogicID, MonPNGreenDat > *  fillVec,
MonRunIOV iov 
)
privatenoexcept

Definition at line 90 of file MonPNGreenDat.cc.

References MillePedeFileConverter_cfg::e, AlCaHLTBitMon_ParallelJobs::p, setADCMeanG1(), setADCMeanG16(), setADCRMSG1(), setADCRMSG16(), setPedMeanG1(), setPedMeanG16(), setPedRMSG1(), setPedRMSG16(), and setTaskStatus().

Referenced by getTaskStatus().

92 {
93  this->checkConnection();
94  fillMap->clear();
95 
96  iov->setConnection(m_env, m_conn);
97  int iovID = iov->fetchID();
98  if (!iovID) {
99  // throw(std::runtime_error("MonPNGreenDat::writeDB: IOV not in DB"));
100  return;
101  }
102 
103  try {
104 
105  m_readStmt->setSQL("SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, "
106  "d.adc_mean_g1, d.adc_rms_g1, d.adc_mean_g16, d.adc_rms_g16, d.ped_mean_g1,d.ped_rms_g1, d.ped_mean_g16, d.ped_rms_g16, d.task_status "
107  "FROM channelview cv JOIN mon_pn_green_dat d "
108  "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to "
109  "WHERE d.iov_id = :iov_id");
110  m_readStmt->setInt(1, iovID);
111  ResultSet* rset = m_readStmt->executeQuery();
112 
113  std::pair< EcalLogicID, MonPNGreenDat > p;
114  MonPNGreenDat dat;
115  while(rset->next()) {
116  p.first = EcalLogicID( rset->getString(1), // name
117  rset->getInt(2), // logic_id
118  rset->getInt(3), // id1
119  rset->getInt(4), // id2
120  rset->getInt(5), // id3
121  rset->getString(6)); // maps_to
122 
123  dat.setADCMeanG1( rset->getFloat(7) );
124  dat.setADCRMSG1( rset->getFloat(8) );
125  dat.setADCMeanG16( rset->getFloat(9) );
126  dat.setADCRMSG16( rset->getFloat(10) );
127  dat.setPedMeanG1( rset->getFloat(11) );
128  dat.setPedRMSG1( rset->getFloat(12) );
129  dat.setPedMeanG16( rset->getFloat(13) );
130  dat.setPedRMSG16( rset->getFloat(14) );
131  dat.setTaskStatus( rset->getInt(15) );
132  p.second = dat;
133  fillMap->insert(p);
134  }
135  } catch (SQLException &e) {
136  throw(std::runtime_error("MonPNGreenDat::fetchData(): "+e.getMessage()));
137  }
138 }
int fetchID() noexcept(false)
Definition: MonRunIOV.cc:118
oracle::occi::Environment * m_env
Definition: IDBObject.h:38
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void setADCRMSG1(float mean)
Definition: MonPNGreenDat.h:24
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
void setTaskStatus(bool status)
Definition: MonPNGreenDat.h:45
void setPedRMSG1(float mean)
Definition: MonPNGreenDat.h:36
void setADCMeanG1(float mean)
Definition: MonPNGreenDat.h:21
void setADCRMSG16(float mean)
Definition: MonPNGreenDat.h:30
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:29
void setADCMeanG16(float mean)
Definition: MonPNGreenDat.h:27
void setPedMeanG1(float mean)
Definition: MonPNGreenDat.h:33
void setPedRMSG16(float mean)
Definition: MonPNGreenDat.h:42
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
void setPedMeanG16(float mean)
Definition: MonPNGreenDat.h:39
float MonPNGreenDat::getADCMeanG1 ( ) const
inline

Definition at line 22 of file MonPNGreenDat.h.

References m_adcMeanG1.

Referenced by writeArrayDB().

22 { return m_adcMeanG1; }
float MonPNGreenDat::getADCMeanG16 ( ) const
inline

Definition at line 28 of file MonPNGreenDat.h.

References m_adcMeanG16.

Referenced by writeArrayDB().

28 { return m_adcMeanG16; }
float m_adcMeanG16
Definition: MonPNGreenDat.h:65
float MonPNGreenDat::getADCRMSG1 ( ) const
inline

Definition at line 25 of file MonPNGreenDat.h.

References m_adcRMSG1.

Referenced by writeArrayDB().

25 { return m_adcRMSG1; }
float MonPNGreenDat::getADCRMSG16 ( ) const
inline

Definition at line 31 of file MonPNGreenDat.h.

References m_adcRMSG16.

Referenced by writeArrayDB().

31 { return m_adcRMSG16; }
float MonPNGreenDat::getPedMeanG1 ( ) const
inline

Definition at line 34 of file MonPNGreenDat.h.

References m_pedMeanG1.

Referenced by writeArrayDB().

34 { return m_pedMeanG1; }
float MonPNGreenDat::getPedMeanG16 ( ) const
inline

Definition at line 40 of file MonPNGreenDat.h.

References m_pedMeanG16.

Referenced by writeArrayDB().

40 { return m_pedMeanG16; }
float m_pedMeanG16
Definition: MonPNGreenDat.h:69
float MonPNGreenDat::getPedRMSG1 ( ) const
inline

Definition at line 37 of file MonPNGreenDat.h.

References m_pedRMSG1.

Referenced by writeArrayDB().

37 { return m_pedRMSG1; }
float MonPNGreenDat::getPedRMSG16 ( ) const
inline

Definition at line 43 of file MonPNGreenDat.h.

References m_pedRMSG16.

Referenced by writeArrayDB().

43 { return m_pedRMSG16; }
std::string MonPNGreenDat::getTable ( )
inlinevirtual

Implements IDataItem.

Definition at line 19 of file MonPNGreenDat.h.

19 { return "MON_PN_GREEN_DAT"; }
bool MonPNGreenDat::getTaskStatus ( ) const
inline

Definition at line 46 of file MonPNGreenDat.h.

References data, fetchData(), m_taskStatus, noexcept, prepareWrite(), writeArrayDB(), and writeDB().

Referenced by writeArrayDB().

46 { return m_taskStatus; }
void MonPNGreenDat::prepareWrite ( )
privatevirtualnoexcept

Implements IDataItem.

Definition at line 38 of file MonPNGreenDat.cc.

References MillePedeFileConverter_cfg::e.

Referenced by getTaskStatus().

40 {
41  this->checkConnection();
42 
43  try {
44  m_writeStmt = m_conn->createStatement();
45  m_writeStmt->setSQL("INSERT INTO mon_pn_green_dat (iov_id, logic_id, "
46  "adc_mean_g1, adc_rms_g1, adc_mean_g16, adc_rms_g16, ped_mean_g1, ped_rms_g1, ped_mean_g16, ped_rms_g16, task_status) "
47  "VALUES (:iov_id, :logic_id, "
48  ":3, :4, :5, :6, :7, :8, :9, :10, :11)");
49  } catch (SQLException &e) {
50  throw(std::runtime_error("MonPNGreenDat::prepareWrite(): "+e.getMessage()));
51  }
52 }
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:28
oracle::occi::Connection * m_conn
Definition: IDBObject.h:39
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
void MonPNGreenDat::setADCMeanG1 ( float  mean)
inline
void MonPNGreenDat::setADCMeanG16 ( float  mean)
inline
void MonPNGreenDat::setADCRMSG1 ( float  mean)
inline
void MonPNGreenDat::setADCRMSG16 ( float  mean)
inline
void MonPNGreenDat::setPedMeanG1 ( float  mean)
inline
void MonPNGreenDat::setPedMeanG16 ( float  mean)
inline
void MonPNGreenDat::setPedRMSG1 ( float  mean)
inline
void MonPNGreenDat::setPedRMSG16 ( float  mean)
inline
void MonPNGreenDat::setTaskStatus ( bool  status)
inline

Definition at line 45 of file MonPNGreenDat.h.

References m_taskStatus, and mps_update::status.

Referenced by fetchData(), and ecaldqm::LaserWriter::run().

void MonPNGreenDat::writeArrayDB ( const std::map< EcalLogicID, MonPNGreenDat > *  data,
MonRunIOV iov 
)
privatenoexcept

Definition at line 139 of file MonPNGreenDat.cc.

References KineDebug3::count(), data, MillePedeFileConverter_cfg::e, getADCMeanG1(), getADCMeanG16(), getADCRMSG1(), getADCRMSG16(), EcalLogicID::getLogicID(), getPedMeanG1(), getPedMeanG16(), getPedRMSG1(), getPedRMSG16(), getTaskStatus(), AlCaHLTBitMon_ParallelJobs::p, pi, createTree::pp, alignCSCRings::r, findQualityFiles::rr, lumiQTWidget::t, groupFilesInBlocks::tt, w, x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, and geometryCSVtoXML::zz.

Referenced by getTaskStatus().

141 {
142  this->checkConnection();
143  this->checkPrepare();
144 
145  int iovID = iov->fetchID();
146  if (!iovID) { throw(std::runtime_error("MonPNGreenDat::writeArrayDB: IOV not in DB")); }
147 
148 
149  int nrows=data->size();
150  int* ids= new int[nrows];
151  int* iovid_vec= new int[nrows];
152  float* xx= new float[nrows];
153  float* yy= new float[nrows];
154  float* zz= new float[nrows];
155  float* ww= new float[nrows];
156  float* uu= new float[nrows];
157  float* tt= new float[nrows];
158  float* rr= new float[nrows];
159  float* pp= new float[nrows];
160  int* st= new int[nrows];
161 
162  ub2* ids_len= new ub2[nrows];
163  ub2* iov_len= new ub2[nrows];
164  ub2* x_len= new ub2[nrows];
165  ub2* y_len= new ub2[nrows];
166  ub2* z_len= new ub2[nrows];
167  ub2* w_len= new ub2[nrows];
168  ub2* u_len= new ub2[nrows];
169  ub2* t_len= new ub2[nrows];
170  ub2* r_len= new ub2[nrows];
171  ub2* p_len= new ub2[nrows];
172  ub2* st_len= new ub2[nrows];
173 
174  const EcalLogicID* channel;
175  const MonPNGreenDat* dataitem;
176  int count=0;
177  typedef map< EcalLogicID, MonPNGreenDat >::const_iterator CI;
178  for (CI p = data->begin(); p != data->end(); ++p) {
179  channel = &(p->first);
180  int logicID = channel->getLogicID();
181  if (!logicID) { throw(std::runtime_error("MonPNGreenDat::writeArrayDB: Bad EcalLogicID")); }
182  ids[count]=logicID;
183  iovid_vec[count]=iovID;
184 
185  dataitem = &(p->second);
186  // dataIface.writeDB( channel, dataitem, iov);
187  float x=dataitem->getADCMeanG1();
188  float y=dataitem->getADCRMSG1();
189  float z=dataitem->getADCMeanG16();
190  float w=dataitem->getADCRMSG16();
191  float u=dataitem->getPedMeanG1();
192  float t=dataitem->getPedRMSG1();
193  float r=dataitem->getPedMeanG16();
194  float pi=dataitem->getPedRMSG16();
195  int statu=dataitem->getTaskStatus();
196 
197 
198 
199  xx[count]=x;
200  yy[count]=y;
201  zz[count]=z;
202  ww[count]=w;
203  uu[count]=u;
204  tt[count]=t;
205  rr[count]=r;
206  pp[count]=pi;
207  st[count]=statu;
208 
209 
210  ids_len[count]=sizeof(ids[count]);
211  iov_len[count]=sizeof(iovid_vec[count]);
212 
213  x_len[count]=sizeof(xx[count]);
214  y_len[count]=sizeof(yy[count]);
215  z_len[count]=sizeof(zz[count]);
216  w_len[count]=sizeof(ww[count]);
217  u_len[count]=sizeof(uu[count]);
218  t_len[count]=sizeof(tt[count]);
219  r_len[count]=sizeof(rr[count]);
220  p_len[count]=sizeof(pp[count]);
221  st_len[count]=sizeof(st[count]);
222 
223  count++;
224  }
225 
226 
227  try {
228  m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT, sizeof(iovid_vec[0]),iov_len);
229  m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len );
230  m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT , sizeof(xx[0]), x_len );
231  m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT , sizeof(yy[0]), y_len );
232  m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT , sizeof(zz[0]), z_len );
233  m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT , sizeof(ww[0]), w_len );
234  m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIFLOAT , sizeof(uu[0]), u_len );
235  m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIFLOAT , sizeof(tt[0]), t_len );
236  m_writeStmt->setDataBuffer(9, (dvoid*)rr, OCCIFLOAT , sizeof(rr[0]), r_len );
237  m_writeStmt->setDataBuffer(10, (dvoid*)pp, OCCIFLOAT , sizeof(pp[0]), p_len );
238  m_writeStmt->setDataBuffer(11, (dvoid*)st, OCCIINT , sizeof(st[0]), st_len );
239 
240 
241  m_writeStmt->executeArrayUpdate(nrows);
242 
243  delete [] ids;
244  delete [] iovid_vec;
245  delete [] xx;
246  delete [] yy;
247  delete [] zz;
248  delete [] ww;
249  delete [] uu;
250  delete [] tt;
251  delete [] rr;
252  delete [] pp;
253  delete [] st;
254 
255  delete [] ids_len;
256  delete [] iov_len;
257  delete [] x_len;
258  delete [] y_len;
259  delete [] z_len;
260  delete [] w_len;
261  delete [] u_len;
262  delete [] t_len;
263  delete [] r_len;
264  delete [] p_len;
265  delete [] st_len;
266 
267 
268 
269  } catch (SQLException &e) {
270  throw(std::runtime_error("MonPNGreenDat::writeArrayDB(): "+e.getMessage()));
271  }
272 }
int fetchID() noexcept(false)
Definition: MonRunIOV.cc:118
float getADCMeanG1() const
Definition: MonPNGreenDat.h:22
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:28
const double w
Definition: UKUtility.cc:23
float getPedRMSG1() const
Definition: MonPNGreenDat.h:37
void checkPrepare() noexcept(false)
Definition: IDataItem.h:31
float getADCRMSG16() const
Definition: MonPNGreenDat.h:31
bool getTaskStatus() const
Definition: MonPNGreenDat.h:46
float getPedMeanG16() const
Definition: MonPNGreenDat.h:40
const Double_t pi
float getADCRMSG1() const
Definition: MonPNGreenDat.h:25
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
int getLogicID() const
Definition: EcalLogicID.cc:41
float getADCMeanG16() const
Definition: MonPNGreenDat.h:28
float getPedMeanG1() const
Definition: MonPNGreenDat.h:34
float getPedRMSG16() const
Definition: MonPNGreenDat.h:43
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void MonPNGreenDat::writeDB ( const EcalLogicID ecid,
const MonPNGreenDat item,
MonRunIOV iov 
)
privatenoexcept

Definition at line 56 of file MonPNGreenDat.cc.

References MillePedeFileConverter_cfg::e.

Referenced by getTaskStatus().

58 {
59  this->checkConnection();
60  this->checkPrepare();
61 
62  int iovID = iov->fetchID();
63  if (!iovID) { throw(std::runtime_error("MonPNGreenDat::writeDB: IOV not in DB")); }
64 
65  int logicID = ecid->getLogicID();
66  if (!logicID) { throw(std::runtime_error("MonPNGreenDat::writeDB: Bad EcalLogicID")); }
67 
68  try {
69  m_writeStmt->setInt(1, iovID);
70  m_writeStmt->setInt(2, logicID);
71 
72  m_writeStmt->setFloat(3, item->getADCMeanG1() );
73  m_writeStmt->setFloat(4, item->getADCRMSG1() );
74  m_writeStmt->setFloat(5, item->getADCMeanG16() );
75  m_writeStmt->setFloat(6, item->getADCRMSG16() );
76  m_writeStmt->setFloat(7, item->getPedMeanG1() );
77  m_writeStmt->setFloat(8, item->getPedRMSG1() );
78  m_writeStmt->setFloat(9, item->getPedMeanG16() );
79  m_writeStmt->setFloat(10, item->getPedRMSG16() );
80  m_writeStmt->setInt(11, item->getTaskStatus() );
81 
82  m_writeStmt->executeUpdate();
83  } catch (SQLException &e) {
84  throw(std::runtime_error("MonPNGreenDat::writeDB(): "+e.getMessage()));
85  }
86 }
int fetchID() noexcept(false)
Definition: MonRunIOV.cc:118
float getADCMeanG1() const
Definition: MonPNGreenDat.h:22
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:28
float getPedRMSG1() const
Definition: MonPNGreenDat.h:37
void checkPrepare() noexcept(false)
Definition: IDataItem.h:31
float getADCRMSG16() const
Definition: MonPNGreenDat.h:31
bool getTaskStatus() const
Definition: MonPNGreenDat.h:46
float getPedMeanG16() const
Definition: MonPNGreenDat.h:40
float getADCRMSG1() const
Definition: MonPNGreenDat.h:25
void checkConnection() const noexcept(false)
Definition: IDBObject.h:41
int getLogicID() const
Definition: EcalLogicID.cc:41
float getADCMeanG16() const
Definition: MonPNGreenDat.h:28
float getPedMeanG1() const
Definition: MonPNGreenDat.h:34
float getPedRMSG16() const
Definition: MonPNGreenDat.h:43

Friends And Related Function Documentation

friend class EcalCondDBInterface
friend

Definition at line 14 of file MonPNGreenDat.h.

Member Data Documentation

float MonPNGreenDat::m_adcMeanG1
private

Definition at line 63 of file MonPNGreenDat.h.

Referenced by getADCMeanG1(), and setADCMeanG1().

float MonPNGreenDat::m_adcMeanG16
private

Definition at line 65 of file MonPNGreenDat.h.

Referenced by getADCMeanG16(), and setADCMeanG16().

float MonPNGreenDat::m_adcRMSG1
private

Definition at line 64 of file MonPNGreenDat.h.

Referenced by getADCRMSG1(), and setADCRMSG1().

float MonPNGreenDat::m_adcRMSG16
private

Definition at line 66 of file MonPNGreenDat.h.

Referenced by getADCRMSG16(), and setADCRMSG16().

float MonPNGreenDat::m_pedMeanG1
private

Definition at line 67 of file MonPNGreenDat.h.

Referenced by getPedMeanG1(), and setPedMeanG1().

float MonPNGreenDat::m_pedMeanG16
private

Definition at line 69 of file MonPNGreenDat.h.

Referenced by getPedMeanG16(), and setPedMeanG16().

float MonPNGreenDat::m_pedRMSG1
private

Definition at line 68 of file MonPNGreenDat.h.

Referenced by getPedRMSG1(), and setPedRMSG1().

float MonPNGreenDat::m_pedRMSG16
private

Definition at line 70 of file MonPNGreenDat.h.

Referenced by getPedRMSG16(), and setPedRMSG16().

bool MonPNGreenDat::m_taskStatus
private

Definition at line 71 of file MonPNGreenDat.h.

Referenced by getTaskStatus(), and setTaskStatus().