#include "qlopdatabase.h" QList* 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(); } 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; } QLopData *QLopDataBase::getDataFromIdex(int index) { if((index>=0)&&(indexcount())) return m_dataBase->at(index); else return NULL; }