2006-02-13 John (J5) Palmieri <johnp@redhat.com>
[platform/upstream/dbus.git] / qt / qdbusmessage.h
1 /* qdbusmessage.h QDBusMessage object
2  *
3  * Copyright (C) 2005 Harald Fernengel <harry@kdevelop.org>
4  *
5  * Licensed under the Academic Free License version 2.1
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  *
21  */
22
23 #ifndef QDBUSMESSAGE_H
24 #define QDBUSMESSAGE_H
25
26 #include "dbus/qdbus.h"
27
28 #include <QtCore/qlist.h>
29 #include <QtCore/qvariant.h>
30
31 #include <limits.h>
32
33 class QDBusMessagePrivate;
34 struct DBusMessage;
35
36 class QDBUS_EXPORT QDBusMessage: public QList<QVariant>
37 {
38     friend class QDBusConnection;
39 public:
40     enum { DefaultTimeout = -1, NoTimeout = INT_MAX};
41     enum MessageType { InvalidMessage, MethodCallMessage, ReplyMessage,
42                        ErrorMessage, SignalMessage };
43
44     QDBusMessage();
45     QDBusMessage(const QDBusMessage &other);
46     ~QDBusMessage();
47
48     QDBusMessage &operator=(const QDBusMessage &other);
49
50     static QDBusMessage signal(const QString &path, const QString &interface,
51                                const QString &name);
52     static QDBusMessage methodCall(const QString &service, const QString &path,
53                                    const QString &interface, const QString &method);
54     static QDBusMessage methodReply(const QDBusMessage &other);
55
56     QString path() const;
57     QString interface() const;
58     QString name() const; //rename to member?
59     QString sender() const; //rename to service?
60     MessageType type() const;
61
62     int timeout() const;
63     void setTimeout(int ms);
64
65
66 //protected:
67     DBusMessage *toDBusMessage() const;
68     static QDBusMessage fromDBusMessage(DBusMessage *dmsg);
69     int serialNumber() const;
70     int replySerialNumber() const;
71
72 private:
73     QDBusMessagePrivate *d;
74 };
75
76 #ifndef QT_NO_DEBUG
77 QDebug operator<<(QDebug, const QDBusMessage &);
78 #endif
79
80 #endif
81