• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

querythreadcommand.h

Go to the documentation of this file.
00001 #ifndef QUERYTHREADCOMMAND_H
00002 #define QUERYTHREADCOMMAND_H
00003 
00004 #include <QQueue>
00005 #include <QSqlQuery>
00006 #include <QObject>
00007 #include <QSharedPointer>
00008 
00009 #define QT_SHAREDPOINTER_TRACK_POINTERS
00010 
00018 class QueryThreadCommand {
00019 public:
00020     inline QueryThreadCommand() : m_sender(0), m_transmitter(new QObject()) {}
00021     inline QueryThreadCommand(const QObject *sender) : m_sender(sender), m_transmitter(new QObject()) {}
00022     inline QueryThreadCommand(const QObject *sender, const QString &query) :
00023             m_sender(sender), m_transmitter(new QObject())
00024     {
00025         enqueueQuery(query);
00026     }
00027     inline QueryThreadCommand(const QObject *sender, const QQueue<QString> &queryQueue) :
00028             m_sender(sender), m_transmitter(new QObject())
00029     {
00030         m_queryQueue.append(queryQueue);
00031     }
00032     inline QueryThreadCommand(const QueryThreadCommand &original) :
00033             m_sender(original.m_sender), m_result(original.m_result), m_transmitter(original.m_transmitter)
00034     {
00035         m_queryQueue  = original.m_queryQueue;
00036     }
00037 
00038     bool operator==(const QueryThreadCommand &other) const ;
00039     void enqueueQuery(const QString &query);
00040     QString dequeueQuery();
00041     bool isValid() const;
00042     bool isEmpty() const;
00043     QObject *transmitter();
00044 
00045     void setResult(const QSharedPointer<QSqlQuery> &result);
00046     QSqlQuery *result() const;
00047     const QObject *sender() const;
00048 
00049 private:
00050     const QObject *m_sender;
00051     QSharedPointer<QSqlQuery> m_result;
00052     QQueue<QString> m_queryQueue;
00053     QSharedPointer<QObject> m_transmitter;
00054 };
00055 
00056 #endif // QUERYTHREADCOMMAND_H

Generated on Tue Aug 24 2010 15:58:55 for Smartlet by  doxygen 1.7.1