qlopdatabase.cpp
83 lines
| 1.4 KiB
| text/x-c
|
CppLexer
r12 | #include "qlopdatabase.h" | |||
QList<QLopData*>* QLopDataBase::m_dataBase=NULL; | ||||
QLopDataBase* QLopDataBase::_self=NULL; | ||||
#define INIT() \ | ||||
if(Q_UNLIKELY(_self==NULL))\ | ||||
{\ | ||||
init();\ | ||||
} | ||||
QLopDataBase::QLopDataBase(QObject *parent) : QObject(parent) | ||||
{ | ||||
this->m_dataBase = new QList<QLopData*>(); | ||||
} | ||||
QLopDataBase::~QLopDataBase() | ||||
{ | ||||
} | ||||
void QLopDataBase::init() | ||||
{ | ||||
_self=new QLopDataBase(); | ||||
} | ||||
int QLopDataBase::addData(QLopData *data) | ||||
{ | ||||
INIT(); | ||||
if(!m_dataBase->contains(data)) | ||||
{ | ||||
m_dataBase->append(data); | ||||
return 1; | ||||
} | ||||
return 0; | ||||
} | ||||
int QLopDataBase::addData(const QLopDataList& data) | ||||
{ | ||||
INIT(); | ||||
int addedData=0; | ||||
for (int i = 0; i < data.count(); i++) | ||||
{ | ||||
addedData += addData(data.at(i)); | ||||
} | ||||
return addedData; | ||||
} | ||||
QLopDataBase *QLopDataBase::self() | ||||
{ | ||||
INIT(); | ||||
return _self; | ||||
} | ||||
int QLopDataBase::count() | ||||
{ | ||||
return m_dataBase->count(); | ||||
} | ||||
QLopData *QLopDataBase::getData(const QString &name) | ||||
{ | ||||
for (int i = 0; i < m_dataBase->count(); i++) | ||||
{ | ||||
if(Q_UNLIKELY(m_dataBase->at(i)->name==name)) | ||||
{ | ||||
return m_dataBase->at(i); | ||||
} | ||||
} | ||||
return NULL; | ||||
} | ||||
QLopData *QLopDataBase::getData(int ID) | ||||
{ | ||||
for (int i = 0; i < m_dataBase->count(); i++) | ||||
{ | ||||
if(Q_UNLIKELY(m_dataBase->at(i)->ID==ID)) | ||||
{ | ||||
return m_dataBase->at(i); | ||||
} | ||||
} | ||||
return NULL; | ||||
} | ||||