blob: c70005789492ee1e15134b683424cdebab400d5a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
/**************************************************************************
* Copyright (C) 2006-2007 by Danny Kukawka *
* <dkukawka@suse.de>, <danny.kukawka@web.de> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of version 2 of the GNU General Public License *
* as published by the Free Software Foundation. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
/*!
* \file dbusInterface.h
* \brief Headerfile for dbusInterface.cpp and the class \ref dbusInterface.
*/
/*!
* \class dbusInterface
* \brief class for connection to D-Bus
* \author Danny Kukawka, <dkukawka@suse.de>, <danny.kukawka@web.de>
* \date 2006-2007
*/
#ifndef _DBUS_INTERFACE_H_
#define _DBUS_INTERFACE_H_
#ifndef DBUS_API_SUBJECT_TO_CHANGE
#define DBUS_API_SUBJECT_TO_CHANGE
#endif
// TQt - Header
#include <tqobject.h>
#include <tqstring.h>
// D-Bus Header
#include <tqdbusconnection.h>
#include <tqdbusobjectpath.h>
#include <tqdbusproxy.h>
#include <tqdbusunixfd.h>
// tdepowersave - Header
#include "tdepowersave_debug.h"
#define CK_SERVICE "org.freedesktop.ConsoleKit"
#define CK_MANAGER_IFACE "org.freedesktop.ConsoleKit.Manager"
#define CK_MANAGER_OBJECT "/org/freedesktop/ConsoleKit/Manager"
#define CK_SESSION_IFACE "org.freedesktop.ConsoleKit.Session"
#define CK_SEAT_IFACE "org.freedesktop.ConsoleKit.Seat"
#define SYSTEMD_LOGIN1_SERVICE "org.freedesktop.login1"
#define SYSTEMD_LOGIN1_PATH "/org/freedesktop/login1"
#define SYSTEMD_LOGIN1_MANAGER_IFACE "org.freedesktop.login1.Manager"
#define SYSTEMD_LOGIN1_SESSION_IFACE "org.freedesktop.login1.Session"
#define SYSTEMD_LOGIN1_SEAT_IFACE "org.freedesktop.login1.Seat"
class dbusInterface : public TQObject{
TQ_OBJECT
private:
//! TQt connection to D-Bus
TQT_DBusConnection dBusConn;
//! TQt D-Bus proxy for watching signals
TQT_DBusProxy* dBusWatch;
TQT_DBusProxy* dBusLocal;
TQT_DBusObjectPath systemdSession;
TQT_DBusProxy* systemdSeat;
TQT_DBusUnixFd systemdInhibit;
TQT_DBusObjectPath consolekitSession;
TQT_DBusProxy* consolekitSeat;
/* D-Bus helper functions */
//! to initialise the connection to D-Bus
bool initDBUS();
//! handles signal service registred/unregistered
void onServiceRegistered(const TQString&);
void onServiceUnregistered(const TQString&);
private slots:
//! to reconnect to D-Bus
bool reconnect();
public:
//! default constructor
dbusInterface();
//! default destructor
~dbusInterface();
//! to close the connection to D-Bus
bool close();
// --- helper to get private members of the class --- //
//! to get information if TDEPowersave is connected to D-Bus
bool isConnectedToDBUS();
//! to check active session state
bool checkActiveSession();
public slots:
void handleDBusSignal(const TQT_DBusMessage&);
signals:
void activeSessionChanged(bool);
};
#endif
|