24 #ifndef DBUSOPERATIONQUEUEHANDLER_H
25 #define DBUSOPERATIONQUEUEHANDLER_H
28 #include <QDBusInterface>
31 #define SIGNOND_NORMALIZE_METHOD_SIGNATURE(method) \
32 DBusOperationQueueHandler::normalizedOperationSignature(method).data()
39 class DBusOperationQueueHandler
44 Operation(
const char *name,
45 QList<QGenericArgument *> args = QList<QGenericArgument *>());
48 inline bool operator==(
const Operation &op)
const
49 {
return qstrcmp(op.m_name, m_name) == 0; }
52 QList<QGenericArgument *> m_args;
55 void copy(
const char *name,
56 const QList<QGenericArgument *> &args);
60 DBusOperationQueueHandler(QObject *clientObject);
61 ~DBusOperationQueueHandler();
63 void enqueueOperation(Operation *operation);
64 void enqueueOperation(
const char *name,
65 QList<QGenericArgument *> args = QList<QGenericArgument *>());
67 void execQueuedOperations();
68 int queuedOperationsCount()
const {
return m_operationsQueue.count(); }
69 void clearOperationsQueue() { m_operationsQueue.clear(); }
71 void removeOperation(
const char *name,
bool removeAll =
true);
73 bool queueContainsOperation(
const char *name);
74 void stopOperationsProcessing() { m_operationsStopped =
true; }
76 static QByteArray normalizedOperationSignature(
const char *operationName)
77 {
return QMetaObject::normalizedSignature(operationName); }
80 QObject *m_clientObject;
81 const int m_maxNumberOfOperationParameters;
82 QQueue<Operation *> m_operationsQueue;
83 bool m_operationsStopped;
92 #endif // DBUSOPERATIONQUEUEHANDLER_H