1 #include "db.h" 2 #include <QMetaEnum> 3 #include <QDebug> 4 #include <QDataStream> 5 Db()6Db::Db() 7 { 8 // qDebug() << "Db::Db()" << this; 9 } 10 ~Db()11Db::~Db() 12 { 13 // qDebug() << "Db::~Db()" << this; 14 } 15 metaInit()16void Db::metaInit() 17 { 18 qRegisterMetaType<Db*>("Db*"); 19 qRegisterMetaTypeStreamOperators<Db*>("Db*"); 20 } 21 flagsToString(Db::Flags flags)22QString Db::flagsToString(Db::Flags flags) 23 { 24 int idx = staticMetaObject.indexOfEnumerator("Flag"); 25 if (idx == -1) 26 return QString(); 27 28 QMetaEnum en = staticMetaObject.enumerator(idx); 29 return en.valueToKeys(static_cast<int>(flags)); 30 } 31 operator <<(QDataStream & out,const Db * myObj)32QDataStream &operator <<(QDataStream &out, const Db* myObj) 33 { 34 out << reinterpret_cast<quint64>(myObj); 35 return out; 36 } 37 38 operator >>(QDataStream & in,Db * & myObj)39QDataStream &operator >>(QDataStream &in, Db*& myObj) 40 { 41 quint64 ptr; 42 in >> ptr; 43 myObj = reinterpret_cast<Db*>(ptr); 44 return in; 45 } 46 operator <<(QDebug dbg,const Db * db)47QDebug operator<<(QDebug dbg, const Db* db) 48 { 49 dbg.nospace() << "<DB:" << db->getName() << ">"; 50 return dbg.space(); 51 } 52