/* * Base.h * * Created on: 2016年11月15日 * Author: nego */ #ifndef SERVICEMODEL_BASE_H_ #define SERVICEMODEL_BASE_H_ #include #include #include #include "../common/Type.h" class Base { public: enum QUALITY { GOOD = 0, BAD }; enum RUNSTATE { IDLEE = 0, TIMING, TIMEOUT, FAULT }; Base() : m_rwstate(-1), m_priority(-1), m_readcount(0), m_readbackcount(0), m_writecount( 0), m_writebackcount(0), m_quality(GOOD), m_runstate(TIMING), m_rdatimeoutcount(0),m_rreadretrycount(0),m_rwriteretrycount(0), m_rfaultcount(0){ xLock = PTHREAD_MUTEX_INITIALIZER; } virtual ~Base() { } const std::string& getName() const { return m_name; } void setName(const std::string& name) { if(!name.empty()){ this->m_name = name; } } OBJID& getObjid() { return m_objid; } void setObjid(const OBJID& objid) { this->m_objid = objid; } std::map& getParams() { return m_mparams; } void setParams(const std::map& params) { this->m_mparams = params; } HRESULT setParam(const std::string key, const std::string value) { getParams().insert(make_pair(key, value)); return S_OK; } std::string getParam(const std::string key) { std::map& m = getParams(); if (m.count(key) > 0) { std::string value = m.find(key)->second; return value; } return ""; } int getPriority() const { return m_priority; } void setPriority(int priority) { this->m_priority = priority; } int getRwstate() const { return m_rwstate; } void setRwstate(int rwstate) { this->m_rwstate = rwstate; } QUALITY getQuality() const { return m_quality; } void setQuality(QUALITY quality) { this->m_quality = quality; } unsigned int getReadcount() const { return m_readcount; } void setReadcount(unsigned int readcount) { this->m_readcount = readcount; } void addReadcount() { ++this->m_readcount; } unsigned int getWritecount() const { return m_writecount; } void setWritecount(unsigned int writecount) { this->m_writecount = writecount; } void addWritecount() { ++this->m_writecount; } unsigned int getReadbackcount() const { return m_readbackcount; } void setReadbackcount(unsigned int readbackcount) { this->m_readbackcount = readbackcount; } void addReadbackcount() { ++this->m_readbackcount; } unsigned int getWritebackcount() const { return m_writebackcount; } void setWritebackcount(unsigned int writebackcount) { this->m_writebackcount = writebackcount; } void addWritebackcount() { ++this->m_writebackcount; } RUNSTATE getRunstate() const { return m_runstate; } void setRunstate(RUNSTATE runstate) { (void) pthread_mutex_lock(&xLock); this->m_runstate = runstate; (void) pthread_mutex_unlock(&xLock); } int getRdatimeoutcount() const { return m_rdatimeoutcount; } void setRdatimeoutcount(int rdatimeoutcount) { m_rdatimeoutcount = rdatimeoutcount; } void addRdatimeoutcount(int rdatimeoutcount) { m_rdatimeoutcount += rdatimeoutcount; } void resetRdatimeoutcount() { m_rdatimeoutcount = 0; } int getRfaultcount() const { return m_rfaultcount; } void setRfaultcount(int rfaultcount) { m_rfaultcount = rfaultcount; } void addRfaultcount(int rfaultcount) { m_rfaultcount += rfaultcount; } void resetRfaultcount() { m_rfaultcount = 0; } int getRreadretrycount() const { return m_rreadretrycount; } void setRreadretrycount(int rreadretrycount) { m_rreadretrycount = rreadretrycount; } void addRreadretrycount(int rreadretrycount) { m_rreadretrycount += rreadretrycount; } void resetRreadretrycount() { m_rreadretrycount = 0; } int getRwriteretrycount() const { return m_rwriteretrycount; } void setRwriteretrycount(int rwriteretrycount) { m_rwriteretrycount = rwriteretrycount; } void addRwriteretrycount(int rwriteretrycount) { m_rwriteretrycount += rwriteretrycount; } void resetRwriteretrycount() { m_rwriteretrycount = 0; } private: OBJID m_objid; std::string m_name; std::map m_mparams; int m_rwstate; //----读写状态 int m_priority; //----优先级状态 /** * 以下数据用于性能监视 */ unsigned int m_readcount; //----读计数 unsigned int m_readbackcount; //----读回复计数 unsigned int m_writecount; //----写计数 unsigned int m_writebackcount; //----写回复计数 QUALITY m_quality; //----采集质量 RUNSTATE m_runstate; //----采集状态,处于空闲、采集、超时、故障等状态 int m_rdatimeoutcount; //----采集超时计数 int m_rreadretrycount; //----读重试计数 int m_rwriteretrycount; //----写重试计数 int m_rfaultcount; //----采集故障计数 pthread_mutex_t xLock; }; #endif /* SERVICEMODEL_BASE_H_ */